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.4.1.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.4.1-py3-none-any.whl (58.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aioitd-0.4.1.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.4.1.tar.gz
Algorithm Hash digest
SHA256 4e7bfeae499d2a85fc18bbf1f3b36c7b52ed22d8184c6e4f340772f9d5ab1eaf
MD5 506521e4d4505d4e9dd13406beb73c86
BLAKE2b-256 cd28bbd0c04544ff7a21bd32602d2cdc06de107eae25cc3b000d3dd3b7267072

See more details on using hashes here.

Provenance

The following attestation bundles were made for aioitd-0.4.1.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.4.1-py3-none-any.whl.

File metadata

  • Download URL: aioitd-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 58.4 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.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e75e1765e3832115409c32677b09ef88ff0e3e9b456a5d70d7453a4022c6e18b
MD5 0d9ca3b5441ecb9880ae3ac6e3b8c2f4
BLAKE2b-256 fa4bc16c3dd53252b0bafcd861b89d7d88b608c0c249ede08c2abcee80f9173b

See more details on using hashes here.

Provenance

The following attestation bundles were made for aioitd-0.4.1-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