休講を通知するBotを作りたい (サーバ検討編)

うちの大学では、授業日程変更や休講は学務課のWebサイトに掲載されるのだが、毎回ログインして休講情報を自分で調べに行かないといけない。

毎日チェックするのは面倒なので、あんまり見てなかったんだけど、家から一時間半かけて大学に行ってから休講と知り、一時間半かけて引き返すみたいなことをする機会が何回かあったので、休講情報を通知してくれるツールを作ることにした。

(大学がメールで通知してくれたら良いんですけどね)

休講情報を通知するツールを作るにあたって、方法を2通り考えた。

  • Androidアプリとサービスを作って、通知を出す
  • Twitter Botを作って、自分のTwitterアカウントにリプを送る

Androidアプリにするのも良いんだけど、大学の先生が作ってる「あくあたん」っていうBotが超高性能でいい感じなんで、これを目指して頑張ることに。

組んでみた

土曜日にシュッと組んだ結果、大学の認証システムを通して休講情報が載ってるページにアクセスし、得たデータをhtmlパーサにかけて任意の情報を取り出し、Twitterに投稿するスクリプトは出来た。

けど、こっからが長かった。

サーバどうしよう

必要事項は

  • Pythonが走る
  • cronが実行できる、もしくはその代替となるものが実行できる
  • Deployするだけで動くPaas環境だと嬉しい
  • 非力で良いから無料もしくは安いやつ

この条件ですぐに思いついたのがGoogle App Engineだったので、これでやってみようとしたんだけど、Twitterのライブラリがどれも使えず断念。
Google App Engineでは課金しないと(というかクレジットカードを登録しないと) Socketが使えないので、ユーザストリームとかを使う部分でエラーが出てしまった。

次に、Paasって言ったらHerokuだろってことでHerokuを使うことを考えたけど、HerokuでPythonってなんか違和感凄いし、情報量あまり無かったので断念。

最終的に、VPS上で動かすことにして、Dockerコンテナを作成中。 ただ、Docker上で動かすとなると、Google App EngineとかHerokuみたいに簡単にDeployできないし、微妙な気もする。

今はとりあえず、gitで管理してる手元のスクリプトをBitbucketにpushしてから、Dockerのコンテナ内にsshで入ってpullするっていう面倒な作業してるけど、何か良い方法ないだろうか。