def timeline(self, request):
session = await get_session(request)
user_id = session.get('user_id')
if user_id is None:
router = request.app.router
location = router['public_timeline'].url()
raise web.HTTPFound(location=location)
user = await self.mongo.user.find_one({'_id': ObjectId(user_id)})
query = {'who_id': ObjectId(user_id)}
filter = {'whom_id': 1}
followed = await self.mongo.follower.find_one(query, filter)
if followed is None:
followed = {'whom_id': []}
query = {'$or': [{'author_id': ObjectId(user_id)},
{'author_id': {'$in': followed['whom_id']}}]}
messages = await (self.mongo.message
.find(query)
.sort('pub_date', -1)
.to_list(30))
endpoint = request.match_info.route.name
return {"messages": messages,
"user": user,
"endpoint": endpoint}
评论列表
文章目录