def receive(self, message): # 送信元メールアドレスの @ の左側を取得する twitter_id = self.get_user_id( message.to ) # twitter_id が登録済みかな? query = Twitter.all() query.filter( 'twitter_id = ', twitter_id ) twitter_obj = query.fetch(limit = 1) # 未登録なら、はいここまでよ if not twitter_obj: logging.error( twitter_id + 'is not registered' ) return # メール本文だけ使います。Subject はスルー body = self.get_body( message ) if not body: logging.error( 'Nothing Mail Body' ) return # TEMるのだ import oauth client = oauth.TwitterClient(twitter_obj[0].consumer_key, twitter_obj[0].consumer_secret, None) try: client.make_request('http://twitter.com/statuses/update.json', token = twitter_obj[0].access_token, secret = twitter_obj[0].access_token_secret, additional_params = {'status': body}, # additional_params = {'status': u"body"}, protected = True, method = 'POST') logging.info('Success Tweet : %s', twitter_id) except e: logging.error('Tweet error: %s', e)
def receive(self, message): # 送信元メールアドレスの @ の左側を取得する twitter_id = self.get_user_id( message.to ) # twitter_id が登録済みかな? query = Twitter.all() query.filter( 'twitter_id = ', twitter_id ) twitter_obj = query.fetch(limit = 1) # 未登録なら、はいここまでよ if not twitter_obj: logging.error( twitter_id + 'is not registered' ) return # TEMるのだ import oauth client = oauth.TwitterClient(twitter_obj[0].consumer_key, twitter_obj[0].consumer_secret, None) # メール本文があれば投稿。無ければつぶやきをメール送信 body = self.get_body( message ) try: # 本文ありの場合は、それをつぶやく if body: client.make_request('http://twitter.com/statuses/update.json', token = twitter_obj[0].access_token, secret = twitter_obj[0].access_token_secret, additional_params = {'status': body}, protected = True, method = 'POST') logging.info('Success Tweet : %s', twitter_id) # ない場合はFromアドレスへ最新のつぶやき5件を返す else: # つぶやきを取得 param = {'id' : twitter_id, 'count': TIMELINE_COUNT} #param = {'count': TIMELINE_COUNT} response = client.make_request(url = TIMELINE_URL, token = twitter_obj[0].access_token, secret = twitter_obj[0].access_token_secret, additional_params = param) result = simplejson.loads(response.content) # 出力用にデータを調整 output_str = FormatResult(result) # つぶやき内容をメール送信 e_message = mail.EmailMessage( sender = MAIL_FROM_ADDRESS, to = message.sender, subject = twitter_id + MAIL_SUBJECT_FOOTER ) e_message.body = output_str e_message.send() except: logging.error( sys.exc_info()[0] ) return True
def post(self): # パラメータを取得する twitter_id = self.request.get("twitter_id") # データ取得 query = Twitter.all() query.filter( 'twitter_id = ', twitter_id ) query.filter( 'owner = ', users.get_current_user() ) twitter = query.fetch(limit = 1) # データがない! if not twitter: # 無言で一覧へいかせるのさ self.redirect(urls.APP_INDEX_URL) return # 削除 twitter[0].delete() # AppIndex へリダイレクト self.redirect(urls.APP_INDEX_URL)
def get(self): t = Twitter.all()[0] context = add_user_to_context({'keywords': t.keywords }) self.response.out.write( template.render(tmpl('templates/twitter.html'), context ))