#!/usr/bin/python # -*- coding: utf-8 -*- # twitter/tmtの監視とメールを送る処理を行う if True: #if False: homePath = "./" else: homePath = "/home/yuki/bot/todotter/" c_debug = False; #c_debug = True; """ ToDoの文字列が含まれてるかどうか見て、含まれてれば文字を返す 含まれてなければ空文字列返す """ def checkTodo(x): xs = x[1].lower() #xs = x[1].encode("utf-8") if( xs.startswith("[todo]") or xs.startswith("todo:") \ or xs.startswith(u"メモ:")): #print "xs", #xs = string.replace(xs,'todo:','') #xs = string.replace(xs,'[ToDo]','') xs = x[0] + " : "+x[1] #xs = unicode(xs,'utf-8','ignore') print xs else: xs = "" return xs """ 指定されたユーザの発言を見る """ def crawlAndAppend(userData,crawlUser,latest): import twitter3,toDate,string tw = twitter3.Twitter(userData) a = tw.getWithUser(crawlUser) a.reverse() for x in a: if c_debug: print x[0], print ":", print x[1].encode("cp932"), print toDate.toDate(x[2]), print nowTime # 最終更新時刻以前のログはカット if toDate.toDate(x[2]) - latest < datetime.timedelta(days =0) : print "pass" continue; strResult = checkTodo(x) if( strResult != "" ): tw.put(strResult) """ follower一覧を取ってくる >>> user = jsonfile.read(homePath+"user/twdata_todotter") >>> crawlUserList(user["user"]) ["showyou"] """ def crawlUserList(user): import twitter3 tw = twitter3.Twitter(user) return tw.getFollowersLite(user); if __name__ == "__main__": import picklefile,todot,datetime,jsonfile user = jsonfile.read(homePath+"user/twdata_todotter") try: userData = picklefile.read(homePath+"user/twdata_todotuserdata") except: userData = {} crawlUser = [] #followerを見て、userDataの一覧を取ってくる # userData は、({"user":user, # "time":nexttime(次の定期更新時刻),"now":flag(直ぐに送信するか)},...) crawlUser = crawlUserList(user) print crawlUser nowTime = datetime.datetime.today() for u in crawlUser: if( userData.has_key(u[0])): pass else: userData[u[0]]={} userData[u[0]]["time"] = datetime.datetime.today() - datetime.timedelta(hours = 1) #if userData[u]["now"]: # userData[u]["now"] = False #todot.crawlAndRegist(u["user"]) #もし最終更新時刻~現在時刻の間にtimeがあったら、todoスキャンする #if latestTime < userData[u[0]]["time"]: print u[0] crawlAndAppend(user,u[0],userData[u[0]]["time"]) print "userData", print userData userData[u[0]]["time"] = nowTime picklefile.write(homePath+"user/twdata_todotuserdata",userData)