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)
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))
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)