Клиент ITD для python
pip install itd-sdkfrom itd import ITDClient
c = ITDClient('TOKEN', 'refresh_token=...; __ddg1_=...; __ddgid_=...; is_auth=1; __ddg2_=...; ddg_last_challenge=...; __ddg8_=...; __ddg10_=...; __ddg9_=...')
# можно указать только токен, тогда после просрочки перестанет работать, либо только куки чтобы токен сразу подтянулся, либо оба сразу
print(c.get_me())Для получения access_token требуются cookies с refresh_token. Как их получить:
- Откройте итд.com в браузере
- Откройте DevTools (F12)
- Перейдите на вкладку Network
- Обновите страницу
- Найдите запрос к
/auth/refresh - Скопируйте значение Cookie из Request Headers
Пример:
refresh_token=123123A67BCdEfGG; is_auth=1
В cookies также могут присутствовать значения типа__ddgX__(DDoS-Guard cookies) или_ym_XXXX(X- любое число или буква). Они необязательные и их наличие не влияет на результат
Этот код сейчас работает на @itd_sdk (обновляется имя и пост)
from itd import ITDClient
from time import sleep
from random import randint
from datetime import datetime
from datetime import timezone
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 (обновляется каждую секунду)')
sleep(1)from itd import ITDClient
c = ITDClient(None, 'Ваши cookies')
c.update_banner('имя-файла.png')
print('баннер обновлен')Существуют встроенные эндпоинты для комментариев, хэштэгов, уведомлений, постов, репортов, поиска, пользователей, итд.
c.get_user('ITD_API') # получение данных пользователя
c.get_me() # получение своих данных (me)
c.update_profile(display_name='22:26') # изменение данных профиля, например имя, био итд
c.create_post('тест1') # создание постов
# итдС обновления 1.3.0 добавлена функция "спанов". Для парсинга пока поддерживается только html, но в будущем будет добавлен markdown.
from itd import ITDClient
from itd.utils import parse_html
с = ITDClient(cookies='refresh_token=123')
print(с.create_post(*parse_html('значит, я это щас отправил со своего клиента, <b>воот</b>. И еще тут спаны написаны через html, по типу < i > <i>11</i>')))Поддерживаемые теги:
<b>: жирный<i>: курсивный<s>: зачеркнутый<u>: подчеркнутый<code>: код<spoiler>: спойлер<a href="https://google.com">: ссылка<q>: цитата
from itd.request import fetch
fetch(c.token, 'метод', 'эндпоинт', {'данные': 'данные'})Из методов поддерживается get, post, put итд, которые есть в requests
К названию эндпоинта добавляется домен итд и api, то есть в этом примере отпарвится https://xn--d1ah4a.com/api/эндпоинт.
Note
xn--d1ah4a.com - punycode от "итд.com"
Лицезия: MIT
Идея (и часть эндпоинтов): https://github.com/FriceKa/ITD-SDK-js
- По сути этот проект является реворком, просто на другом языке
