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

142
CHANGELOG.md Normal file
View File

@@ -0,0 +1,142 @@
# CHANGELOG
## [1.0.0] - 2026-05-01
### Added
- ✨ Полная поддержка VNDB API v2 (Kana)
- 🎮 Поиск визуальных новелл по названию, языку, платформе, тегам, рейтингу
- 👥 Поиск персонажей по имени, полу, черт характера
- 🎬 Поиск релизов по названию, платформе, типу
- 👨‍💼 Поиск сотрудников (сценаристы, художники, композиторы)
- 🏢 Поиск продюсеров и издателей
- 🏷️ Просмотр популярных тегов
- ✨ Просмотр черт характера персонажей
- 💬 Получение случайных цитат
- 📊 Статистика базы данных VNDB
- 📋 Информация о схеме API
- 🔐 Поддержка авторизации с помощью API токена
### Features
- ⚡ Асинхронные запросы для быстрого отклика
- 🔄 Обработка ошибок с пользовательскими сообщениями
- 📝 Подробное логирование для отладки
- 🎨 Красивое форматирование ответов с поддержкой Markdown
- 📦 Полная поддержка Docker и Docker Compose
- 🧪 Unit тесты для основных функций
- ⚙️ Гибкая конфигурация через переменные окружения
### Architecture
- `bot.py` - Основной модуль бота с обработчиками команд
- `vndb_client.py` - VNDB API клиент с поддержкой всех endpoints
- `config.py` - Управление конфигурацией
- `utils.py` - Утилиты для форматирования и обработки ошибок
- `advanced_features.py` - Продвинутые функции (кэширование, rate limiting, сессии)
- `test_bot.py` - Unit тесты
- `requirements.txt` - Зависимости Python
- `Dockerfile` и `docker-compose.yml` - Контейнеризация
### Documentation
- 📚 README.md с полной документацией
- 📖 INSTALLATION.md с пошаговыми инструкциями установки
- 🔍 Inline документация в исходном коде
- 📝 Примеры использования для каждой команды
### Commands
- `/start` - Начало работы с ботом
- `/help` - Справка по всем командам
- `/search <название>` - Поиск визуальных новелл
- `/char <имя>` - Поиск персонажей
- `/release <название>` - Поиск релизов
- `/staff <имя>` - Поиск сотрудников
- `/producer <название>` - Поиск продюсеров
- `/tag` - Список тегов
- `/trait` - Список черт характера
- `/quote [число]` - Случайные цитаты
- `/stats` - Статистика базы данных
- `/schema` - Информация о схеме API
- `/authinfo` - Информация об авторизации
### Technical Details
- Python 3.8+
- python-telegram-bot 21.0
- httpx для асинхронных HTTP запросов
- Асинхронная обработка с asyncio
- Полная поддержка rate limiting API VNDB (200 запросов за 5 минут)
### Known Limitations
- Максимум 100 результатов на странице (ограничение API)
- Функции управления списками требуют валидный API токен
- Время выполнения одного запроса не должно превышать 3 секунды (ограничение API)
### Future Plans
- 🔄 Добавить пагинацию результатов с кнопками навигации
- 💾 Добавить кэширование популярных запросов
- 📊 Добавить статистику использования бота
- 🌍 Поддержка разных языков интерфейса
- ⚙️ Админ панель для управления ботом
- 🔔 Уведомления о новых релизах избранных ВН
- 📱 Поддержка inline режима для использования в других чатах
---
## Version History
### v1.0.0 (Current)
- Initial release with full VNDB API v2 support
---
## Dependencies
### Core
- python-telegram-bot==21.0 - Telegram Bot API
- python-dotenv==1.0.0 - Environment variables
- aiohttp==3.9.1 - Async HTTP client
- requests==2.31.0 - HTTP library
### Testing
- pytest==7.4.0 - Testing framework
- pytest-asyncio==0.21.0 - Async support for pytest
### Development (Optional)
- black - Code formatter
- pylint - Code linter
- mypy - Type checker
---
## Contributing
Если вы хотите улучшить бот:
1. Форкните репозиторий
2. Создайте ветку для вашей функции
3. Коммитьте изменения
4. Отправьте Pull Request
---
## License
Данные, полученные через VNDB API, подлежат [Data License VNDB](https://vndb.org/d17#4).
---
## Support
Если у вас есть вопросы или проблемы:
- Проверьте документацию (README.md, INSTALLATION.md)
- Проверьте файлы логов
- Убедитесь, что API доступен
- Проверьте правильность конфигурации
---
## Acknowledgments
- VNDB (Visual Novel Database) за отличную базу данных и API
- python-telegram-bot за удобную библиотеку
- Python асинхронное сообщество
---
**Последнее обновление**: 1 мая 2026