コード例 #1
0
ファイル: handler.py プロジェクト: TitorX/forum.portable
 def handle(self):
     topic_id = self.request.url_param.get('topic_id')
     if topic_id:
         con = MongoCon()
         con.db['topics'].update({'_id': con.id(topic_id)}, {'$inc': {'page_view': 1}})
         topic = con.db['topics'].find_one(
             {'_id': con.id(topic_id)}
         )
         topic['author'] = con.dereference(topic['author'], {'nickname': True, 'avatar_url': True})
         for reply in topic['reply']:
             reply['author'] = con.dereference(reply['author'], {'nickname': True, 'avatar_url': True})
         self.response.set_body(render(
             'forum/topic.html', {'request': self.request, 'topic': topic}
         ))
         con.close()
     else:
         self.response = Response404()
コード例 #2
0
ファイル: handler.py プロジェクト: TitorX/forum.portable
 def handle(self):
     if hasattr(self.request, 'authenticate'):
         topic_id = self.request.url_param.get('topic_id')
         content = self.request.POST.get('content')
         if topic_id and content:
             con = MongoCon()
             con.db['topics'].update(
                 {'_id': con.id(topic_id)},
                 {'$push': {'reply': {
                     'content': content,
                     'author': con.DBRef('users', self.request.user['_id']),
                     'datetime': datetime.datetime.now(),
                 }}}
             )
             con.db['topics'].update(
                 {'_id': con.id(topic_id)},
                 {'$inc': {'reply_count': 1}}
             )
             con.close()
             self.response.set_body(json.dumps({
                 'status': 'ok',
                 'nickname': self.request.user['nickname'],
                 'avatar_url': self.request.user['avatar_url']
             }))