読者です 読者をやめる 読者になる 読者になる

アニメ系新番組や単発番組の情報をカレンダーにするプログラム「しょぼかるフィルター」を作った

プログラミング

この記事は KMC アドベントカレンダー 7日目の記事です。

www.adventar.org

6日目の記事は、id:dnek さんの 運ゲー排除マインスイーパーをiOSにも対応させた話とか - dnekblog でした。

dnek.hatenablog.com

今日のテーマ

新番組や単発番組の情報をカレンダーにするプログラムを書きました。
しょぼかるフィルター」と呼んでいます。

ソースコードGitHubで公開しています。
手元で試してみたい、自分の地域の情報を出力したい、という方は、readmeを参考にして動かしてみてください。 github.com

こちらで、KMCの所在地である京都向けの.icsファイルを試験公開中です。
当面は運用を続ける予定ですが、予告なく終了する可能性があります。
あらかじめご了承ください。

以下、何をやったのかを簡単に紹介します。

しょぼいカレンダーとは

cal.syoboi.jp

アニメ関連番組の番組表。
「しょぼい」という名前とは裏腹に高機能。

例えば、rssbuilder機能というものがあり、.icsファイルを生成できます。
今回はこの機能を利用します。

http://cal.syoboi.jp/util/rssbuilder

しょぼいカレンダーの不満点

デフォルトで出力される.icsでは、番組数が多すぎるため、欲しい情報が埋没します。
私は、録画予約を失敗しないように、新番組や単発番組の情報が欲しいと考えました。
継続して毎週放送されている番組の情報はいらないので、出てこないようにしたいです。

f:id:yu3mars:20161207013209p:plain デフォルトの.icsをGoogleカレンダーに読み込ませたときの様子です。
情報が多すぎます……。

作ったプログラムでやっていること

しょぼいカレンダーが発行する.icsを読み込んでフィルタリングします。
"【新】"、"【注】"、"【!】"が含まれるものだけを含んだ.icsを出力します。
新番組や単発番組の情報を失うことなく、不要な情報の大部分を除去することができます。
放送時間が変更された番組も引っかかってしまいますが、数が少ないので目を瞑ることにします。
実装が軽いことはよいことです。

f:id:yu3mars:20161207013225p:plain フィルタリングした後の.icsをGoogleカレンダーに読み込ませたときの様子です。
だいぶスッキリしました。

実運用では、Linuxサーバー上でcronを使って定期実行しています。
webサーバの公開ディレクトリに.icsを出力することで、カレンダーの配信を実現しています。

終わりに

自分でプログラムを書くことで、新番組や単発番組の情報をカレンダーにすることができました。
もし、これよりいい方法があるという方は、ぜひお知らせください。
プルリクも歓迎です。

明日のKMCアドベントカレンダーは、id:asRagiさんです。