シアターオーブのスケジュールアラートをopen&shareします。
ざっくり言うと
- シアターオーブ公演前後は普段より遙かに混雑する
- 公演スケジュールを取得して、ircに通知するスクリプトを書いた
- ヒカリエに入っている:D社にもニーズありそうだからOpen&Shareする
背景
去年10月から勤務地が渋谷ヒカリエになりました。渋谷駅直結で雨に濡れずにいけるので大変ありがたいのですが、ヒカリエには一つ頭を悩ませることがあります。
それはオフィス入り口が11Fにあるため、11Fまでは一般の利用者とバッティングしてしまいます。普段はそんなに気になることは無いんですが、11Fにはシアターオーブというシアターがあって、公演前後は普段より遙かに混雑します。残業後にバッティングすると、見事に心が折れます。
事前に公演スケジュールが解っていれば、時間をずらせば良いだけなので、怒りにまかせてシアターオーブの公演スケジュールを取得して、ircに通知するスクリプトを書いたところ、なかなか評判がよかった&同じビルに入っている、某:D社にもニーズあるんじゃないか?ということで、Open&Shareしようと思います。
コードについて
コードはgistに置いておきます。
構成としては、Web::Scraperでシアターオーブの公演スケジュール(http://theatre-orb.com/lineup/calendar/)から情報を取得してApp::Ikachanを経由してircに投げています。
開始時間の1時間前と、公演時間が解っていれば、公演終了30分前にircにポストします。開始時刻の方が早めにアラートだしているのは、開始時刻の30分前ぐらいが開場なので、少し早い時間に混雑するからです。公演終了の方は、公演終了10分前~終了時間15分後ぐらいが混雑する時間の様です。(実際観察した)
特殊な構成として、シアターオーブの公演スケジュールからは公演時間が取れないので、Webataにデータを持つことにしました。手動メンテですが、そんなに公演の種類ないし、とりあえずの実装です。
シアターオーブに問い合わせしたら、スケジュールの方に乗せてくれそうな雰囲気でもあったので、そうなったらスクレイピングに切り替えます。
使い方はこんな感じで、cronなんかで10分おきに起動するのを想定しています。
$ orb-rush-timer.pl -i [ikachanのurl] -c [ポストするチャンネル]
ex) orb-rush-timer.pl -i "http://ikachan.hackmylife.net/notice" -c "#orb"
注意点
ちなみに、幾つか注意点として、公演終了のアラートを投げるのは、公演時間が解っているときのみです。また、時間の比較にTime::Pieceを使っているのですが、古いバージョンだとタイムゾーン反映してくれなかったりするので、新しいバージョン(おそらく1.17以降)を使う必要があります。
[6/24 14:17追記] toku_bassさんよりコメントでuse Time::Pieceでバージョン指定しては?とご意見頂きました。1.17以降で正常な動作を確認したので、バージョン指定を追加しました。ありがとうございます!
それでは快適なヒカリエライフを!