feat: add models and partially custom error messages

This commit is contained in:
firedotguy
2026-01-31 12:10:20 +03:00
parent c7e3812ee8
commit a388426d8d
15 changed files with 352 additions and 71 deletions

View File

@@ -1,10 +1,12 @@
from requests import Response
from itd.request import auth_fetch
def refresh_token(cookies: str):
return auth_fetch(cookies, 'post', 'v1/auth/refresh')['accessToken']
def refresh_token(cookies: str) -> Response:
return auth_fetch(cookies, 'post', 'v1/auth/refresh')
def change_password(cookies: str, token: str, old: str, new: str):
def change_password(cookies: str, token: str, old: str, new: str) -> Response:
return auth_fetch(cookies, 'post', 'v1/auth/change-password', {'newPassword': new, 'oldPassword': old}, token)
def logout(cookies: str):
def logout(cookies: str) -> Response:
return auth_fetch(cookies, 'post', 'v1/auth/logout')

View File

@@ -7,7 +7,7 @@ def add_comment(token: str, post_id: str, content: str, reply_comment_id: str |
return fetch(token, 'post', f'posts/{post_id}/comments', data)
def get_comments(token: str, post_id: str, limit: int = 20, cursor: int = 0, sort: str = 'popular'):
return fetch(token, 'get', f'posts/{post_id}/comments', {'limit': limit, 'sort': sort, 'cursor': cursor})['data']
return fetch(token, 'get', f'posts/{post_id}/comments', {'limit': limit, 'sort': sort, 'cursor': cursor})
def like_comment(token: str, comment_id: str):
return fetch(token, 'post', f'comments/{comment_id}/like')

View File

@@ -4,4 +4,4 @@ from itd.request import fetch
def upload_file(token: str, name: str, data: BufferedReader):
return fetch(token, 'post', 'files/upload', files={'file': (name, data)})
return fetch(token, 'post', 'files/upload', files={'file': (name, data)})

View File

@@ -1,7 +1,7 @@
from itd.request import fetch
def get_hastags(token: str, limit: int = 10):
return fetch(token, 'get', 'hashtags/trending', {'limit': limit})['data']
return fetch(token, 'get', 'hashtags/trending', {'limit': limit})
def get_posts_by_hastag(token: str, hashtag: str, limit: int = 20, cursor: int = 0):
return fetch(token, 'get', f'hashtags/{hashtag}/posts', {'limit': limit, 'cursor': cursor})

View File

@@ -18,7 +18,7 @@ def get_posts(token: str, username: str | None = None, limit: int = 20, cursor:
if tab:
data['tab'] = tab
return fetch(token, 'get', 'posts', data)['data']
return fetch(token, 'get', 'posts', data)
def get_post(token: str, id: str):
return fetch(token, 'get', f'posts/{id}')
@@ -42,4 +42,6 @@ def view_post(token: str, id: str):
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})
return fetch(token, 'get', f'posts/user/{username}/liked', {'limit': limit, 'cursor': cursor})
# todo post restore

View File

@@ -1,10 +1,12 @@
from uuid import UUID
from itd.request import fetch
def get_user(token: str, username: str):
return fetch(token, 'get', f'users/{username}')
def update_profile(token: str, bio: str | None = None, display_name: str | None = None, username: str | None = None, banner_id: str | None = None):
def update_profile(token: str, bio: str | None = None, display_name: str | None = None, username: str | None = None, banner_id: UUID | None = None):
data = {}
if bio:
data['bio'] = bio
@@ -13,14 +15,14 @@ def update_profile(token: str, bio: str | None = None, display_name: str | None
if username:
data['username'] = username
if banner_id:
data['bannerId'] = banner_id
data['bannerId'] = str(banner_id)
return fetch(token, 'put', 'users/me', data)
def update_privacy(token: str, wall_closed: bool = False, private: bool = False):
data = {}
if wall_closed:
if wall_closed is not None:
data['wallClosed'] = wall_closed
if private:
if private is not None:
data['isPrivate'] = private
return fetch(token, 'put', 'users/me/privacy', data)