Skip to main content

Асинхронный клиент для итд.com

Project description

aioitd

Асинхронный Python клиент для итд.com

документация: https://EpsilonRationes.github.io/aioitd/

Установка

pip install aioitd

Без авторизации

Апи хештегов доступно без авторизации.

from aioitd import AsyncITDClient
import asyncio


async def main():
    async with AsyncITDClient() as client:
        hashtags = await client.search_hashtags('a')
        for hashtag in hashtags:
            print(f"#{hashtag.name}: {hashtag.posts_count}")

asyncio.run(main())

Авторизация

Для остальных функций необходим refresh_token

Чтобы получить refresh_token:

  1. Войди в аккаунт на итд.com
  2. Откройть devtools
  3. Среди табов выбрать network (сеть)
  4. Перезагрузить страницу
  5. Найти запрос refresh
  6. В куки запроса скопировать refresh_token

Или:

  1. Войти в аккаунт на итд.com
  2. Откройть devtools
  3. Среди табов выбрать application (приложение)
  4. Перезагрузить страницу
  5. Выбрать куки и найти куку refersh_token

После передайте refresh_token в AsyncITDClient:

from aioitd import AsyncITDClient
import asyncio

refresh_token = "ca1291a4a990b985a57b880ed3fb863eef80ac3990acc68e8f106a783e3af402"

async def main():
    async with AsyncITDClient(refresh_token) as client:
        user = await client.get_user("nowkie")
        print(
            f"id: {user.id}\n"
            f"username: {user.username}\n"
            f"follower_count: {user.followers_count}"
        )

asyncio.run(main())

Создание поста

from aioitd import AsyncITDClient, File, Post
import asyncio
from uuid import UUID

refresh_token = "ВАШ ТОКЕН"

async def main():
    async with AsyncITDClient(refresh_token) as client:
        images_path = ["sun.png", "снег.gif", "python.jpg"]
        files_ids: list[UUID] = []
        for path in images_path:
            with open(path, 'rb') as f:
                file: File = await client.upload_file(f)
                files_ids.append(file.id)
        post: Post = await client.create_post("ТЕКСТ ПОСТА", attachment_ids=files_ids)


asyncio.run(main())

Поменять баннер

async def main():
    async with AsyncITDClient(refresh_token) as client:
        with open(r"file.gif", 'rb') as file:
            image = await client.upload_file(file)
        await client.update_profile(banner_id=image.id)

Уведомления по SSE

from aioitd import NotificationEvent, ConnectedEvent

async def main():
    async with AsyncITDClient(refresh_token) as client:
        async with client.connect_notifications() as events:
            async for event in events:
                if isinstance(event, ConnectedEvent):
                    print("Прослушка начата")
                elif isinstance(event, NotificationEvent):
                    print(event.actor)

asyncio.run(main())

RateLimitError

RateLimitError ограничение по количеству запросов. retray_after — через сколько можно повторить запрос.

while True:
    try:
        await client.post("content")
    except RateLimitError as ex:
        await asyncio.sleep(ex.retry_after)

Автор в итд @FIRST_TM

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

aioitd-0.3.4.tar.gz (63.5 MB view details)

Uploaded Source

Built Distribution

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

aioitd-0.3.4-py3-none-any.whl (45.5 kB view details)

Uploaded Python 3

File details

Details for the file aioitd-0.3.4.tar.gz.

File metadata

  • Download URL: aioitd-0.3.4.tar.gz
  • Upload date:
  • Size: 63.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aioitd-0.3.4.tar.gz
Algorithm Hash digest
SHA256 cf316ed2f39c39a39f741187f71ccf25d76c82a50119217b9ba6657a345a1144
MD5 efd075a0a2a35cfb6f1a033bd37a60bc
BLAKE2b-256 7d890d7447d3cd77b310707ed72771decb9bf18e03dbf31dad97d268965a853b

See more details on using hashes here.

Provenance

The following attestation bundles were made for aioitd-0.3.4.tar.gz:

Publisher: publish.yml on EpsilonRationes/aioitd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aioitd-0.3.4-py3-none-any.whl.

File metadata

  • Download URL: aioitd-0.3.4-py3-none-any.whl
  • Upload date:
  • Size: 45.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aioitd-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 755f94cb180d21b1c729d5774233fcab3846f50c8d206ec76d96637692a50103
MD5 66ecaca1f9f91770915193e57bae7196
BLAKE2b-256 53afdfd3f35b7b2197557b23473c6bee94561931d0b065ef458da76718e10a4e

See more details on using hashes here.

Provenance

The following attestation bundles were made for aioitd-0.3.4-py3-none-any.whl:

Publisher: publish.yml on EpsilonRationes/aioitd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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