ラベル Python の投稿を表示しています。 すべての投稿を表示
ラベル Python の投稿を表示しています。 すべての投稿を表示

2013年4月22日月曜日

しろろさんぼっとの最新版ソースコードを公開しました。

しろろさんぼっとの最新版ソースコードを公開しました。
『リーダブルコード』影響を受けてコードの全面的な見直し・書き直しを行ったほか、本家ツイートのRT機能を追加し、初期設定を簡易化するためのスクリプト(setup.py)を書いて、同梱しました。

説明書きのindex.htmlがまだ不十分な気がしていますが、ぼっとの設定・展開・運用が容易になったと信じています。

ライセンス:MITライセンス

ダウンロードはこちらから
http://ubuntuone.com/4K7bG6TUhbrjv2f4ZDPR2n


2012年4月20日金曜日

しろろさんぼっと powered by Google App Engine

携帯を入手したので、めでたく、Google App Engineのアカウントを取得して、しろろさんぼっとをそちらで稼働させるようにできました。
メモ的な仕様を書いておきます。
(2012年4月20日現在の仕様であり、現在は変更されている可能性があります)
  • 基本機能
    • 1時間に1度つぶやきます。
    • 3分ごとにTL(≠メンション)を取得して、ぼっと宛のリプライやしろろさん関連のワードに対してリプライで応答します。また、ふぁぼります。
      • 既知の問題
        • 取得するツイートはぼっとの直前のツイートまでです。したがって、TLを取得したタイミングと何らかのツイートを投稿するタイミングとの間の(比較的)僅かな時間の間に投稿されたツイートに関しては反応漏れがあるかもしれません。(この問題について対処する予定はありません)
    • フォローバック機能
      • 実装はしましたが、実験はしていません。
      • 既知の問題
        • 鍵垢のフォローバックには対応していません。何らかの手段で中の人にフォローバック要請してください。(この問題について対処する予定はありません)
        • 1時間ごとのツイートのタイミングで新規のフォローをチェックしますが、現在のところ、20 accounts/hourを越えることはないと判断し、最新20アカウントの新規フォローのみチェックしています。(この問題について対処する予定はありませんが、喜ばしいことに、ぼっとのフォローが増えた場合は対応するSHOZONです。)
  • 拡張機能
    • 「神々の遊び」機能
      • ぼっとに「人生とは何ですか」とメンションを投げてみてください。あとは流れで。
    • お天気機能
      • 「天気」というワードを含むメンションを投げると、お天気情報をくれます。
  • 技術情報
    • Pythonで書いてます。
    • ツイートその他の選択には、時間をシードにした擬似乱数を使用しています。
    • 一定程度の間隔以内で同じ内容の投稿はTwitter側でエラーとなるので、特定の反応をする機能についてはツイート内容の後ろに時間を付加して問題を回避しています。
    • ソースコードが必要な方にはお配りしようかなぁなんて思ってますので、ご相談ください。(そんな人いないか)

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で挿入。
以上。

2012年2月18日土曜日

ぽぽったー、公開してみたいと思います。

ぽぽったーを公開してみようと思います。
まだテストは十分とは思えないので、落ちても、何しても怒らないでください。完全人柱。
(自分が使った限りでは特に何もなかったけど、例外処理に漏れがある可能性は大です)
使い方その他は、tar.gzに梱包してあるのでご参照ください。
[ちょいちょい、更新します]

バージョン0.8安定版
tar.gz
popotter-0.8-stable01.tar.gz

Subversionレポジトリ
https://subversion.assembla.com/svn/popotter/tags/0.8-stable/

バージョン0.9開発版
tar.gz

Subversionレポジトリ
https://subversion.assembla.com/svn/popotter/trunk/

更新履歴的なの。
0.8-stable01
  • 安定版に移行(以後、新機能追加はせず、バグ取りのみに専念)
  • detail usr 機能をツイート番号によるユーザー情報取得も可能に。
  • .popotter_rcにTwitter時間のUTCとの時差の記述および読み取り機能。
0.8-dev07
  • setupコマンドの例外処理を施す
0.8-dev06
  • バージョン管理の方法を改訂(setup.py直書き→const.py)
0.8-dev05
  • detail twで公式RTが指定された場合は、RT元のツイートの情報を表示するようにした
  • 連投機能(loopコマンド)搭載

0.8-dev04
  • 念願の(!)RT削除機能を搭載

dev03
  • 公開開始

2012年2月16日木曜日

【緩募】ぽぽったーを試用していただける方【失効】

ちまちまと開発を進めてる、ぽぽったーですが、ちょっと触ってみたいという方がいるような、いないような、という感じなので、一応、「試用いただける方」ということでゆるーく募集したいと思います。


募集要項
  • Twitterのアカウントをお持ちであること
  • 使用可能なインターネット接続をお持ちであること
  • (冗談はここまで)
  • Pythonとそのモジュールのtweepyを使用できる環境(物理的環境/OS/インストールの可否含む)をお持ち、ないしは、用意できること
  • DMで連絡の取れる方であること(ダウンロードのURLをお教えします)
  • Subversionでのみの配布となるので、Subversionのクライアント(任意)を使用できる、ないしは、使用する気をお持ちであること
  • DMで利用可能なメールアドレス(PC推奨)をぽぽに教えていただけること
    • Subversionのレポジトリへのアクセス権限付与にメールアドレスが必要
    • レポジトリのサイトへの登録が必要かもしれません(DMとかは特に来ない)
    • 必要な手続きが終われば、DMは削除していただいて構いません
  • ぽぽったーが落ちてもキレない心をお持ちであること
  • [懇願]バグや要望、改善点などを教えていただけると嬉しいです。
本公開しました。