精神分析bot(仮)
tolchok: 精神分析bot:「ネクタイ」「貝」「空を飛ぶ」などのキーワードに対して、「ペニス」「ヴァギナ」「勃起」などとreplyする。誰かつくって
http://twitter.com/tolchok/status/2451579742
簡単に書いてみる
import re import urllib2 import simplejson import twitter def make_reply(content): dic = {u'空を飛':u'勃起', u'ネクタイ':u'ペニス', u'貝':u'ヴァギナ'} match = re.search(u'(空を飛|ネクタイ|貝)', content) if match: return dic[match.group(1)] else: return u'脱構築' #最後に取得したステータスID file_timeline = open('*****', 'r') id_timeline = float(file_timeline.readline()) file_timeline.close() file_replies = open('*****', 'r') id_replies = float(file_replies.readline()) file_replies.close() #Twitter検索から取得 opener = urllib2.build_opener() #(空を飛 or ネクタイ or 貝) and (精神分析 or 夢) -twitter_id json = opener.open('http://pcod.no-ip.org/yats/search?query=%28空を飛+or+ネクタイ+or+貝%29+%29精神分析+or+夢%29+-twitter_id&lang=ja&json&fast').read() tweets = simplejson.loads(json) #Replyから取得 api = twitter.Api('twitter_id','*****') reply = api.GetReplies() replies = [{"user":s.user.screen_name, "content":s.text, "id":s.id} for s in reply] #新しい発言があれば実行 for post_tweets in tweets: if float(post_tweets['id']) > id_timeline: word_tweets = make_reply(post_tweets['content']) status = api.PostUpdate("@" + post_tweets['user'] + " " + word_tweets) for post_replies in replies: if float(post_replies['id']) > id_replies: word_replies = make_reply(post_replies['content']) status = api.PostUpdate("@" + post_replies['user'] + " " + word_replies) #ステータスIDを記録 if tweets: file_timeline = open('*****', 'w') file_timeline.write(str(tweets[0]['id'])) file_timeline.close() if replies: file_replies = open('*****', 'w') file_replies.write(str(replies[0]['id'])) file_replies.close()