25380e7c1f56fcaf849c7638c817327455de0cd4
- Add SCHEDULE_EXAMPLES.md with ready-to-use schedule templates - Add test_cron.py utility for testing cron expressions - Include examples for daily, weekly, interval-based schedules - Add timezone conversion examples - Add testing recommendations Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Would You Rather Bot
Telegram бот для проведения игр "Would You Rather" с автоматической публикацией вопросов по расписанию.
Возможности
- 🎮 Публикация вопросов "Would You Rather" в виде опросов
- 📊 Статистика ответов на вопросы
- ⏰ Автоматическая публикация по расписанию (cron)
- 🛠️ Управление вопросами и расписаниями через Telegram
- 📝 Поддержка множественных источников вопросов через API
Основные команды
/start- Начало работы с ботом/manage- Панель управления (только для администраторов)- Добавление/редактирование/удаление вопросов
- Просмотр статистики
- Управление расписаниями публикаций
Система расписаний
Бот поддерживает автоматическую публикацию вопросов по расписанию в формате cron.
Быстрый старт:
- Откройте
/manage→ ⏰ Расписания - Нажмите ➕ Добавить расписание
- Отправьте:
Ежедневно в 12:00 | 0 12 * * * | 1
Примеры расписаний:
0 9 * * 1-5- каждый будний день в 9:00 UTC0 */4 * * *- каждые 4 часа0 12 * * 6,0- каждые выходные в 12:00 UTC
📖 Подробное руководство: SCHEDULER_GUIDE.md
Установка и запуск
Требования:
- Python 3.11+
- Telegram Bot Token
- Telegram API credentials (api_id, api_hash)
Шаги установки:
- Клонируйте репозиторий:
git clone <repository-url>
cd WouldYouRather
- Создайте виртуальное окружение и установите зависимости:
python -m venv .venv
source .venv/bin/activate # Linux/Mac
# или
.venv\Scripts\activate # Windows
pip install -r requirements.txt
- Создайте файл
.envс вашими credentials:
APP_ID=your_app_id
API_HASH=your_api_hash
BOT_TOKEN=your_bot_token
SESSION_NAME=would-you-rather-bot
- Настройте
data/settings.toml:
# ID администраторов бота
admin_ids = [123456789]
# ID каналов для публикации
poll_channel_ids = [-1001234567890]
# Источники вопросов (опционально)
[[question_apis]]
name = "default-source"
url = "https://example.com/api/questions/random"
handler = "default"
- Запустите бота:
python main.py
Структура проекта
WouldYouRather/
├── bot/ # Telegram бот
│ ├── bot.py # Основной файл бота
│ ├── commands.py # Команды бота
│ ├── manage.py # Панель управления
│ └── scheduler.py # Система расписаний
├── game/ # Бизнес-логика
│ ├── database.py # Работа с БД
│ ├── game.py # Игровая логика
│ ├── settings.py # Настройки приложения
│ └── api_service.py # API для загрузки вопросов
├── data/ # Данные (БД, сессии, конфиг)
│ ├── game.sqlite3 # База данных
│ └── settings.toml # Конфигурация
├── main.py # Точка входа
└── requirements.txt # Зависимости
База данных
Бот использует SQLite для хранения:
- Вопросов и ответов
- Статистики голосований
- Расписаний публикаций
- Истории запусков расписаний
Структура создается автоматически при первом запуске.
Возможности управления
Вопросы:
- ✅ Просмотр всех вопросов с пагинацией
- ✅ Добавление новых вопросов
- ✅ Редактирование существующих вопросов
- ✅ Просмотр статистики по вопросам
Расписания:
- ✅ Создание расписаний с cron-выражениями
- ✅ Редактирование расписаний
- ✅ Включение/выключение расписаний
- ✅ Удаление расписаний
- ✅ Просмотр всех расписаний
Логирование
Логи сохраняются в data/logs/ с ротацией:
bot.log- основной лог- Автоматическая ротация по дням
- Хранение последних 7 дней
Лицензия
MIT License
Автор
Developed by @azimkin.dev
Description
Languages
Python
100%