t-log

ゴミカレンダー通知アプリ

目次

ゴミ出しの日をいつも忘れてしまうため通知を自動化した。

データは、調布市のごみリサイクルカレンダーから、自分の住んでいる地域を選択してテキスト版のファイルをダウンロードした。

PDFからデータを取るのは面倒なので、テキスト版があるのはありがたい。

このデータから、明日のごみを取得できるWebAPIをGASを用いて作成した。

コード

function doGet() {
const tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);
const ymd = Utilities.formatDate(tomorrow, 'Asia/Tokyo', 'yyyy-M-d');
const [year, month, day] = ymd.split('-').map(Number);
const reiwa = year - 2018;
const data = HtmlService.createHtmlOutputFromFile('data').getContent();
const sectionRe = new RegExp(
`令和${reiwa}年 ${month}月([\\s\\S]*?)(?=令和\\d+年 \\d+月|$)`
);
const section = (data.match(sectionRe) || [])[1];
const lineRe = new RegExp(`^${day}日\\t\\S+曜日 (.+)$`, 'm');
const garbage = section ? (section.match(lineRe) || [])[1] : null;
return ContentService.createTextOutput(garbage || '収集なし');
}

data.htmlにはカレンダーのデータをコピペしたものが保存されている。

実行例

燃やせるごみ ビン シュレッダー紙

Webアプリとして、アクセスできるユーザーを全員に設定しデプロイすることで外部からWebAPIとして呼び出せるようにした。

次はこれをMacroDroidから実行し、通知を表示できるようにしたい。