Hatena::ブログ(Diary)

Absolute Territory RSSフィード

2008-02-08

[]twitterボット「ZAWATTER」を作ったよー\(^o^)/

id:Number6が発案し、PHPで作成したものを、とある事情でpythonで作り直しました。

このボットがどのようなものかというと、ZAWATTER(@ZAWATTER)さん | Twitterをfollowした状態で、twitterに「っ・・・!」のような福本伸行先生の作品に良く出てくるような発言をすると、ZAWATTERが「ざわ・・・ざわ・・・」し始めるという何の意味もないボットです><

ただ、pythonで作ったはいいのですが、当初動かすことを予定していたXreaは金を払ってないの原因かしりませんがcronが使えません\(^o^)/

またcronが使えても1時間に一回しか使えない(確認はしてない)っぽいので、1分に一回動かそうと思ってたのでどっちにしろ使えないかも\(^o^)/

仕方ないので大学の研究室の鯖に置き土産として動かそうとしたのですが、なんかわけのわからないエラーがでて動きませんでした。たぶんプログラムではなくサーバ側の問題。

というわけで、ソースを乗っけておくので、誰か自分のサーバで動かしてくだしあ><

動かしてもいいよという変態がいらっしゃいましたらご連絡ください。

動かすにはsimplejsonとpython-twitterが必要です。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import twitter,re

USERNAME ="username"
PASSWORD ="hogehoge"
KOUHO =(
	u"ざわ… ざわ…",
	u"ざわ… ざわ… ざわ…",
	u"ざわ… ざわ… ざわ… ざわ…",
)
FILE = 'hoge.txt'

r = open(FILE,'r')
latest_id = r.readline()
r.close()

pattern = re.compile(u"っ(・|‥|…)+(!|!)")
api = twitter.Api(username=USERNAME,password=PASSWORD)
for follow in api.GetFollowers():
	print follow.screen_name,follow.status.text
	if pattern.search(follow.status.text):
		status_id =follow.status.id		
		if int(latest_id) < int(status_id) :
			api.PostUpdate(u"@%s %s" % (follow.screen_name,KOUHO[status_id % len(KOUHO)]))
			print follow.screen_name
			latest_id = status_id
			
w = open(FILE,'w')
w.write(str(latest_id))
w.close()


大したコードでもないので、クラスにも関数にもしてませんw

挙動としては、ZAWATTERのfollowerの情報を取得し、発言が「っ(・|‥|…)+(!|!)」の正規表現にマッチし、なおかつその発言が以前「ざわ・・・ざわ・・・」したステータスIDよりも新しければ「ざわ・・・」の候補の中からひとつ選んでポストします。

ちなみに最新のステータスIDはファイルに保存してます。

というわけで、これ誰か動かしてくだしあ><

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証