くりにっき

フルスタックキュアエンジニアです

プリキュアが始まる前にトゥートするmastodonボットなどを作った

前置き

最近 Mastodon が流行っていますが、僕はプリキュア好きなのでプリキュアインスタンスきゅあったー に参加しています。

precure.ml

中の人曰く

f:id:sue445:20170507212951p:plain

とのことだったので*1、サーバの負荷にならないレベルで雑にボットを作ってみました

プリキュアこのあとすぐボット

プリキュアは日曜朝(通称ニチアサ)の本放送以外にも、過去作品がほぼ毎日どこかの放送局で再放送されています。それが始まる前にトゥートするボットが「プリキュアこのあとすぐボット」です

https://precure.ml/@precure_onair_bot

f:id:sue445:20170507213554p:plain

実際にトゥートした結果

こんな感じ。

f:id:sue445:20170507212206p:plain

https://precure.ml/@precure_onair_bot/20677

f:id:sue445:20170508174846p:plain

https://precure.ml/@precure_onair_bot/23663

技術的なこと

番組情報を しょぼいカレンダーAPI から取得して、プリキュア開始10分前くらいになったらトゥートするようにしてます。*2

気持ち的には開始5分前くらいにしたかったんだけど、Heroku Schedulerで指定できる時間が10分刻みなため10分前にしています。

f:id:sue445:20170507214528p:plain

これくらいのボットなら個人サーバに置いてcrontabで動かすというのもあったけど、git pushで (楽に|雑に) デプロイできるのが魅力だったのでHerokuを採用。

プリキュア誕生日ボット

プリキュアの誕生日にトゥートするだけのボットです

https://precure.ml/@precure_birthday_bot

f:id:sue445:20170507215038p:plain

開発時期の関係でまだ1トゥートもしてないですが、バグってなければ5/28のキュアロゼッタの誕生日にトゥートされるはず

【2017/5/28追記】 ちゃんと投稿されたのでスクショ追加

f:id:sue445:20170528145844p:plain

https://precure.ml/@precure_birthday_bot/79359

技術的なこと

プリキュアの誕生日情報は rubicure で管理されているので、今日が誕生日のプリキュアを取得したい場合はこういう風にワンライナーでシュッと書けます。rubicure便利(熱い自画自賛

birthday_girls = Precure.all.select { |girl| girl.birthday?(today) }

https://github.com/sue445/cure-mastodon-bots/blob/2f8beb07fcd5e980cf8dd926329804a44d665e40/lib/birthday_bot.rb

ソースコード

いずれもこちらになります

github.com

参考リンク

*1: https://precure.ml/@precure/20379

*2:厳密には毎時50分(20分)になったら10〜39分後(つまり毎時0〜29分 or 毎時30〜59分)に開始する番組の中にプリキュアが含まれてる場合にトゥート