foltiaの新番組の予約が面倒なので、新番組をアラートするメール送信スクリプトをつくった。
新番組のチェックダルい
foltiaでアニメを予約するのって面倒ですよね。あの新番組一覧ページを自分でいちいちチェックしにいかないといけないやつ。
しかもアニメ番組によってはなかなかページに反映されないこともあったり。これはfoltia側の問題ではなく連携しているしょぼいカレンダー側の問題なんでしょうけど。
特にアニメが終わるクールとアニメが開始するクールの間の時期はなかなか更新されない番組のせいで、頻繁にチェックせねばなりません。
それだったらまだいいんですけど、全然クールと関係ないタイミングでいきなり番組開始するやつ!気づくわけねーから。
ということでアニメの新番組が更新されたら自動でメールでお知らせするスクリプトを作りました。
使用感など
スクリプトの作りとしては、新アニメがfoltiaの「アニメ新番組」メニューに登録されたらお知らせする。。。のではなく、定期的にスクリプトを実行して、その時点でfoltiaのデータベースに新しい番組が登録されてればそいつをメールに乗っけて送信する仕組みになってます。
なので、早く知らせたければ毎日実行するように設定すればよいですし、一週間に1回教えてくれればええんやって場合はそういう設定でもいいと思います。
でも今までの感触的には、わりと番組開始直前のタイミングでしばしばfoltiaに新アニメが登録される感じでしたし、毎日通知させる設定でも問題ない気がします。
ざっくり解説
例えばfoltiaの「アニメ新番組」に載ってる新アニメリストがこんな状態だとします
で、通知メール。件名と本文は変更可。CSVファイルが添付されてます。
中身がこんな感じです。すべてのアニメを取ってきてます。
一応項目は一通りfoltiaの「アニメ新番組」に寄せました。ただ、再、注、新みたいなのはなくて、新アニメかどうかの項目だけ残してます。
ただ、この番組すべて通知したいと思う人は少ないはず。なぜなら、ここのリストには再放送の新番組も含まれてるから。
というわけで、純粋な新番組のみ取ってくる設定にした場合(□で新とかいてあるやつ)。
新番組のみ通知された状態。
また、受信可能局のみ表示するかどうかも、設定でかえられるようにしておきました。
なお、既に通知済みの番組は記憶してて、次回通知しないようになってます。
なので、通知のたびに大量のリストがメールで送り付けられる、ということはないはずです。
導入にあたって
前のエントリで紹介した、foltiaサーバーからメールを送れるようにする設定が必要です。※2017/11/12 postfixの起動設定がなかったので追記
導入方法
動作確認環境はfoltiaバージョン4.5.6 CentOS release 6.8 (Final)です。
新アニメメール通知スクリプト
上記をダウンロードして、env.shを編集します。
1 2 3 4 5 6 7 |
#!/bin/bash export PATH=$PATH:/usr/sbin:/usr/local/bin/misc-tools export MAIL_ADDRESS=hogehoge@example.jp export SUBJECT=新アニメが更新されています! export RECEIVING_FLG_LIST=1 # 1=放送可能局のみ、0,1=放送可能局以外も含む export IS_ONLY_NEW_ANIME=TRUE # TRUE=新アニメのみ通知、FALSE=再放送も通知する |
MAIL_ADDRESSには送る先のメールアドレスを、RECEIVING_FLG_LISTは放送可能局の設定で、基本的には1でいいと思います。
IS_ONLY_NEW_ANIMEはTRUEで新アニメのみ通知、FALSEで再放送含むやつ全部通知。
メールアドレスは必ず変更してください。
SUBJECTは件名変えたければ。
mail_template.txtはメールの本文内容なので、変えたければ変える。
smb等で\\foltiaのIPアドレス\nasにenv.sh mail.sh mail_template.txt select_new_anime.sqlの4ファイルを置いておく。
foltiaサーバーにsshでログイン(要root)
1 |
[root@foltia ~]# mkdir /usr/local/bin/mailNewAnime && cd $_ |
作業ディレクトリ作りつつ潜る
1 2 3 4 |
[root@foltia mailNewAnime]# \cp /home/foltia/php/tv/nas/env.sh ./ [root@foltia mailNewAnime]# \cp /home/foltia/php/tv/nas/mail.sh ./ [root@foltia mailNewAnime]# \cp /home/foltia/php/tv/nas/mail_template.txt ./ [root@foltia mailNewAnime]# \cp /home/foltia/php/tv/nas/select_new_anime.sql ./ |
さっきnasフォルダに入れといた4ファイルを作業フォルダに配置して
1 |
[root@foltia mailNewAnime]# chmod 755 mail.sh |
実行権限付与
今回、通知するメールの添付ファイルなどの作成に必要なMIME作成のためにpluginをお借りしましたので、それを使わせていただきます。(plugin作者様ありがとうございます。)
1 2 |
[root@foltia mailNewAnime]# cd /usr/local/bin [root@foltia bin]# git clone https://github.com/ShellShoccar-jpn/misc-tools.git |
移動して、git cloneでダウンロードする。
/usr/local/bin/misc-toolsができてればOK
さっき作ったmailNewAnimeフォルダに入って、sh ./mail.shってやると、メール飛ぶはずです。
定期的に実行させるように設定
ここまでの作業が終わったら、次は配置したメール送信スクリプトを決まった時間に実行させたいので、cronに登録します。
crontab -e でエディタに入り、
1 2 |
# info mail for new anime program 0 22 * * * sh /usr/local/bin/mailNewAnime/mail.sh 2>>/var/log/cron-err.log |
みたいな感じで登録しておきます。毎日夜10時に実行させる設定。cronの書き方は検索すればどっかに詳しく載ってます。
感想
ひとまずシェルでざっと書いてみましたが、たぶんまだ改善の余地ありです。
まだ運用開始してアニメのクールの節目に突入したことが無いので何が起きるかわかりませんが、今のところちゃんと動いてます。
追記:
新アニメがカレンダーに登録されるタイミングで一度通知した番組が何度も通知される事案あり、が、メンテする気になれず、とりあえずそのまま。。。
最近のコメント