コード例 #1
0
ファイル: main.py プロジェクト: sadao/tweet-with-email
  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)
コード例 #2
0
ファイル: main.py プロジェクト: sadao/tweet-with-email
  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
コード例 #3
0
ファイル: main.py プロジェクト: sadao/tweet-with-email
  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)
コード例 #4
0
ファイル: inf.py プロジェクト: kioopi/appengine-newsflash
 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 ))