示例#1
0
def dema_add():
    ## ログインチェック
    if g.user is None:
        return redirect(url_for('login', next=request.url)) 
    reporter_id = session['user_id']
    flag = request.args.get('flag', type=int)
    tweet_id = request.args.get('tweet_id', type=int)
   
    ## Userオブジェクト作成
    user_obj = get_user(reporter_id)  # レポートする人のUserObject
    reporter_obj = models.Reporter.get_or_insert(key_name = reporter_id, user=user_obj)
    reporter_obj.put()

    ## tweet obj作成
    twit_data =  get_status_by_tweet_id(tweet_id)

    if twit_data.has_key('text'):
      tweet_test = twit_data['text']
      import datetime
      dd = datetime.datetime.strptime(twit_data['created_at'], '%a %b %d %H:%M:%S +0000 %Y')
      tweet_obj = models.Tweet.get_or_insert(key_name = str(tweet_id),
                                          tweet_id = tweet_id,
                                          tweet = twit_data['text'],
                                          screen_name = twit_data['user']['screen_name'], 
                                          user = get_user(twit_data['user']['id_str'], twit_data['user']), 
                                          lang = twit_data['user']['lang'], 
                                          tweeted_at = dd)
   
      # Reportを生成 デマレートを計算して保存
      repo = models.Report.get_or_insert(
                           key_name = "%s_%s"%(user_obj.user_id, tweet_obj.tweet_id), 
                           reporter = reporter_obj, 
                           tweet = tweet_obj, 
                           )
      
      before_flag = repo.dema_flag
      repo.dema_flag = flag
      dema_delta = [0, 0]

      if before_flag == 1:
          dema_delta[0] -= 1
      elif before_flag == -1:
          dema_delta[1] -= 1

      if flag == 1:
          dema_delta[0] += 1
      elif flag == -1:
          dema_delta[1] += 1

      tweet_obj.set_dema_cnt(*dema_delta)
      tweet_obj.put()
       
      repo.put()
      status = 'ok'
    else:
      status = 'ng'

    res = {'staus':status} 
    return json.dumps(res)
示例#2
0
    def get(self):
        tweet_id  = int(self.request.get('tweet_id'))
        #tweet_id = 49718585047785472
        reporter_id = self.request.get('reporter_id')
        reporter_id  = '1'

        flag = int(self.request.get('flag'))

        logging.info(tweet_id)
        twit_data =  get_status_by_tweet_id(tweet_id)

        ## Tweetを作る
        tweet = twit_data[u'text']  # twit の本文
        user_obj = get_user(reporter_id)  # レポートする人のUserObject
        tweet_obj = save_create_twit(
                     tweet_id   = tweet_id, 
                     tweet      = tweet, 
                     user       = user_obj, 
                     tweeted_at = twit_data['created_at']
                     )

        ## Reportを作る
        repo = models.Report.get_or_insert(
                             key_name = "%s_%s"%(user_obj.user_id, tweet_obj.tweet_id), 
                             reporter = user_obj, 
                             tweet = tweet_obj, 
                             )
        
        before_flag = repo.dema_flag
        repo.dema_flag = flag
        dema_delta = [0, 0]

        if before_flag == 1:
             dema_delta[0] -= 1
        elif before_flag == -1:
             dema_delta[1] -= 1

        if flag == 1:
             dema_delta[0] += 1
        elif flag == -1:
             dema_delta[1] += 1

        tweet_obj.set_dema_cnt(*dema_delta)
        tweet_obj.put()
         
        repo.put()
        res = {'staus':'ok'} 
        self.response.out.write(str(res))
示例#3
0
def dema_add():
    ## ログインチェック
    if g.user is None:
        return redirect(url_for('login', next=request.url))
    reporter_id = session['user_id']
    flag = request.args.get('flag', type=int)
    tweet_id = request.args.get('tweet_id', type=int)

    ## Userオブジェクト作成
    user_obj = get_user(reporter_id)  # レポートする人のUserObject
    reporter_obj = models.Reporter.get_or_insert(key_name=reporter_id,
                                                 user=user_obj)
    reporter_obj.put()

    ## tweet obj作成
    twit_data = get_status_by_tweet_id(tweet_id)

    if twit_data.has_key('text'):
        tweet_test = twit_data['text']
        import datetime
        dd = datetime.datetime.strptime(twit_data['created_at'],
                                        '%a %b %d %H:%M:%S +0000 %Y')
        tweet_obj = models.Tweet.get_or_insert(
            key_name=str(tweet_id),
            tweet_id=tweet_id,
            tweet=twit_data['text'],
            screen_name=twit_data['user']['screen_name'],
            user=get_user(twit_data['user']['id_str'], twit_data['user']),
            lang=twit_data['user']['lang'],
            tweeted_at=dd)

        # Reportを生成 デマレートを計算して保存
        repo = models.Report.get_or_insert(
            key_name="%s_%s" % (user_obj.user_id, tweet_obj.tweet_id),
            reporter=reporter_obj,
            tweet=tweet_obj,
        )

        before_flag = repo.dema_flag
        repo.dema_flag = flag
        dema_delta = [0, 0]

        if before_flag == 1:
            dema_delta[0] -= 1
        elif before_flag == -1:
            dema_delta[1] -= 1

        if flag == 1:
            dema_delta[0] += 1
        elif flag == -1:
            dema_delta[1] += 1

        tweet_obj.set_dema_cnt(*dema_delta)
        tweet_obj.put()

        repo.put()
        status = 'ok'
    else:
        status = 'ng'

    res = {'staus': status}
    return json.dumps(res)