Last active
April 16, 2018 16:01
-
-
Save nwatab/55fc0ed07656692bfd025d14acd85010 to your computer and use it in GitHub Desktop.
QBHouse-mail-notification-for-no-waiting
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* This is a code for Google App Script to see if there is a line for QBHouse at Kojimachi. | |
* main(): Access to qb house kojimachi homepage and check the number of people in line. | |
* Replace an email with yours. | |
* doGet(): This function is for publishing a web service as API (only one endpoint). | |
*/ | |
function main() { | |
var url = 'http://www.qbhouse.co.jp/search/detail.php?id=475'; // QB HOUSE Kojimachi | |
var text = UrlFetchApp.fetch(url).getContentText('utf-8'); | |
var waiting = text.match(/待ち人数:\d名/)[0]; | |
if (!waiting) { | |
return; | |
} | |
var queue = waiting[waiting.length - 2]; | |
var sheet = SpreadsheetApp.getActiveSheet(); | |
var date = new Date(); | |
var formattedDate = Utilities.formatDate(date, "Asia/Tokyo", "yyyy-MM-dd'T'HH:mm:ss'Z'"); | |
sheet.appendRow([date.getTime(), formattedDate, queue]); | |
if (queue == 0) { | |
GmailApp.sendEmail('[email protected]', 'Go to QB Kojimachi', ''); | |
} | |
} | |
// Above is all for email notification. Below code is for public API. | |
function doGet(e) { | |
var sheet = SpreadsheetApp.getActiveSheet(); | |
var range = sheet.getRange(1, 3, 30); | |
var data = sheet.getDataRange().getValues(); | |
Logger.log(data); | |
var values = [] | |
for (var i = 0; i < data.length; i++) { | |
values.push({unixtimestamp: data[i][0], | |
tokyotime: data[i][1], | |
queue: data[i][2] | |
}) | |
} | |
return createContent(e.parameter.callback , {title: 'QBハウス麹町店待ち人数データベース', | |
shop: { | |
address: '東京都千代田区麹町3-4-1麹町3丁目ビル1F', | |
zipcode: '102-0083', | |
open: '平日:10:00~20:00 (受付終了20:00),土曜:09:00~19:00 (受付終了19:00),日祝:09:00~19:00 (受付終了19:00)', | |
website: 'http://www.qbhouse.co.jp/search/detail.php?id=475' | |
}, | |
response : values}); | |
} | |
function createContent(callback , returnObject ) { // returns JSON or JSONP | |
if(callback) { | |
return ContentService.createTextOutput(callback + '(' + JSON.stringify(returnObject) + ')').setMimeType(ContentService.MimeType.JAVASCRIPT); | |
} else { | |
return ContentService.createTextOutput(JSON.stringify(returnObject)).setMimeType(ContentService.MimeType.JSON); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Example API on Firefox