2012年3月5日月曜日

しろろさんぼっと(Python自作版)

これまで、しろろさんぼっとはtwittbotで運用されていましたが、無償版だといろいろ制限があり、お遊びで運用してるものだから、プレミアム版にするのもなんだかなぁという感じ[1]なので、Pythonで自作してみることにしました。
ただ、24時間運用するためには、24時間PCの電源を入れておかないといけないので、サーバーか何か借りないと無理なのですが、SSHできて、Pythonが自由に使えるサーバーというのが見つからなくて、私が忘れていなければ、MyPCが稼働中のみ、しろろさんぼっとが動くということになっております。
Google App Engineでも利用するかなぁ(携帯ないなぁ…)
どこか、設置させてくれる粋狂な方がいらっしゃいましたら、ご一報ください。

一応、仕様的なの
  • 必要動作環境
    • Python 2.x/tweepy
    • UTF-8が使える環境(たぶん)
  • 最小単位を分として、フツーのつぶやき、メンションへの返信、TL返信可能
    • フツーのつぶやきはtweets.py中のリストtweetsに格納
    • *返信の内容はreplies.py中のリストrepliesに格納
    • 正確には、処理→1分待ち→処理なので1分+アルファ(概ね1秒)
  • 各機能のつぶやき上限数はたぶん無制限
    • これが、自作に踏み切った理由ですしおすし(ハードウェア上の制限は知らない)
  • メンションへの返信、TL返信では、相手のアカウント名を挿入可能
    • {name}とした部分が相手の名前で置き換わります
  • TL上の特定のワードに対し、返信・ふぁぼが可能
    • 反応するワードはwords.py中のリスト、reply_words(返信)とfav_words(ふぁぼ)でそれぞれ指定
  • リフォロー機能搭載
    • 一定時間ごとにフォロワーリストを取得し、リフォローします
  • 一定時間ごとに関連ファイルのリロード
    • tweets/replies/words/versionを指定時間おきにリロードします
    • この機能により、関連ファイルに文法ミスがなければ(あったら、SyntaxErrorとかではじかれる)、無停止運用が可能なはずです
  • アカウントの名前(バージョン名)の動的更新機能
    • アカウント名(バージョン名)ってつまり、bioの「しろろさんぼっと(yy.mm.dd[rev])」ってあれだよ。
    • versionがリロードされた際に、そこで指定されたバージョンとTwitter上でのバージョンとが不一致の場合、前者に後者を変更します
    • 更新の際は自動的に、「しろろさんぼっとのバージョンがxxxになりました」とつぶやきます
  • 各種アクションの間隔の動的変更機能
    • フツーのつぶやき、リプライ、フォローバック、リロードの間隔を動的に変更でき、変更が生じた場合は、変更後の設定をツイートします。
しろろさんぼっとを利用されている方は、このようなTwitterアプリも利用されています:ぽぽったー
…と冗談はさておき、つぶやきリストの作成にはぽぽったーが楽です。
popotter ls hogehoge (num) > rawtweets
と最近(num)件の当該ユーザーのツイートをファイルにリダイレクトしておいて、
cut -f5- rawtweets > tweets
で余分なフィールドを削除、地の文とツイートにそれぞれ分離(これが一番面倒だったりする)、厳選し、別々に保存。
あとは、vimで
:%s/^\ /\tu"/g
:%s/$/",/g
として、「[タブ]u"(つぶやき)",」がズラーっとなるテキストファイルに変えておいて、tweets.py/replies.pyを開いて、:rで挿入。
以上。

0 件のコメント:

コメントを投稿