福本系bot-ZAWATTER

以前作って放置して、この間復活したZAWATTERについてのエントリを書いておく。
あーあ、俺もざわざわしてぇなぁ!! - Number6の「あーあ、俺に狐の嫁さんできねぇかなぁ!!」

概要

自分のFriendsTimelineから「……!」などが含まれている発言を発見し、ざわざわする。

ソースコード

# -*- coding: utf-8 -*-                                                           
import twitter                                                                    
import account                                                                    
import random                                                                     
import re                                                                         
user = <<ZAWATTERのユーザ名>>
pswd = <<ZAWATTERのパスワード>>                                                   
class Main:                                                                       
    def readLastStatusId(self):
        f = open('./lastStatusId.txt', 'r')
        s = f.read()
        f.close()
        return long(s)
    def writeLastStatusId(self,id):
        f = open('./lastStatusId.txt', 'w')
        f.write(id)
        f.close()
    def isZawa(self,text):
        r = re.compile(u'([つっ][・…]+|[・…]+[つっ])[!!]')
        result = r.search(text)
        if result != None:
            return True
        return False
    def makePost(self,user):
        result = u"@"
        result += user + u" "
        zawa_list = [
            u"ざわ…",
            u"ざわ……ざわ……",
            u"ざわ………ざわ………",
            u"ざわ… ざわ…",
            u"ざわ…… ざわ……",
            u"ざわ…… ざわ………"
        ]
        result += random.choice(zawa_list)
        return result
    def do(self):
        lastStatusId = self.readLastStatusId()
        api = twitter.Api(user,pswd)
        lines = api.GetFriendsTimeline()
        lines.reverse()
        for one in lines:
            if one.id > lastStatusId:
                if one.user.screen_name != 'ZAWATTER':
                    if self.isZawa(one.text):
                        post = self.makePost(one.user.screen_name)
                        api.PostUpdate(post)
                self.writeLastStatusId(str(one.id))
                lastStatusId = one.id

Main().do()

51行。
使用twitter用ライブラリはpython-twitter

今後

frientdsTilenlineつまり、ZAWATTERがfollowしている人たちの発言に反応するので、自動follow/remove返しが必要。
あと、「ざわ…」の特性上、Replyで飛ばすべきか、follower全員に見えるようにすべきか迷う。関係の無い人間に関係の無い人間のtweet流すのはなんかしっくりこない気がする。非公式RTでもしようかしらん。いや、ここは公式RTをですね。公式RTだとざわざわできねーじゃん!みたいな感じで仕様が固まってません。二年もたつのに。とりあえず無害なReply式を採用している。

その他

id:tohaeに捧ぐ。
初めて作ったtwitterbotなので、@Korokのお兄さんですね。凄いよこのざわったー!さすがころくのお兄さん!