2016/11/25追記
後継のlekcijeというサービスを作ったのでぜひこちらをご利用下さい。
動機
- どのSkype英会話でもそうだと思うんだけど、人気のある先生はすぐ予約が埋まっちゃう
- でもスケジュールをいちいち検索してチェックするのはダルい
というわけで作りました。
使った技術
- Heroku Scheduler - cron的なヤツ
- ClearDB MySQL Addon - HerokuでMySQLを使えるようにする
- SendGrid Addon - APIでメール送信
- Papertrail - Herokuのログの検索
- Dead Man's Snitch - Heroku Schedulerで動かしているコマンドが正常に動いているか監視
- Python 3.5 - Type Hintsを使ってみたかったので
- Alembic - データーベースのマイグレーション
ソースコードは↑。"Deploy to Heroku" buttonをつけておいたので、Herokuアカウントがあれば誰でもこのアプリケーションを使うことができる。やり方はREADMEを見てもらえればと。
概要
- Heroku Schedulerで10分おきにお気に入りの先生のスケジュールのページをスクレイピング
- 前回のスケジュール(DB)と今回スクレイピングしたスケジュールを比較
- 新しく空きレッスンがある場合はメールで通知
- スクレイピングしたスケジュールをDBに登録
- スケジュールをチェックしたい先生のIDを入力する画面を作るのが辛かったので、その辺は環境変数経由でIDを渡すという手抜きな構造
- 超ヒマになったら画面作りたい
結果
人気の先生の予約がめっちゃ取りやすくなったし、副次的な効果としてキャンセルで空いたレッスンにもすぐ気付けるようになったので、DMM英会話やってる人は使ってみたらいいと思います。
どんどん話すための瞬間英作文トレーニング (CD BOOK)
- 作者: 森沢洋介
- 出版社/メーカー: ベレ出版
- 発売日: 2006/10/25
- メディア: 単行本
- 購入: 80人 クリック: 383回
- この商品を含むブログ (173件) を見る
余談
これを作り始めてからGitHubに草が生えるようになった。
今回は小規模だったためORMapperなどのライブラリ・フレームワークを使わないで実装したけど、会社だけでコードを書いているといかに自分がフレームワークやライブラリに依存したコードしか書けないかを思い知らされて良かったです。