First commit

This commit is contained in:
2026-05-01 15:13:02 +03:00
parent c2fcedf608
commit b983126e6e
18 changed files with 7142 additions and 147 deletions

343
INSTALLATION.md Normal file
View File

@@ -0,0 +1,343 @@
# Руководство по установке VNDB Telegram Bot
## Быстрый старт (5 минут)
### Требования
- Python 3.8 или выше
- pip (идёт с Python)
- Интернет соединение
### Шаг 1: Получение токенов
#### Telegram Bot Token
1. Откройте Telegram и найдите @BotFather
2. Напишите `/newbot`
3. Ответьте на вопросы о названии и username вашего бота
4. Вы получите токен (выглядит как `123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11`)
#### VNDB API Token (опционально)
1. Создайте аккаунт на https://vndb.org (если ещё нет)
2. Перейдите на https://vndb.org/u/tokens
3. Нажмите "Create new token"
4. Скопируйте полученный токен
### Шаг 2: Установка бота
```bash
# Скачайте проект
git clone <repo_url>
cd vntgbot
# Создайте виртуальное окружение (рекомендуется)
python -m venv venv
# Активируйте виртуальное окружение
# На Windows:
venv\Scripts\activate
# На macOS/Linux:
source venv/bin/activate
# Установите зависимости
pip install -r requirements.txt
```
### Шаг 3: Настройка переменных окружения
Создайте файл `.env` в корневой папке проекта:
```
TELEGRAM_BOT_TOKEN=ваш_токен_тг
VNDB_TOKEN=ваш_токен_vndb
```
Заменив аш_токен_тг` и аш_токен_vndb` на реальные токены.
### Шаг 4: Запуск бота
```bash
python bot.py
```
Если все настроено правильно, вы должны увидеть сообщение о том, что бот запущен.
---
## Подробная установка
### Linux/macOS
```bash
# 1. Скачайте исходный код
git clone <repo_url>
cd vntgbot
# 2. Создайте виртуальное окружение
python3 -m venv venv
source venv/bin/activate
# 3. Обновите pip
pip install --upgrade pip
# 4. Установите зависимости
pip install -r requirements.txt
# 5. Создайте .env файл
cp .env.example .env
# Отредактируйте .env и добавьте токены
nano .env
# 6. Запустите бота
python bot.py
```
### Windows (PowerShell)
```powershell
# 1. Скачайте исходный код
git clone <repo_url>
cd vntgbot
# 2. Создайте виртуальное окружение
python -m venv venv
.\venv\Scripts\Activate.ps1
# 3. Обновите pip
python -m pip install --upgrade pip
# 4. Установите зависимости
pip install -r requirements.txt
# 5. Создайте .env файл
Copy-Item .env.example .env
# Отредактируйте .env с помощью notepad или вашего любимого редактора
notepad .env
# 6. Запустите бота
python bot.py
```
### Windows (CMD)
```cmd
# 1. Скачайте исходный код
git clone <repo_url>
cd vntgbot
# 2. Создайте виртуальное окружение
python -m venv venv
venv\Scripts\activate.bat
# 3. Обновите pip
python -m pip install --upgrade pip
# 4. Установите зависимости
pip install -r requirements.txt
# 5. Создайте .env файл
copy .env.example .env
REM Отредактируйте .env
# 6. Запустите бота
python bot.py
```
---
## Развертывание с помощью Docker
### Требования
- Docker
- Docker Compose (опционально)
### С использованием Docker Compose (рекомендуется)
```bash
# 1. Создайте .env файл в корневой папке
echo "TELEGRAM_BOT_TOKEN=ваш_токен" > .env
echo "VNDB_TOKEN=ваш_токен" >> .env
# 2. Запустите бота
docker-compose up -d
# 3. Проверьте логи
docker-compose logs -f vndb-bot
# 4. Остановите бота
docker-compose down
```
### С использованием Docker напрямую
```bash
# 1. Создайте образ
docker build -t vndb-bot .
# 2. Запустите контейнер
docker run -d \
--name vndb-bot \
-e TELEGRAM_BOT_TOKEN=ваш_токен \
-e VNDB_TOKEN=ваш_токен \
vndb-bot
# 3. Проверьте логи
docker logs vndb-bot
# 4. Остановите контейнер
docker stop vndb-bot
docker rm vndb-bot
```
---
## Проверка установки
После запуска бота:
1. Откройте Telegram
2. Найдите вашего бота по username
3. Напишите `/start`
4. Вы должны увидеть приветственное сообщение
Если всё работает, попробуйте команду:
```
/stats
```
---
## Решение проблем
### Ошибка: "TELEGRAM_BOT_TOKEN not set"
- Проверьте, что файл `.env` существует в корневой папке
- Убедитесь, что в `.env` правильно указан токен
- Убедитесь, что токен не содержит кавычки или лишних пробелов
### Ошибка: "Connection refused"
- Проверьте интернет соединение
- Убедитесь, что сервер VNDB API доступен (https://api.vndb.org/kana)
### Бот не отвечает на сообщения
- Проверьте, что бот имеет права администратора в чате (если используется в групповом чате)
- Убедитесь, что в настройках бота включены приватные сообщения
- Перезагрузите бота: остановите его и запустите снова
### Медленные ответы
- Это может быть из-за ограничений API VNDB
- Попробуйте уменьшить количество запрашиваемых полей
- Убедитесь, что ваше интернет соединение стабильно
### Ошибка импорта модулей
```bash
# Убедитесь, что виртуальное окружение активировано и зависимости установлены
pip install -r requirements.txt --upgrade
```
### SSL Certificate Error
```bash
# На некоторых системах может потребоваться:
pip install certifi
# Или использовать нестабильное соединение (не рекомендуется):
# Добавьте в bot.py перед запуском: import ssl; ssl._create_default_https_context = ssl._create_unverified_context
```
---
## Конфигурация
### Переменные окружения
| Переменная | Обязательна | По умолчанию | Описание |
|-----------|----------|----------|-----------|
| TELEGRAM_BOT_TOKEN | Да | - | Токен Telegram бота |
| VNDB_TOKEN | Нет | - | Токен VNDB API для авторизации |
| LOG_LEVEL | Нет | INFO | Уровень логирования (DEBUG, INFO, WARNING, ERROR) |
| USE_SANDBOX | Нет | false | Использовать sandbox API для тестирования |
### Файл config.py
Вы можете отредактировать `config.py` для изменения других параметров:
```python
MAX_RESULTS_PER_PAGE = 100 # Максимум результатов на странице
DEFAULT_RESULTS_PER_PAGE = 10 # По умолчанию результатов на странице
MAX_QUOTES_AT_ONCE = 5 # Максимум цитат за раз
API_TIMEOUT = 10 # Timeout для API запросов (в секундах)
BOT_TIMEOUT = 30 # Timeout для бота (в секундах)
```
---
## Проверка зависимостей
```bash
# Проверьте, что все зависимости установлены правильно
pip check
# Обновите зависимости
pip install -r requirements.txt --upgrade
```
---
## Выполнение тестов
```bash
# Установите зависимости для тестирования (они уже в requirements.txt)
# Запустите тесты
pytest test_bot.py -v
# С покрытием
pytest test_bot.py --cov=. --cov-report=html
```
---
## Автозагрузка при запуске системы
### Linux/macOS (systemd)
Создайте файл `/etc/systemd/system/vndb-bot.service`:
```ini
[Unit]
Description=VNDB Telegram Bot
After=network.target
[Service]
Type=simple
User=your_username
WorkingDirectory=/path/to/vntgbot
Environment="PATH=/path/to/vntgbot/venv/bin"
ExecStart=/path/to/vntgbot/venv/bin/python bot.py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
```
Затем:
```bash
sudo systemctl daemon-reload
sudo systemctl enable vndb-bot
sudo systemctl start vndb-bot
```
### Windows (Планировщик задач)
1. Откройте Планировщик задач
2. Создайте новую задачу
3. Установите триггер "При запуске"
4. Установите действие: запустить `python.exe` с аргументом `C:\path\to\bot.py`
5. Сохраните задачу
---
## Нужна помощь?
- 📖 Прочитайте [README.md](README.md)
- 🐛 Проверьте [логи](#логирование)
- 📝 Посмотрите примеры команд в `/help`
- 🌐 Посетите https://api.vndb.org/kana для справки по API
Удачи! 🚀