Exemple #1
0
 def put(self, tweet_id):
     tweet_id = int(tweet_id)
     tweet = Tweet.get(id=tweet_id)
     if not tweet:
         raise tornado.web.HTTPError(404)
     action = self.get_argument('action', None)
     user = self.current_user
     if not action:
         result = {'status': 'error', 'message':
                   '缺少参数'}
         return self.send_result(result)
     if action == 'up':
         if tweet.user_id != user.id:
             result = user.up(tweet_id=tweet.id)
         else:
             result = {'status': 'info', 'message':
                       '不能为自己的推文投票'}
     if action == 'down':
         if tweet.user_id != user.id:
             result = user.down(tweet_id=tweet.id)
         else:
             result = {'status': 'info', 'message':
                       '不能为自己的推文投票'}
     if action == 'collect':
         result = user.collect(tweet_id=tweet.id)
     if action == 'thank':
         result = user.thank(tweet_id=tweet.id)
     if action == 'report':
         result = user.report(tweet_id=tweet.id)
     return self.send_result(result)
Exemple #2
0
 def put(self, tweet_id):
     tweet_id = int(tweet_id)
     tweet = Tweet.get(id=tweet_id)
     if not tweet:
         raise tornado.web.HTTPError(404)
     action = self.get_argument('action', None)
     user = self.current_user
     if action and user:
         if action == 'up':
             if tweet.user_id != user.id:
                 result = user.up(tweet_id=tweet.id)
             else:
                 result = {'status': 'info', 'message':
                           '不能为自己的推文投票'}
         if action == 'down':
             if tweet.user_id != user.id:
                 result = user.down(tweet_id=tweet.id)
             else:
                 result = {'status': 'info', 'message':
                           '不能为自己的推文投票'}
         if action == 'collect':
             result = user.collect(tweet_id=tweet.id)
         if action == 'thank':
             result = user.thank(tweet_id=tweet.id)
         if action == 'report':
             result = user.report(tweet_id=tweet.id)
         if self.is_ajax:
             return self.write(result)
         self.flash_message(**result)
         return self.redirect_next_url()
Exemple #3
0
 def put(self, tweet_id):
     tweet_id = int(tweet_id)
     tweet = Tweet.get(id=tweet_id)
     if not tweet:
         raise tornado.web.HTTPError(404)
     action = self.get_argument('action', None)
     user = self.current_user
     if not action:
         result = {'status': 'error', 'message': '缺少参数'}
         return self.send_result(result)
     if action == 'up':
         if tweet.user_id != user.id:
             result = user.up(tweet_id=tweet.id)
         else:
             result = {'status': 'info', 'message': '不能为自己的推文投票'}
     if action == 'down':
         if tweet.user_id != user.id:
             result = user.down(tweet_id=tweet.id)
         else:
             result = {'status': 'info', 'message': '不能为自己的推文投票'}
     if action == 'collect':
         result = user.collect(tweet_id=tweet.id)
     if action == 'thank':
         result = user.thank(tweet_id=tweet.id)
     if action == 'report':
         result = user.report(tweet_id=tweet.id)
     return self.send_result(result)
Exemple #4
0
 def get(self):
     page = self.get_int('page', 1)
     from_id = self.get_int('from_id', 0)
     tweets = Tweet.get_timeline(page=page, from_id=from_id, user_id=self.current_user.id)
     return self.render("site/timeline.html",
                        tweets=tweets,
                        cate='me',
                        page=page)
Exemple #5
0
 def get(self):
     page = self.get_int('page', 1)
     from_id = self.get_int('from_id', 0)
     tweets = Tweet.get_timeline(page=page, from_id=from_id)
     return self.render("site/timeline.html",
                        tweets=tweets,
                        cate='public',
                        page=page)
