乃木どこ開始5分前にYoするサービスを作った
はじめに
若干旬が過ぎた感もありますが、Yoを使った「乃木どこが始まるよ」というサービスを先日リリースしました。
本エントリでは最初にサービスの簡単な紹介をしたあと、備忘録も兼ねて苦労した点について述べていきます。
サービス概要
乃木坂46の冠番組である、乃木坂って、どこ?(通称:乃木どこ)が始まる5分前になるとYoしてくれるサービスです。
なぜ作ったのか
乃木どこは毎週日曜日の深夜0時から始まるのですが、たまに0:05とか0:20から始まることがあって、テレビをつけたらまだ前番組がやってて萎える*1ということが何回かあったため。
あと単純に紫色つながりでなんか作れないかな〜と思ったのもあります。*2
仕組み
以下を行うプログラムを作成し、定期実行しているだけ。簡単。
- 某テレビ番組表サイトから次回の放送開始時刻を取得する
- 開始5分前に実行されるジョブを作成
- 指定時刻になると2のジョブが実行され、APIを使ってユーザーにYoを送る
苦労した点
Resqueとresque-schedulerに対する理解
非同期処理&定期実行のためにこれらのgemを使ったのですが、最初どうゆう仕組みになっているのか全くわからず、resque-scheduler
だけ立ち上げて「ログには出力されてるけど実際には実行されてない!なんでだ!?」とか思ってました。アホだ。
resque-scheduler
は設定時間になったらジョブを投げるだけで、これを実際に実行するのはResque
本体なので、2つ(のrakeタスク)を同時に立ち上げておく必要があります。
テレビ番組表の独特な表記
番組表の「日曜の24:05」のような表記、誤解が少ないので僕は好きなんですが、DBに保存するときは「月曜の0:05」に変換して保存しないといけません。最初自分で対応しようとしたんですが途中で面倒になったので、Chronicというgemを使いました。
レスポンシブデザイン
完成間際になって「トップページをレスポンシブデザインにしよう!」と思いついたんですが、今までやったことなかったのでちょっと苦戦しました。
動作確認の正しいやり方がわからなくてとりあえずiOSシミュレータで見え方を確認したのだけれど、現場の方はどうやってるんだろう・・・
おわりに
そういえば、YoのAPIキーを取得するのに5日くらいかかりました。
- 出版社/メーカー: SMR(SME)(D)
- 発売日: 2015/03/25
- メディア: DVD
- この商品を含むブログを見る