そらのあお(1) 「あお:@aoiro_] はじめの一歩
とりあえず、なんとなく書いてみたのでさらしてみます。こういうのってどこに投稿したらいいんだろう、pythonグループ?人工無脳グループ?or codereposだっけ、そういうところかな。
#!/usr/bin/env python # coding: utf-8 # Project : Aya # aoiro v1 # pre-process import twitter import random USERNAME = 'aoiro_' PASSWORD = 'xxxxxxx' api = twitter.Api(USERNAME, PASSWORD) # process (1) : make reply timeline = api.GetFriendsTimeline() for post in timeline: if post.in_reply_to_status_id: # TODO : 誰かへのリプライエントリであった場合の処理 # TODO : 自分へのリプライエントリであった場合の処理 continue else: makeReplyText(post) # post-process # TODO : 取得したデータの保存とか # ######## ######## ######## サブ関数群 ######## ######## ######## # ######## リプライの作成 def makeReplyText(post): # ## 初期設定 entry = post.text replyToUID = post.user.screen_name # UserID replyToSID = post.id # StatusID # ## パターンチェックとリプライ文bodyを考える replyBody = [] # おはよう if checkPetternsinEntry(entry, ptrOfOhayo): replyBody = makeText(post, repliesOfOhayo) # おやすみ if checkPetternsinEntry(entry, ptrOfOyasumi): replyBody = makeText(post, repliesOfOyasumi) if replyBody: # リプライ文bodyがあった場合リプライ文を組み立ててリプライする replyheader = u'@',+replyToUID + ' ' replytext = replyheader+replybody twitter.PostUpdate(replytext, replyToSID) # TODO : 投稿したことを適当に記録 # registerReply(replytext, replytoSID) # ######## 文中にパターンを含むかのチェック def checkPatternsInEntry(entry, ptrs): for ptr in ptrs: flg = ptr in entry if flg: break # 1個でもパターンを含めばOK return flg # ######## repliesからreplyを一つ選ぶ def makeReplyTextBody(replies): ind = random.randint(1,len(replies)) ind = ind -1 reply = replies[ind] return reply # ########### 反応辞書 ################## # ##### おはようチェックパターン def ptrOfOhayo(): petterns = [ u'おはよ', u'オハヨ' ] return petterns # ##### おはようリプライ def repliesOfOhayo(): replies = [ u'おはようなの', u'おきてーおきてーなの' ] return replies # ##### おやすみチェックパターン def ptrOfOyasumi(): petterns = [ u'おやすみ', u'寝るよ' ] return petterns # ##### おやすみリプライ def repliesOfOyasumi(): ME = 'あお' replies = [ u'いっしょにねるなの', ME + u'もいっしょにねるなの', u'おやすみなの' ] return replies