PivotalTrackerのAcceptを呟くbotを作った。
先日、ギー沖住人の@hanachin_が#gokidea というハッシュタグでつぶやくと、それがギークハウス沖縄のPivotalTrackerのiceboxに追加されるスクリプトをRubyで書いてた。
せっかくだし、AcceptされたStoryをギークハウス沖縄のbot(@geeokibot)につぶやかせたいなと思って、作成した。
参考資料
⇨PivotaltrackerのAPIの説明。ここにだいたい書いてある。基本的に、ユーザーアカウントがもってるTokenとプロジェクト単位で割り当てられるproject_id があればアクセスできるっぽい。
⇨これをimportしたら、xmlのタグが簡単に取れるみたい。似たようなものは他にもあったけど、うまくいかなかったけど。
⇨生まれて初めてパースというものに挑戦することになったので、これを使って抜き出した。簡単に抜き出せたのでびっくり。パースって面白いからもっと使いそう。
⇨使い方とか Beautiful SoupでHTMLやXMLをparseしよう - そこはかとなく書くよ。
⇨今回のプログラムは前回つぶやいてから、10分以内にAcceptedされたStoryを探してつぶやくために、現在時間とAcceptedされた時間を引く工程が必要だった。そのためにAcceptedされた時間をdatetimeに変換するものが必要だった。
⇨あと、ここだとタイムゾーンまで表示されるので、現在時刻を表示するときに、タイムゾーンを指定してあげなきゃいけない。そのときは、pytz - World Timezone Definitions for Python — pytz v2010e documentationでタイムゾーンを指定してあげる。
Groove Labo » Blog Archive » pytz – Pythonでタイムゾーンを扱うライブラリ
- zip関数の使用
⇨Story名とAcceptedの時間をひとつのグループにまとめるために使った。テキストでしか見たことなくて利点とかよく分からなかったけど、今回を通して便利だなと納得。
zip()関数 - バリケンのPython日記 - pythonグループ
- herokuでPythonのコードを動かす
⇨Python Dependencies via Pip | Heroku Dev Center
pip freeze
で出てきたインストールしてるモジュールとバージョンで、herokuに乗せるコードに必要なやつを requirement.txtに書くこと。