mirror of
https://github.com/qiyanaitsme/QIYANASAutoPumpLOLZ.git
synced 2026-07-25 02:24:29 +00:00
10 KiB
10 KiB
🚀 QIYANA AUTO-BUMP BOT для Lolz.live
Production-ready Telegram бот для автоматического поднятия тем на форуме Lolz.live с современной архитектурой, batch API и полной типизацией.
✨ Возможности
- ➕ Добавление тем - через запятую (12345, 67890, 11111) с batch API
- 🗑️ Удаление тем - через интерактивное меню
- 📋 Список тем - с датой последнего поднятия
- 🚀 Ручное поднятие - поднять все темы немедленно через batch API
- ⏰ Автоподнятие - каждые N часов автоматически
- 📊 Статистика - успешность, количество поднятий, uptime
- 🔔 Уведомления - о каждом поднятии темы
- 🛡️ Обработка ошибок - rate limits, network failures, invalid tokens
- ⚡ Batch API - до 10 тем за один запрос (10x быстрее)
🎮 Интерфейс
┌─────────────────────────────────┐
│ ➕ Добавить темы │ 📋 Список тем │
│ 🗑️ Удалить тему │ 🚀 Поднять темы │
│ 📊 Статистика │ 👤 Автор │
└─────────────────────────────────┘
📦 Установка
Требования
- Python 3.12+
- pip или uv
1. Установите зависимости
pip install -r requirements.txt
2. Получите токены
Telegram Bot Token:
- Напишите @BotFather
- Создайте бота:
/newbot - Скопируйте токен
Lolz API Token:
- Перейдите на zelenka.guru/account/api
- Создайте токен с правами
read,post - Скопируйте токен
3. Настройте config.json
{
"bot": {
"api_token": "1234567890:ABCdefGHIjklMNOpqrsTUVwxyz",
"img_url": "https://wallpapers-clan.com/wp-content/uploads/2024/04/dark-anime-girl-with-red-eyes-desktop-wallpaper-preview.jpg",
"author_url": "https://lolz.live/kqlol/"
},
"api": {
"base_url": "https://prod-api.lolz.live",
"auth_token": "eyJ0eXAiOiJKV1QiLCJhbGc...",
"batch_size": 10
},
"database": {
"path": "threads.db"
},
"scheduling": {
"bump_interval_hours": 12,
"bump_delay_seconds": 2,
"enable_auto_bump": true
}
}
4. Запустите бота
python app.py
📖 Использование
Добавление тем
- Нажмите ➕ Добавить темы
- Введите ID через запятую:
12345, 67890, 11111 - Бот автоматически получит названия тем через batch API (до 10 за запрос)
Пример:
Ввод: 9247920, 9247921, 9247922
Результат:
✅ 9247920 - Qiyanas steam idler
✅ 9247921 - Discord bot
✅ 9247922 - VPN service
Batch API преимущества:
- Добавление 10 тем = 1 batch запрос вместо 10 обычных
- Добавление 25 тем = 3 batch запроса вместо 25 обычных
- Экономия API лимитов в 10 раз
Удаление темы
- Нажмите 🗑️ Удалить тему
- Выберите тему из списка
- Подтвердите удаление
Ручное поднятие
- Нажмите 🚀 Поднять темы
- Бот поднимет все темы через batch API (до 10 за запрос)
- Получите уведомление о каждой теме:
[1/3] ✅ Тема 9247920 поднята успешно [2/3] ✅ Тема 9247921 поднята успешно [3/3] ✅ Тема 9247922 поднята успешно
Batch API преимущества:
- Поднятие 10 тем = 1 batch запрос (0.1 * 10 = 1 batch)
- Поднятие 50 тем = 5 batch запросов вместо 50 обычных
- Скорость выполнения увеличена в ~10 раз
Просмотр списка
Нажмите 📋 Список тем - покажет:
- ID темы
- Название темы
- Дату последнего поднятия
Статистика
Нажмите 📊 Статистика - покажет:
- Количество тем
- Готовые к поднятию
- Всего попыток
- Успешность (%)
- Настройки интервала
- Время работы бота
⚙️ Настройки
Интервал автоподнятия
В config.json измените bump_interval_hours:
| Значение | Интервал |
|---|---|
12 |
12 часов |
6 |
6 часов |
24 |
24 часа |
Размер batch запросов
В config.json измените batch_size:
| Значение | Описание |
|---|---|
10 |
Максимум (рекомендуется) - 10 тем за запрос |
5 |
Средний - 5 тем за запрос |
1 |
Отключить batch - по 1 теме |
Примечание: Batch API Lolz.live поддерживает до 10 запросов в одном batch. Каждый запрос = 0.1 batch, итого 10 запросов = 1 полный batch.
Тестовый режим (5 минут)
"scheduling": {
"bump_interval_hours": 0.0833,
"bump_delay_seconds": 1,
"enable_auto_bump": true
}
🔄 Как работает автоподнятие
- Запускаете бота
- Вручную поднимаете темы через 🚀 (первый раз)
- Бот ждет указанный интервал (например, 12 часов)
- Автоматически поднимает темы, у которых прошло 12+ часов
- Повторяет каждые 12 часов
Пример:
00:00 - Запуск бота
00:05 - Вы вручную нажали "Поднять темы"
12:05 - Автоматическое поднятие
24:05 - Автоматическое поднятие
36:05 - Автоматическое поднятие
🏗️ Архитектура
Модульная структура
app.py # Main bot logic with FSM
config_manager.py # Type-safe configuration
api_client.py # Lolz batch API client with retry logic
database.py # SQLite with connection pooling
Ключевые улучшения
- Batch API: До 10 тем за один запрос (10x эффективнее)
- Type Safety: Полная типизация с Python 3.12+ (PEP 695)
- SOLID Principles: Каждый модуль имеет одну ответственность
- Connection Pooling: Эффективное управление соединениями
- Error Handling: Специфичные исключения для каждого случая
- Async Context Managers: Автоматическая очистка ресурсов
- Immutable Config: Frozen dataclasses для безопасности
- Logging: Структурированные логи с rotation
- Graceful Shutdown: Корректное завершение всех задач
Batch API Implementation
Как работает:
# Старый способ (10 запросов):
for thread_id in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
POST /threads/{thread_id}/bump
# Новый способ (1 batch запрос):
POST /batch
[
{"uri": "/threads/1/bump", "method": "POST"},
{"uri": "/threads/2/bump", "method": "POST"},
...
{"uri": "/threads/10/bump", "method": "POST"}
]
Преимущества:
- Экономия API лимитов в 10 раз
- Скорость выполнения увеличена в ~10 раз
- Меньше нагрузка на сеть
- Атомарная обработка результатов
Edge Cases
- Rate limiting от API (обработка в batch ответах)
- Network timeouts (retry для batch запросов)
- Invalid tokens (валидация перед batch)
- Partial batch failures (индивидуальная обработка каждого результата)
- Concurrent access (connection pooling)
- Database locks (async context managers)
- Memory leaks prevention (frozen dataclasses, proper cleanup)
📝 Логи
- Консоль - основные события
- bot.log - детальные логи с traceback
🔧 Технические детали
- Python: 3.12+
- aiogram: 3.4.1
- aiohttp: 3.10.0+
- aiosqlite: 0.20.0+
- База данных: SQLite с индексами
- API: https://prod-api.lolz.live
- Batch API: До 10 запросов за 1 batch (каждый = 0.1 batch)
🐛 Troubleshooting
Ошибка: "bot.api_token not configured"
Заполните config.json реальными токенами.
Ошибка: "Invalid API token"
Проверьте токен на zelenka.guru/account/api.
Ошибка: "Network error"
Проверьте интернет-соединение и доступность API.
Темы не поднимаются автоматически
- Проверьте
enable_auto_bump: trueв config.json - Сделайте первое поднятие вручную через 🚀
- Проверьте логи в bot.log
👤 Автор
QIYANA - создатель бота
Приятного использования! 🚀