2008年くらいから幾つか作成して、ちょこちょこ改修しつつ、最近1年ほど放置していたtwitter bot達を、ここ数日見なおしていました。
今回大きく修正をしたもの
もともと、動いていないものがあるのを発見して、とりあえず動くようにしようかな・・・と思っていたのですが、今読み返すとソースコードが酷い。
インターフェースを変更したり、関数を作成したりしてソースコードもリファクタリングしました。
なんかすっきりした。
(ちなみにすべてphpで書いています。)
@latest_favorite
旧 @amazon_best。
「今コレが売れているのか、ほしいなあ。」という(自分の)物欲を刺激するためのbotです。
使用している Product Advertising API の仕様が変更され、Associate Tagが必須になってました。
(1年くらい前に…..ひどい)
ということでAssociate Tagも含めて改修。
- Associate Tagを取得し、呼び出し時のパラメータを変更する
- サブジャンルも表記するようにする
- 不必要な変数の持ち回りをしない
- 共通処理を関数でまとめたり、メソッドの引数を変更したり
生まれ変わって現在元気にtweetしています。
【Books/プログラミング】リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice) http://t.co/oRfrbJ9s
— 最新好きなものチェック (@latest_favorite) December 25, 2012
ちなみにジャンルは完全に自分の好み(全18ジャンル)。
@sap_freezer
こちらは札幌市民限定お役立ちbotです。
札幌市水道凍結情報(冬季のみ)に合わせ、冬季に稼働させます。上記のページを1日1回スクレイピングし、夜~寝るくらいまでの間、1時間に1回区ごとに凍結情報を流します。
- 区ごとの情報が取りやすくなるよう、ハッシュタグをつけた
- 値をスクレイピングしてきた時と、DBに保存しているのを呼び出した時とで共通処理がたくさんあるのでまとめた
ハッシュタグ対応、もっと早くすればよかったなあ。
地味に便利になっている(はず)です。
[南区::水道凍結情報] 今夜は【十分に注意】です。 明日は【注意】です。(2012年12月24日 16時00分発表)http://t.co/DUUC2JVR [2:50] #南区水道凍結情報
— 札幌市 水道凍結情報 (@sap_freezer) December 24, 2012
こんなかんじで「#○○区水道凍結情報」というハッシュタグがつくので、お住まいの地域のハッシュタグで検索したりフォローしたりしてあげてください。
今夜から明日にかけては、冷えます。
@sap_weather
こちらも札幌市民限定お役立ちbotです。札幌市の天気を配信しています。
前回、末尾のメッセージの変更をした際に凡ミスをしており、10月くらいから更新が途絶えておりました・・・。
今回はそのようなミスを減らすためにソースコードを大幅に見直しました。
- 末尾のメッセージを季節によって自動的に切り替えるようにした
- 値をスクレイピングしてきた時と、DBに保存しているのを呼び出した時とで共通処理がたくさんあるのでまとめた
- 処理を関数に分割し、ソースコードの見通しを良くした
【札幌 – 今日(12/25)の天気】 晴のち雪◇ (12月25日 17:00発表) http://t.co/qBB36MDp 気温変化グラフ⇒ http://t.co/haDH8dk8 [17:10]
— sap_weather (@sap_weather) December 25, 2012
気温変化グラフも気がつけば4年分のデータが蓄積されました。
年ごとの比較とかできると面白いだろうな、時間を見つけてやってみたい。
今回手を付けていないもの
@fortune_telling
12星座占いAPIの結果をランキング形式で配信しています。
なにげに一番follwerが多いbotです。
【今日の1位★獅子座】 総合運:★★★★★(5) 仕事運:★★★★★(5)いつもチェックしているサイトから、有益な情報が手に入りそう!バーゲンセールは、予算を少し多めにしておくと◎。
— fortune_telling (@fortune_telling) December 25, 2012
DB化やエラー時の処理などやりたいことがあるので、近いうちに見なおそう。
@atnd_reminder
ほぼ自分専用のアカウント。
ATNDに登録したイベントがある場合に、前日21時にDMをくれる。
twitter-dm, 前日21時というタイミングはすべて自分好み。
ちょっと前に、twitterAPIを最新のものに適用した以外、手を加えていない。
ソースコードのリファクタリングしたい。
@jibun_counter
自分の目標日に向けてカウントダウンしてくれるbot。
@irasally 健康診断まで、残り16日です!!健康ですか??
— 自分リマインダ (@jibun_counter) December 25, 2012
現在、生でDBに登録しているのだけれど、目標を登録するための画面を作るのが次の目標。
昔はweb画面を作るのってすごく大変・・・というイメージがあったのだけど、最近この敷居がすごく低く感じるようになった。
なんでも手を動かしてみるものですね。
生まれて初めての「仕事以外の趣味プログラミングで形になったものたち」なので、手をかけていってあげたいと思いました。