GiftGram Bot - Автоматизированная покупка подарков в Telegram

Бот, который следит за Telegram Gift Store и покупает подарки по заданным правилам. Проект про асинхронность, идемпотентность покупок и аккуратное управление Stars: чтобы не было двойных списаний и гонок при параллельной покупке.

Основные достижения

Интеграция с Telegram API

Клиент на Pyrogram: сессии, прокси и стабильная работа с лимитами API.

Асинхронная архитектура

Асинхронные воркеры и очереди для параллельной обработки покупок.

Умная приоритизация

Приоритизация по цене, дедлайну и остаткам, чтобы тратить Stars осознанно.

Управление кошельком

Баланс Stars под контролем: блокировки, защита от повторных списаний, синхронизация с API.

Персистентное хранение

SQLite для истории и состояния (покупки, баланс, результаты).

Режим тестирования

DRY-RUN режим для безопасной отладки без реальных трат.

Технологии

stack

Language

Python 3.11+

Telegram

Pyrogram, TgCrypto

Database

SQLite, aiosqlite

Async

asyncio, aiohttp

Testing

pytest

Deployment

Docker, Docker Compose

Ключевые функции

Автоматический мониторинг Gift Store

Автоматическая покупка подарков

Умная приоритизация по цене и срокам

Управление балансом Stars

История покупок

Режим тестирования

Поддержка множественных аккаунтов

Поддержка прокси

Архитектура проекта

Асинхронный пайплайн: мониторинг витрины, приоритизация и пул воркеров покупки. Ключевое требование - идемпотентность и контроль Stars, чтобы не словить дубликаты и гонки.

  1. 1

    Цикл мониторинга

    Периодически читает Gift Store, нормализует данные и создает кандидатов на покупку.

  2. 2

    Приоритизатор

    Сортирует по правилам: цена, дедлайны, остаток, лимиты и текущий баланс.

  3. 3

    Purchase workers

    Параллельные воркеры с retry/backoff, блокировками и защитой от повторных покупок.

  4. 4

    Кошелек (Stars)

    Единая точка учета: резервы, лимиты, синхронизация с API и защита от перерасхода.

  5. 5

    Хранилище состояния

    История попыток и покупок, результаты, баланс и конфиги; основа для аудита и восстановления.

Особенности реализации

Безопасность

  • DRY-RUN: тест без списаний
  • Защита от гонок при покупке
  • Валидация конфигурации на старте
  • Предсказуемое восстановление после ошибок

Производительность

  • Асинхронная обработка и очереди
  • Параллельные воркеры покупок
  • Приоритизация, чтобы не тратить лишнее
  • Оптимизированные вызовы Telegram API

Проект про надежную автоматизацию покупок в Telegram: асинхронность, аккуратная работа с балансом Stars и защита от гонок/повторов.