def get(self): v = Videos(key_name='videos') v.users = ["ShangoRBG","Halbertis","farhad43","abatebi","iranlover100","SasanShah1","Zendoaut","hadihadithegreat","saeidkermanshah"] v.searches = ["iranelection","iran riot","tehran"] v.put() t = Twitter(key_name='twitter') t.keywords = ['iranelection', 'tehran'] t.put() self.response.out.write('init\'d')
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 get(self): # パラメータ取得 twitter_id = self.request.get("id") # パラメータがなければ一覧へ if not twitter_id: self.redirect(urls.APP_INDEX_URL) return # データ取得 twitter_obj = Twitter.get( twitter_id ) # データがない! if not twitter_obj: # 無言で一覧へいかせるのさ self.redirect(urls.APP_INDEX_URL) return # 画面を表示する Viewer.generate( Viewer(), self.response, TEMPLATE_APP_INDEX_PATH, { 'current_twitter': twitter_obj, 'owned_twitters': models.get_owned_twitters( users.get_current_user() ) })
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 post(self): # パラメータを取得する twitter_id = self.request.get("twitter_id") consumer_key = self.request.get("consumer_key") consumer_secret = self.request.get("consumer_secret") access_token = self.request.get("access_token") access_token_secret = self.request.get("access_token_secret") mailaddress = self.request.get("mailaddress") # パラメータチェック if (twitter_id == '' or consumer_key == '' or consumer_secret == ''): self.redirect(urls.APP_INDEX_URL) return # データ登録 or 更新 and 取得 twitter_obj = Twitter.get_or_insert( users.get_current_user().user_id() + twitter_id, owner = users.get_current_user(), twitter_id = twitter_id, consumer_key = consumer_key, consumer_secret = consumer_secret, access_token = access_token, access_token_secret = access_token_secret, mailaddress = mailaddress ) twitter_obj.consumer_key = consumer_key twitter_obj.consumer_secret = consumer_secret twitter_obj.access_token = access_token twitter_obj.access_token_secret = access_token_secret twitter_obj.mailaddress = mailaddress twitter_obj.put() # 画面を表示する Viewer.generate( Viewer(), self.response, TEMPLATE_APP_INDEX_PATH, { 'current_twitter': twitter_obj, 'owned_twitters': models.get_owned_twitters( users.get_current_user() ) })
def post(self): # パラメータを取得する mailaddress = self.request.get("mailaddress") twitter_id = self.request.get("twitter_id") consumer_key = self.request.get("consumer_key") consumer_secret = self.request.get("consumer_secret") access_token = self.request.get("access_token") access_token_secret = self.request.get("access_token_secret") # パラメータチェック if (twitter_id == '' or consumer_key == '' or consumer_secret == ''): self.redirect(urls.APP_INDEX_URL) return # データ登録 or 更新 and 取得 twitter_obj = Twitter.get_or_insert( users.get_current_user().user_id() + twitter_id, owner = users.get_current_user(), twitter_id = twitter_id, mailaddress = mailaddress, consumer_key = consumer_key, consumer_secret = consumer_secret, access_token = access_token, access_token_secret = access_token_secret ) twitter_obj.mailaddress = mailaddress twitter_obj.consumer_key = consumer_key twitter_obj.consumer_secret = consumer_secret twitter_obj.access_token = access_token twitter_obj.access_token_secret = access_token_secret twitter_obj.put() # Twitterアカウント有無確認 # result_test_tweet = '' # try: # result = urlfetch.fetch(TWITTER_BASE_URL + twitter_id) # if not (result.status_code == 200): # result_test_tweet = 'Twitterアカウントが間違っているかもしれません' # except urlfetch.DownloadError, e: # logging.error('Download error: %s', e) # result_test_tweet = e # つぶやく client = oauth.TwitterClient(twitter_obj.consumer_key, twitter_obj.consumer_secret, None) try: client.make_request('http://twitter.com/statuses/update.json', token = twitter_obj.access_token, secret = twitter_obj.access_token_secret, additional_params = {'status': u"test"}, protected = True, method = 'POST') result_test_tweet = 'SET (SuccEss Tweet)' except e: logging.error('Tweet error: %s', e) # 画面を表示する Viewer.generate( Viewer(), self.response, TEMPLATE_APP_INDEX_PATH, { 'current_twitter': twitter_obj, 'owned_twitters': models.get_owned_twitters( users.get_current_user() ), 'result_test_tweet': result_test_tweet })
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 ))