われがわログ

最適化アルゴリズムとかプログラミングについて書きたい

dアニメストアの今期アニメ配信情報をGoogleカレンダーに登録する

しょぼいカレンダーにはアニメの放送日をGoogleカレンダーに表示できる機能があり、以前までは便利に使っていた。以前まで、と書いたのは、私は最近、録画派からdアニメ派に鞍替えしており、dアニメ視聴だと上述の機能が使えない*1ためである。 そこで、Golangで同様の機能を簡易に実装してみたというのが本記事の内容である。

成果物は以下のリポジトリにおいた。

github.com

これは、dアニメストア今期アニメ一覧ページの情報をスクレイピングし、指定したアニメの配信情報を表すiCalデータを作るプログラムである。iCalデータは手動でGoogleカレンダーに読み込ませることを想定している。アニメ一覧ページのURLおよび、アニメタイトルの指定はconfigs.jsonで行う。configs.jsonの場所は下記のようにコマンドライン引数で与える。指定しない場合には、カレントディレクトリのものが読み込まれる。

danime-ical.exe PATH_TO_CONFIGS_JSON

生成されるiCalファイルの例は以下の通り。クールの初めの月(冬アニメだったら1月)の最初の配信曜日から、毎週の配信予定が記述されている。アニメの話数は13話を想定。

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Arran Ubels//Golang ICS library 
METHOD:REQUEST
BEGIN:VEVENT
UID:のんのんびより のんすとっぷ
DTSTART;TZID=Asia/Tokyo:20210101T010000
DTEND;TZID=Asia/Tokyo:20210101T013000
SUMMARY:のんのんびより のんすとっぷ
RRULE:FREQ=WEEKLY;COUNT=13
END:VEVENT
END:VCALENDAR

クールの始まり終わりあたりは不正確な可能性もあるが、ひとまずはこれで十分だろう

*1:しょぼいカレンダーにはdアニメでの配信日時が登録されていないため