NFT Sales Bot - ТЗ
Моніторинг продаж NFT на маркетплейсі GetGems і відправка сповіщень у Telegram.
Принцип роботи
Polling-підхід: Періодичний опит 5 комісійних адрес GetGems через TonAPI
Фільтрація: Відстеження тільки вказаних колекцій з collections.json
Сповіщення: Відправка в Telegram чат з деталями продажу (назва, ціна, посилання)
Основні компоненти
app.py - основний бот з polling-логікою
admin/handlers.py - адмін-команди для управління колекціями
admin/keyboards.py - inline-клавіатури
utils/converter.py - конвертація адрес (raw ↔️ friendly)
collections.json - список відстежуваних колекцій
processed_events.json - кеш оброблених подій
Технології
Python 3.11+
aiogram 3.x (Telegram Bot API)
TonAPI REST API
systemd для автозапуску
Ключові можливості
Моніторинг
Опит 5 GetGems адрес кожні
Подвійний захист від дублікатів: timestamp + event_id cache
Підтримка batch-покупок (кілька NFT в одній транзакції)
Graceful shutdown з збереженням стану
Встановлення Рейт ліміту(1.1 сек 1 запит), щоб не отримати еррор від ТонАпі.
Адмін-панель (Telegram)
Перегляд відстежуваних колекцій
Додавання/видалення колекцій
Сповіщення
Формат повідомлення:
💎 NEW SALE 💎
Collection: [назва]
NFT: [ім'я NFT]
Price: [ціна] TON
⏰ [дата час]
🔗 GetGems | Transaction
Конвертація адрес
Raw формат: 0:hex (для TonAPI)
Friendly формат: EQ... / UQ... (для користувачів)