refactor: move api calls to routes folder; feat: add update_banner user-friendly method; fix: change file data type
This commit is contained in:
@@ -25,6 +25,7 @@ print(c.get_me())
|
|||||||
|
|
||||||
---
|
---
|
||||||
### Скрипт на обновление имени
|
### Скрипт на обновление имени
|
||||||
|
Этот код сейчас работает на @itd_sdk (обновляется имя и пост)
|
||||||
```python
|
```python
|
||||||
from itd import ITDClient
|
from itd import ITDClient
|
||||||
from time import sleep
|
from time import sleep
|
||||||
@@ -36,7 +37,8 @@ c = ITDClient(None, '...')
|
|||||||
|
|
||||||
while True:
|
while True:
|
||||||
c.update_profile(display_name=f'PYTHON ITD SDK | Рандом: {randint(1, 100)} | {datetime.now().strftime("%m.%d %H:%M:%S")}')
|
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)
|
sleep(1)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,17 @@
|
|||||||
|
from _io import BufferedReader
|
||||||
|
from typing import cast
|
||||||
|
|
||||||
from requests.exceptions import HTTPError
|
from requests.exceptions import HTTPError
|
||||||
|
|
||||||
from itd.users import get_user, update_profile, follow, unfollow, get_followers, get_following
|
from itd.routes.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.routes.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.routes.comments import get_comments, add_comment, delete_comment, like_comment, unlike_comment
|
||||||
from itd.hashtags import get_hastags, get_posts_by_hastag
|
from itd.routes.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.routes.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.routes.posts import create_post, get_posts, get_post, edit_post, delete_post, pin_post, repost, view_post
|
||||||
from itd.reports import report
|
from itd.routes.reports import report
|
||||||
from itd.search import search
|
from itd.routes.search import search
|
||||||
from itd.files import upload_file
|
from itd.routes.files import upload_file
|
||||||
from itd.request import refresh_auth
|
from itd.request import refresh_auth
|
||||||
|
|
||||||
|
|
||||||
@@ -195,5 +198,9 @@ class Client:
|
|||||||
|
|
||||||
|
|
||||||
@refresh_on_error
|
@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)
|
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)
|
||||||
@@ -1,9 +1,11 @@
|
|||||||
|
from _io import BufferedReader
|
||||||
|
|
||||||
from requests import Session
|
from requests import Session
|
||||||
|
|
||||||
s = 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}'
|
base = f'https://xn--d1ah4a.com/api/{url}'
|
||||||
headers = {
|
headers = {
|
||||||
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
|
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
|
from _io import BufferedReader
|
||||||
|
|
||||||
from itd.request import fetch
|
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)})
|
return fetch(token, 'post', 'files/upload', files={'file': (name, data)})
|
||||||
BIN
nowkie.gif
Normal file
BIN
nowkie.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 13 MiB |
Reference in New Issue
Block a user