116 lines
3.8 KiB
Markdown
116 lines
3.8 KiB
Markdown
# OreolRP Subscription Bot
|
||
|
||
Telegram-бот для продажи подписок на **aiogram 3.x** с поддержкой нескольких языков.
|
||
|
||
## Структура проекта
|
||
|
||
```
|
||
botyobshik/
|
||
├── main.py # Точка входа
|
||
├── requirements.txt # Зависимости
|
||
├── .env # Конфигурация (не в git)
|
||
├── .env.example # Пример конфигурации
|
||
├── README.md # Документация
|
||
├── config/
|
||
│ └── __init__.py # Загрузка настроек из .env
|
||
├── core/
|
||
│ └── __init__.py # Работа с БД (авто-создание)
|
||
├── handlers/
|
||
│ └── __init__.py # Обработчики команд
|
||
├── keyboards/
|
||
│ └── __init__.py # Клавиатуры
|
||
└── locales/
|
||
├── __init__.py # Локализация
|
||
├── ru.json # Русский
|
||
├── en.json # English
|
||
└── kz.json # Қазақша
|
||
```
|
||
|
||
## Быстрый старт
|
||
|
||
1. **Установите зависимости:**
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
2. **Создайте `.env` файл:**
|
||
```bash
|
||
cp .env.example .env
|
||
```
|
||
|
||
3. **Настройте `.env`:**
|
||
```ini
|
||
BOT_TOKEN=1234567890:AAH...
|
||
DB_HOST=localhost
|
||
DB_USER=root
|
||
DB_PASSWORD=ваш_пароль
|
||
DB_NAME=botyobshik
|
||
SUPPORT_USERNAME=@support_username
|
||
```
|
||
|
||
4. **Запустите бота:**
|
||
```bash
|
||
python main.py
|
||
```
|
||
|
||
🎉 База данных и таблицы создадутся **автоматически**!
|
||
|
||
## Возможности
|
||
|
||
- ✅ Авто-создание БД и таблиц
|
||
- ✅ Команда `/start` с меню
|
||
- ✅ Проверка статуса подписки
|
||
- ✅ Покупка подписки (тарифы)
|
||
- ✅ Техподдержка
|
||
- ✅ Правила сервиса
|
||
- ✅ Смена языка (RU/EN/KZ)
|
||
- ✅ Асинхронная работа с БД
|
||
- ✅ Конфигурация через `.env`
|
||
|
||
## Редактирование
|
||
|
||
### Переменные окружения (`.env`)
|
||
| Переменная | Описание |
|
||
|------------|----------|
|
||
| `BOT_TOKEN` | Токен от @BotFather |
|
||
| `DB_HOST` | Хост MySQL |
|
||
| `DB_USER` | Пользователь MySQL |
|
||
| `DB_PASSWORD` | Пароль MySQL |
|
||
| `DB_NAME` | Имя базы данных |
|
||
| `SUPPORT_USERNAME` | Контакт поддержки |
|
||
|
||
### Тексты и кнопки
|
||
Все тексты редактируются в `locales/*.json`:
|
||
|
||
| Ключ | Описание |
|
||
|------|----------|
|
||
| `welcome` | Приветствие |
|
||
| `subscription_active/inactive` | Статусы подписки |
|
||
| `buttons.*` | Текст кнопок (buy, support, rules, language, back) |
|
||
| `messages.rules_title` | Заголовок правил |
|
||
| `messages.rules_text` | Текст правил (многострочный) |
|
||
| `messages.support` | Сообщение поддержки |
|
||
| `messages.select_tariff` | Выбор тарифа |
|
||
| `tariffs.*` | Названия тарифов |
|
||
| `languages.*` | Названия языков |
|
||
|
||
### Пример редактирования правил
|
||
|
||
Откройте `locales/ru.json` и измените:
|
||
|
||
```json
|
||
"messages": {
|
||
"rules_title": "📜 Правила сервиса",
|
||
"rules_text": "1. Первое правило\n2. Второе правило\n3. Третье правило"
|
||
}
|
||
```
|
||
|
||
Используйте `\n` для переноса строки.
|
||
|
||
## База данных
|
||
|
||
При запуске бот автоматически создаёт:
|
||
- Базу данных `botyobshik`
|
||
- Таблицу `subscriptions` (подписки)
|
||
- Таблицу `user_languages` (языки пользователей)
|