from uuid import UUID from itd.request import fetch def create_post(token: str, content: str, wall_recipient_id: UUID | None = None, attach_ids: list[UUID] = []): data: dict = {'content': content} if wall_recipient_id: data['wallRecipientId'] = str(wall_recipient_id) if attach_ids: data['attachmentIds'] = list(map(str, attach_ids)) return fetch(token, 'post', 'posts', data) def get_posts(token: str, username: str | None = None, limit: int = 20, cursor: int = 0, sort: str = '', tab: str = ''): data: dict = {'limit': limit, 'cursor': cursor} if username: data['username'] = username if sort: data['sort'] = sort if tab: data['tab'] = tab return fetch(token, 'get', 'posts', data) def get_post(token: str, id: UUID): return fetch(token, 'get', f'posts/{id}') def edit_post(token: str, id: UUID, content: str): return fetch(token, 'put', f'posts/{id}', {'content': content}) def delete_post(token: str, id: UUID): return fetch(token, 'delete', f'posts/{id}') def pin_post(token: str, id: UUID): return fetch(token, 'post', f'posts/{id}/pin') def repost(token: str, id: UUID, content: str | None = None): data = {} if content: data['content'] = content return fetch(token, 'post', f'posts/{id}/repost', data) def view_post(token: str, id: UUID): return fetch(token, 'post', f'posts/{id}/view') def get_liked_posts(token: str, username: str, limit: int = 20, cursor: int = 0): return fetch(token, 'get', f'posts/user/{username}/liked', {'limit': limit, 'cursor': cursor}) # todo post restore # todo post like