async def get(self, user): #r = await aioredis.create_connection( # f"redis://{os.environ.get('REDIS_HOST', 'localhost')}", # loop=IOLoop.current().asyncio_loop, # encoding='utf-8' #) local = self.get_argument('media_ids', False) max_id = self.get_argument('max_id', None) since_id = self.get_argument('since_id', None) limit = self.get_argument('limit', 20) statuses = [] errors = 0 for post in TimelineManager(user).query(since_id=since_id, max_id=max_id, local=True, limit=limit): status = Status.get_or_none(id=int(post)) if status: json_data = status.to_json() count = await self.application.objects.count( Like.select().join(UserProfile).switch(Like).join( Status).switch(Like).where(Like.user.id == user.id, Like.status.id == status)) if count: json_data["favourited"] = True statuses.append(json_data) self.write(json.dumps(statuses, default=str))
def on_post(self, req, resp, id): status = Status.get_or_none(id=id) if status: user = req.context['user'] UserManager(user).dislike(status) resp.body = json.dumps(status, default=str) resp.status = falcon.HTTP_200 else: resp.status = falcon.HTTP_404
def on_delete(self, req, resp, id): status = Status.get_or_none(id=id) if status != None: if req.context['user'].id == status.user.id: remove_status(status) resp.status = falcon.HTTP_200 else: resp.status = falcon.HTTP_401 else: resp.status = falcon.HTTP_500
def __init__(self, id): """ id: int - Id of the status representing """ self.status = Status.get_or_none(Status.id == id) self.LIVE_UPDATES = 'timeline:{}' if not self.status: raise ValueError(f'Could not find status with id {id}') self.id = id
def on_get(self, req, resp, id): #photo = self.model.get_or_none(identifier=pid) photo = Status.get_or_none(id=id) if photo != None: result = photo.json() resp.status = falcon.HTTP_200 else: result = json.dumps({"Error": 'Not found'}) resp.status = falcon.HTTP_404 resp.body = result
def on_get(self, req, resp, pid): #photo = self.model.get_or_none(identifier=pid) photo = Status.get_or_none(identifier=pid) if photo != None: result = photo.json() else: result = json.dumps({"Error": 'Not found'}) resp.body = result resp.set_header('Response by:', 'zinat') resp.status = falcon.HTTP_200
def on_post(self, req, resp, album, user): photo = Status.get_or_none(Status.id == req.get_param('photo')) album = Album.get_or_none(Album.id == album) print(album, photo) if album and photo: RelationAlbumStatus.create(album=album, photo=photo) resp.body = json.dumps({"Result": "Status successfully modified"}) resp.status = falcon.HTTP_200 else: resp.body = json.dumps({"Error": "Error creating relation"}) resp.status = falcon.HTTP_500
def on_post(self, req, resp): if req.get_param('media_ids'): user = req.context['user'] status = Status( caption=req.get_param('status') or '', visibility=bool(req.get_param('visibility')), #False if None user=user, sensitive=bool(req.get_param('sensitive')), remote=False, story=bool(req.get_param('is_story')) ) if status.sensitive: status.spoliet_text=req.get_param('spoiler_text') status.save() if req.get_param('media_ids') != None: for image in req.get_param('media_ids').split(','): m = Media.get_or_none(media_name=image) m.status = status m.save() #Increment the number of posts uploaded UserProfile.update({UserProfile.statuses_count: UserProfile.statuses_count + 1}).where(UserProfile.id == user.id).execute() spread_status(status) resp.status = falcon.HTTP_200 resp.body = json.dumps(status.to_json(),default=str) elif req.get_param('in_reply_to_id'): replying_to = Status.get_or_none(id=req.get_param('in_reply_to_id')) if replying_to: status = Status( caption = req.get_param('status'), user = user, remote = False, story = False, in_reply_to = replying_to, sensitive = replying_to.sensitive, spoiler_text = req.get_param('spoiler_text') or replying_to.spoiler_text ) else: resp.status = falcon.HTTP_500 resp.body = json.dumps({"Error": "Replying to bad ID"}) else: resp.status = falcon.HTTP_500 resp.body = json.dumps({"Error": "No photo attached"})