Splatoon - Bot で二番煎じ

このブログ…生きていたのカッ...!

この記事は Splatoon Advent Calender 11日目の記事…でした。
発熱極めて寝込んでました大変申し訳ございません( ;)

スプラトゥーンのステージ事情

さて皆さん。イカ、してますか?
私はボールド担いでS帯まで登ったものの得意の飽き性が発動してv2.2.0のアップデート後からあまりやっていません…

そんな事は置いておいて、ご存知の通りスプラトゥーンで1度に開催されるステージはレギュラー/ガチマッチそれぞれ2つずつ。
そのステージ構成が4時間毎に入れ替わるようになっています。

デレデレデレッデ~ン

このようにゲーム内で4時間毎にシオカラーズのハイカラニュースによって知らせてくれる他、

などの手段でステージ構成を知ることができます。(他にもあるかも?)

ステージ情報が知りたい!

という訳で、4時間毎にステージを呟く TwitterBot を作っていました。

ya so cute 二番煎じ

ステージ情報を教えて!

さてはて、全部で14個あるステージですが、皆さん好きなステージ、嫌いなステージ、ありますよね?
私もホッケふ頭とタチウオパーキングとか、あとヒラメが丘団地も案外好きです。

やっぱり好きなステージで遊びたい年頃の人も多く居るはず。

そこで、「アシスタントツール」として通知をしてくれる。「教えて」くれるものの方がスマートなのでは。と思ったので、こんな機能を付けてみました。

「次の[ステージ名]」とリプを投げつけると、直近12時間(今、次、その次)にそのステージが開催されるか、を返してくれます。

また、ステージでの指定の他、「次(今)のレギュラーマッチ」、「次のガチマッチ」などルールを指定して問いかける事もできるように。

少しは愛想のあるBotになったのではないでしょうか?

ステージ来たら教えて!

アシスタントツールとしては、遊びたいステージが開催されるとなったら教えるのが常。
ということで、ステージを設定しておいて、開催が発表されたら教えてくれるようにしました。

これで、4時間毎にステージ情報が更新された時に、設定したステージが入っていたら通知してくれます。

こんなふうに。

解除は 「:remove」 とリプライ。

私はナワバリクイーン!👑

さらに言えば好きなルール(レギュラー/ガチ、エリア/ヤグラ/ホコ)で遊びたい、という事もありますよね?

ここに来てリプライで全てやり取りするのが少し面倒になったので、通知設定用のページを作りました。

ika-stagebot.herokuapp.com f:id:Ranats:20151213131805p:plain

ちなみにフェスにも対応。



中身

使ってるもの


あと omniauth とか twitter とか clockwork とか dotenv とかのgem達。とcsv

ステージ情報自体は、Mechanize と Nokogiri を使ってイカリングからそのまま取得しています。
Mechanizeめっちゃないず。すごい。

Web部分はRailsを食わず嫌いしてるのでSinatraでページ作って、clockworkでHeroku上にcron動かして、って感じです。

Heroku上では一切ファイル類を保持してくれない & 何か環境変数も弄れないっていう仕様みたいなので、DropBoxApiを利用してファイルの永続化を図っています。
sqlite使えよとか言わない。

あと CSV::Table すごい。


コードが綺麗に整ったらGithubリポジトリを公開にしようかとは思っていますのでよしなに…

あと全て無料の範囲でやろうとしてたので、Herokuも無料プラン…なので1日計6時間は止まっています。
Galileoか何かでサーバー立てたい。


おわれ

テストもクソもロクにしてない状態ですが、これにて遅ればせながら11日目でした。