Skip to main content

ITD client for python

Project description

itd-sdk

Клиент ITD для python
Документация (beta): https://firedotguy.github.io/itd-sdk

Установка

pip install itd-sdk

Пример

from itd import ITDClient

c = ITDClient('TOKEN', 'refresh_token=...; __ddg1_=...; __ddgid_=...; is_auth=1; __ddg2_=...; ddg_last_challenge=...; __ddg8_=...; __ddg10_=...; __ddg9_=...')
# можно указать только токен, тогда после просрочки перестанет работать, либо только куки чтобы токен сразу подтянулся, либо оба сразу

print(c.get_me())

Получение cookies

Для получения access_token требуются cookies с refresh_token. Как их получить:

  1. Откройте итд.com в браузере
  2. Откройте DevTools (F12)
  3. Перейдите на вкладку Network
  4. Обновите страницу
  5. Найдите запрос к /auth/refresh
  6. Скопируйте значение Cookie из Request Headers

Пример: refresh_token=123123A67BCdEfGG; is_auth=1
В cookies также могут присутствовать значения типа __ddgX__ (DDoS-Guard cookies) или _ym_XXXX (X - любое число или буква). Они необязательные и их наличие не влияет на результат

cookie


Скрипт на обновление имени

Этот код сейчас работает на @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"

itd-sdk 2.0

Сейчас ведется разработка 2 версии sdk (ветка "v2"). Пример кода на новой версии:

# первым аргументом сразу реверш токен, без "refresh_token="
c = ITDClient('676767676767')
c.set_action_delay(10) # установить задержку между действиями  # по умолчанию рекоммендованная задержка

# автопагинация постов
for post in c.stream_posts(delay=1):
    post.like() # классы с методами

user = User('03442f74-a407-40ec-9723-f9b5bb2cca2e') # возможность писать UUID как str и пользучать данные через класс
user.follow()

for post in user.stream_posts(tab='like'): # возможность писать enum как str
    post.add_comment('ахахаха')

    post.comments # список загруженных сейчас
    post.comments.load(10) # догрузить 10
    post.comments.get(15) # догрузить 15 + вернуть все
    post.comments.load_all() # догрузить все
    post.comments.refresh() # перезагрузить все
    post.comments.refresh(10) # удалить все и загрузить заново 10 последних

    post.report('abuse')

Прочее

Лицезия: MIT
Идея (и часть эндпоинтов): https://github.com/FriceKa/ITD-SDK-js

  • По сути этот проект является реворком, просто на другом языке

Автор: itd_sdk (в итд) @desicars (в тг)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

itd_sdk-2.0.0b2.tar.gz (31.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

itd_sdk-2.0.0b2-py3-none-any.whl (44.5 kB view details)

Uploaded Python 3

File details

Details for the file itd_sdk-2.0.0b2.tar.gz.

File metadata

  • Download URL: itd_sdk-2.0.0b2.tar.gz
  • Upload date:
  • Size: 31.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for itd_sdk-2.0.0b2.tar.gz
Algorithm Hash digest
SHA256 3d5d8d1e2bd0d0cf06c02c4db6eaa50d1690f205a089720aab1cf8ca7555105b
MD5 d2d07340a7b02ee7edb158da45efc587
BLAKE2b-256 a24ba83fccdb29daf476521447d0250022075638991b1200626e5f234d8f0b37

See more details on using hashes here.

File details

Details for the file itd_sdk-2.0.0b2-py3-none-any.whl.

File metadata

  • Download URL: itd_sdk-2.0.0b2-py3-none-any.whl
  • Upload date:
  • Size: 44.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for itd_sdk-2.0.0b2-py3-none-any.whl
Algorithm Hash digest
SHA256 5f4ea289d5b4d3fe08209680932caa93cf8ca0d914ec5c9a4ab695dbe7934d02
MD5 b4efce8d00b0ba4f4ee0d3cca673083c
BLAKE2b-256 4790c5d0109c179567dc5b6922308464ba8a1c127500bdd3497cfd01883d266c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page