Пример #1
0
    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')
Пример #2
0
  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)
Пример #3
0
  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() )
      })
Пример #4
0
  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
Пример #5
0
  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)
Пример #6
0
  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() )
      })
Пример #7
0
  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
      })
Пример #8
0
 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 ))