Высокопроизводительный Telegram бот для виртуальной рыбалки с трейдингом криптовалют. Построен на полностью асинхронной архитектуре с поддержкой сотен одновременных пользователей.
- ⚡ Полностью асинхронная архитектура - asyncio, asyncpg, aiohttp
- 🚀 Высокая производительность - connection pooling, retry logic, rate limiting
- 🎯 87 уникальных рыб - absurd-style концепции с AI-генерацией изображений
- 💰 8 криптовалютных пар - ETH, BTC, SOL, ADA, MATIC, AVAX, LINK, DOT
- 💵 Виртуальный баланс - $10,000 стартовый баланс, $1,000 ставка на заброс
- 🏆 Система лидербордов - общий рейтинг, недельные и дневные топы
- 🎮 Прогрессивная система - уровни, опыт, разблокировка контента
- 🔒 Защита от спама - rate limiting (10 команд в минуту)
- 🎨 HTML форматирование - красивые сообщения с эмодзи и стилями
- Установка зависимостей:
pip install -r requirements.txt-
Создание Telegram бота:
- Найти @BotFather в Telegram
- Отправить
/newbot - Следовать инструкциям и получить token
- Редактировать
start_bot.shс вашим токеном
-
Запуск бота:
# Основной способ - асинхронный запуск
export TELEGRAM_BOT_TOKEN="your_token_here"
python3 main.py
# Или через скрипт
chmod +x start_async_bot.sh
./start_async_bot.sh/cast- Забросить удочку (стоит 1 BAIT токен)/hook- Подсечь рыбу и закрыть позицию/status- Посмотреть текущую позицию/pnl- Показать ваш баланс и P&L статистику/leaderboard- Топ-10 игроков по балансу/leaderboard week- Недельный лидерборд/help- Помощь и правила игры
Каждый игрок начинает с виртуальным балансом $10,000. Каждый заброс (/cast) это автоматическая ставка $1,000 на выбранную криптовалютную пару.
Результат = $1,000 × (Изменение цены %) × Leverage удочки
Баланс = $10,000 + Сумма всех P&L
- Заброс с Long удочкой (2x leverage)
- ETH растет на +5% → Прибыль: $1,000 × 5% × 2 = +$100
- ETH падает на -3% → Убыток: $1,000 × (-3%) × 2 = -$60
/leaderboard- общий топ-10 по балансу/leaderboard week- недельный рейтинг/leaderboard day- дневной рейтинг- Показывает позицию в рейтинге, винрейт, средний P&L
🎣 Getting ready to cast...
→ 💫 Whoosh! Line flies through the air!
→ 💦 *SPLASH!* Perfect landing!
→ 🌊 Bait sinks into the depths...
- Периодичность: 5 сек пауза, затем каждые 10 сек в течение 1 минуты
- Последовательность: Сообщения меняются по порядку
- Финал: "🔮 Now we wait... the fish will decide"
- Исправлено: баг с перепрыгиванием сообщений
🎣 {username} SETS THE HOOK!
→ ⚡ Reeling in... almost there!
→ 🌊 Something is coming up from the depths!
→ 🏆 FISHING COMPLETE!
- Leverage: Long удочки (+2x до +6x), Short удочки (-2x до -6x)
- Стартовые токены: 10 BAIT при первом использовании
- Цены: Реальные с CoinGecko API
- Рыбы: От Старый Сапог (убыток) до Золотой Дракон (огромная прибыль)
fishing/
├── main.py # Главная точка входа
├── src/
│ ├── bot/
│ │ ├── telegram_bot.py # Основной модуль бота (async)
│ │ ├── command_handlers.py # Обработчики команд с rate limiting
│ │ ├── animations.py # Анимации и обновления статуса
│ │ └── message_templates.py # HTML-форматированные шаблоны
│ ├── database/
│ │ └── db_manager.py # Асинхронный PostgreSQL с пулом соединений
│ ├── utils/
│ │ └── crypto_price.py # Асинхронное получение цен (aiohttp)
│ └── generators/
│ └── fish_card_generator.py # AI-генерация с семафором
├── config/ # Конфигурационные файлы
├── docs/ # Документация
├── requirements.txt # Python зависимости
├── Dockerfile # Docker образ для деплоя
├── fly.toml # Конфигурация Fly.io
└── start_async_bot.sh # Асинхронный скрипт запуска
- asyncpg - высокопроизводительный PostgreSQL драйвер
- Connection Pool - min=10, max=50 соединений
- Retry Logic - exponential backoff для отказоустойчивости
- Rate Limiting - защита от спама (10 команд/минута)
- Thread Safety - безопасность при concurrent операциях
- AI Semaphore - ограничение на 3 одновременных генерации изображений
- JIT отключен для стабильной производительности PostgreSQL
- Batch операции для множественных запросов
- Graceful shutdown с корректным закрытием пула соединений
- Кеширование AI-генерированных изображений в базе данных
- Параллельная обработка команд пользователей
- Детальное логирование всех операций
- Метрики производительности запросов
- Автоматическая очистка rate limit данных
PostgreSQL база с автоматической миграцией при первом запуске:
- Таблица
users- пользователи и их BAIT токены - Таблица
positions- активные и закрытые позиции
- Найти своего бота в Telegram
- Написать
/startили/cast - Тестировать команды в приватном чате
- Добавить бота в группу Telegram
- Использовать команды в группе для социальной рыбалки
- Все участники группы могут видеть результаты рыбалки
python3 test_bot.pyБаза данных fishing_bot.db создастся локально автоматически.
Ready to fish! 🎣