refactor: move api calls to routes folder; feat: add update_banner user-friendly method; fix: change file data type

This commit is contained in:
firedotguy
2026-01-30 15:16:29 +03:00
parent d27db1d905
commit 49427a5535
13 changed files with 27 additions and 14 deletions

View File

@@ -25,6 +25,7 @@ print(c.get_me())
---
### Скрипт на обновление имени
Этот код сейчас работает на @itd_sdk (обновляется имя и пост)
```python
from itd import ITDClient
from time import sleep
@@ -36,7 +37,8 @@ c = ITDClient(None, '...')
while True:
c.update_profile(display_name=f'PYTHON ITD SDK | Рандом: {randint(1, 100)} | {datetime.now().strftime("%m.%d %H:%M:%S")}')
c.edit_post('82ea8a4f-a49e-485e-b0dc-94d7da9df990', f'рил ща {datetime.now(timezone.utc).isoformat(" ")} по UTC (обновляется каждую секунду)')
# редактирование поста
# c.edit_post('82ea8a4f-a49e-485e-b0dc-94d7da9df990', f'рил ща {datetime.now(timezone.utc).isoformat(" ")} по UTC (обновляется каждую секунду)')
sleep(1)
```

View File

@@ -1,14 +1,17 @@
from _io import BufferedReader
from typing import cast
from requests.exceptions import HTTPError
from itd.users import get_user, update_profile, follow, unfollow, get_followers, get_following
from itd.etc import get_top_clans, get_who_to_follow, get_platform_status
from itd.comments import get_comments, add_comment, delete_comment, like_comment, unlike_comment
from itd.hashtags import get_hastags, get_posts_by_hastag
from itd.notifications import get_notifications, mark_as_read, mark_all_as_read, get_unread_notifications_count
from itd.posts import create_post, get_posts, get_post, edit_post, delete_post, pin_post, repost, view_post
from itd.reports import report
from itd.search import search
from itd.files import upload_file
from itd.routes.users import get_user, update_profile, follow, unfollow, get_followers, get_following
from itd.routes.etc import get_top_clans, get_who_to_follow, get_platform_status
from itd.routes.comments import get_comments, add_comment, delete_comment, like_comment, unlike_comment
from itd.routes.hashtags import get_hastags, get_posts_by_hastag
from itd.routes.notifications import get_notifications, mark_as_read, mark_all_as_read, get_unread_notifications_count
from itd.routes.posts import create_post, get_posts, get_post, edit_post, delete_post, pin_post, repost, view_post
from itd.routes.reports import report
from itd.routes.search import search
from itd.routes.files import upload_file
from itd.request import refresh_auth
@@ -195,5 +198,9 @@ class Client:
@refresh_on_error
def upload_file(self, name: str, data: bytes):
def upload_file(self, name: str, data: BufferedReader):
return upload_file(self.token, name, data)
def update_banner(self, name: str):
id = self.upload_file(name, cast(BufferedReader, open(name, 'rb')))['id']
return self.update_profile(banner_id=id)

View File

@@ -1,9 +1,11 @@
from _io import BufferedReader
from requests import Session
s = Session()
def fetch(token: str, method: str, url: str, params: dict = {}, files: dict[str, tuple[str, bytes]] = {}):
def fetch(token: str, method: str, url: str, params: dict = {}, files: dict[str, tuple[str, BufferedReader]] = {}):
base = f'https://xn--d1ah4a.com/api/{url}'
headers = {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",

View File

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

BIN
nowkie.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 MiB