Skip to main content

Async Python SDK for the official TGStat API.

Project description

Tgstat-sdk

Telegram PyPI Python Downloads

Современный, удобный и асинхронный Python SDK для официального TGStat API.

Официальная документация TGStat API: https://api.tgstat.ru/docs/

Что даёт библиотека

  • удобный асинхронный клиент для работы с TGStat API
  • единый вход через TGStatClient
  • понятное разделение методов по ресурсам: channels, posts, stories, words, callback, usage, database
  • типизированные модели ответов от TGStat API
  • типизированные исключения для ошибок API и transport-ошибок
  • готовые примеры для основных сценариев работы

Установка

pip install tgstat-sdk

Быстрый старт

import asyncio

from tgstat import TGStatClient
from tgstat.exceptions import TGStatError

TOKEN = "paste-your-token-here"


async def main() -> None:
    try:
        async with TGStatClient(token=TOKEN) as client:
            # Получаем информацию о канале
            channel = await client.channels.get(channel_id="@durov")
            print("Канал:", channel.title)

            # Получаем последние публикации канала
            posts = await client.channels.posts(channel_id="@durov", limit=3)
            print("Последние публикации:", len(posts.items))

            for post in posts.items:
                print("-", post.id, post.link)

            # Получаем статистику канала
            stat = await client.channels.stat(channel_id="@durov")
            print("Подписчики:", stat.participants_count)
            print("Средний охват:", stat.avg_post_reach)

            # Получаем справочник языков
            languages = await client.database.languages()
            print("Первый язык из справочника:", languages[0].name)

            # Получаем информацию о доступных квотах
            usage = await client.usage.stat()
            if usage:
                print("Тариф:", usage[0].title)

    except TGStatError as exc:
        print(f"Ошибка TGStat SDK: {exc.__class__.__name__}: {exc}")


asyncio.run(main())

Что важно знать

  • Некоторые методы зависят от вашего тарифа TGStat. Например, posts.search, channels.search и методы из words.* требуют активного доступа к Search API.
  • Методы из callback.* требуют заранее настроенный и подтверждённый callback URL на стороне TGStat.
  • Часть примеров получает реальные post_id и story_id через предварительные вызовы channels.posts(...) и channels.stories(...), чтобы их можно было запускать без ручного поиска идентификаторов.

Как обрабатывать ошибки

from tgstat import TGStatClient
from tgstat.exceptions import InvalidTokenError, QuotaRequestsReachedError, TimeoutError

TOKEN = "paste-your-token-here"


async with TGStatClient(token=TOKEN) as client:
    try:
        await client.channels.get(channel_id="@durov")
    except InvalidTokenError:
        print("Неверный токен")
    except QuotaRequestsReachedError:
        print("Исчерпана квота запросов")
    except TimeoutError:
        print("Запрос превысил timeout")

Retry

  • Повторные попытки применяются только к transport-ошибкам.
  • Повторяются timeout, сетевые ошибки, SSL transport failures и временные ответы 502/503/504.
  • API-ошибки вроде неверного токена, превышения квот или логических ошибок запроса не ретраятся.
  • backoff_factor — это коэффициент задержки между повторными попытками. Чем он больше, тем быстрее растёт пауза между retry-запросами.
from tgstat import RetryConfig, TGStatClient

client = TGStatClient(
    token="paste-your-token-here",
    retry=RetryConfig(
        max_attempts=4,
        backoff_factor=0.25,
        max_backoff=2.0,
    ),
)

Примеры

Полная проверка SDK:

Каналы:

Посты:

Истории:

Слова:

База данных:

Использование квот:

Callback:

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

tgstat_sdk-0.1.3.tar.gz (21.0 kB view details)

Uploaded Source

Built Distribution

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

tgstat_sdk-0.1.3-py3-none-any.whl (30.0 kB view details)

Uploaded Python 3

File details

Details for the file tgstat_sdk-0.1.3.tar.gz.

File metadata

  • Download URL: tgstat_sdk-0.1.3.tar.gz
  • Upload date:
  • Size: 21.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tgstat_sdk-0.1.3.tar.gz
Algorithm Hash digest
SHA256 3dd721339e35d3bd960bbf03a116827d263230b18abfb435e7cdf13d225e33ed
MD5 104313038d6e78459a9c8c9a5365d711
BLAKE2b-256 1cc6bfeea8acf4c5ade7c7e4e985980588b2635e7ea8144900247be475508ab7

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgstat_sdk-0.1.3.tar.gz:

Publisher: publish.yml on Dementrosha/tgstat-sdk

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

File details

Details for the file tgstat_sdk-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: tgstat_sdk-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 30.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tgstat_sdk-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 342767857162f57ac1fd40c9562914dbef4a1c2c55c6d866de5772abbb3303c2
MD5 23b64d1baaa91a28d60a0dbbad76ad59
BLAKE2b-256 e595c9379503e069353c4f99b0e4e3e595bf29b8ae3da9ba87a7baf004ca0c21

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgstat_sdk-0.1.3-py3-none-any.whl:

Publisher: publish.yml on Dementrosha/tgstat-sdk

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