Exemple #6
0
 def post(self):
     user = self.current_user
     content = self.get_argument('content', None)
     image_ids = self.get_argument('image_ids', None)
     images = []
     if not (content and len(strip_tags(content)) >= 3):
         result = {
             'status': 'error',
             'message': '推文内容至少 3 字符'
         }
         return self.send_result(result, '/timeline')
     tweet = Tweet(content=strip_xss_tags(content), user_id=user.id).save()
     tweet.put_notifier()
     if image_ids:
         image_ids = image_ids.split(',')
         for image_id in image_ids:
             image_id = int(image_id)
             image = Image.get(id=image_id)
             if not image:
                 continue
             image.tweet_id = tweet.id
             images.append({
                 'id': image.id,
                 'path': image.path,
                 'width': image.width,
                 'height': image.height,
             })
     if images:
         tweet.has_img = 'true'
     result = {
         'status': 'success',
         'message': '推文创建成功',
         'content': tweet.content,
         'name': tweet.author.name,
         'nickname': tweet.author.nickname,
         'author_avatar': tweet.author.get_avatar(size=48),
         'author_url': tweet.author.url,
         'author_name': tweet.author.name,
         'author_nickname': tweet.author.nickname,
         'tweet_url': tweet.url,
         'created': tweet.created,
         'id': tweet.id,
         'images': images,
     }
     return self.send_result(result, '/timeline')
Exemple #7
0
 def delete(self, tweet_id):
     if not self.current_user.is_admin:
         return self.redirect_next_url()
     tweet = Tweet.get(id=tweet_id)
     if not tweet:
         return self.redirect_next_url()
     tweet.delete()
     result = {'status': 'success', 'message': '已成功删除'}
     return self.write(result)
Exemple #8
0
 def post(self):
     user = self.current_user
     content = self.get_argument('content', None)
     image_ids = self.get_argument('image_ids', None)
     images = []
     if not (content and len(strip_tags(content)) >= 3):
         result = {'status': 'error', 'message': '推文内容至少 3 字符'}
         return self.send_result(result, '/timeline')
     tweet = Tweet(content=strip_xss_tags(content), user_id=user.id).save()
     tweet.put_notifier()
     if image_ids:
         image_ids = image_ids.split(',')
         for image_id in image_ids:
             image_id = int(image_id)
             image = Image.get(id=image_id)
             if not image:
                 continue
             image.tweet_id = tweet.id
             images.append({
                 'id': image.id,
                 'path': image.path,
                 'width': image.width,
                 'height': image.height,
             })
     if images:
         tweet.has_img = 'true'
     result = {
         'status': 'success',
         'message': '推文创建成功',
         'content': tweet.content,
         'name': tweet.author.name,
         'nickname': tweet.author.nickname,
         'author_avatar': tweet.author.get_avatar(size=48),
         'author_url': tweet.author.url,
         'author_name': tweet.author.name,
         'author_nickname': tweet.author.nickname,
         'tweet_url': tweet.url,
         'created': tweet.created,
         'id': tweet.id,
         'images': images,
     }
     return self.send_result(result, '/timeline')
Exemple #9
0
 def get(self):
     page = self.get_int('page', 1)
     from_id = self.get_int('from_id', 0)
     tweets = Tweet.get_timeline(page=page, from_id=from_id)
     return self.send_success_json(object_list=[tweet.to_dict() for tweet in tweets])
Exemple #10
0
 def get(self, tweet_id):
     tweet_id = int(tweet_id)
     tweet = Tweet.get(id=tweet_id)
     if not tweet:
         raise tornado.web.HTTPError(404)
     return self.render("tweet/index.html", tweet=tweet)
Exemple #11
0
 def get(self, tweet_id):
     tweet_id = int(tweet_id)
     tweet = Tweet.get(id=tweet_id)
     if not tweet:
         raise tornado.web.HTTPError(404)
     return self.render("tweet/index.html", tweet=tweet)
Exemple #12
0
 def get(self):
     page = self.get_int('page', 1)
     from_id = self.get_int('from_id', 0)
     tweets = Tweet.get_timeline(page=page, from_id=from_id)
     return self.send_success_json(
         object_list=[tweet.to_dict() for tweet in tweets])