translate readme

This commit is contained in:
2025-12-14 22:49:48 +02:00
parent cf1801bff4
commit 85ec7fe722

View File

@@ -1,36 +1,36 @@
# Telegram Minecraft Monitor Bot # Telegram Minecraft Monitor Bot
Бот на `aiogram` который регулярно проверяет статус Minecraft сервера и: Бот на `aiogram`, що регулярно перевіряє статус Minecraft сервера і:
- Отправляет уведомления в Telegram чат (онлайн/офлайн, изменения игроков). - Надсилає сповіщення в Telegram чат (онлайн/офлайн).
- Записывает актуальное состояние в `status.json`, чтобы данные можно было забирать на сайт. - Записує актуальний стан у `status.json`, щоб дані можна було підхопити на сайт.
## Быстрый старт ## Швидкий старт
1) Установите зависимости: 1) Встановіть залежності:
```bash ```bash
python -m venv .venv python -m venv .venv
source .venv/bin/activate source .venv/bin/activate
pip install -r requirements.txt pip install -r requirements.txt
``` ```
2) Заполните `.env` (смотрите пример в `.env.example`): 2) Заповніть `.env` (див. приклад у `.env.example`):
``` ```
TELEGRAM_BOT_TOKEN=ваш_токен TELEGRAM_BOT_TOKEN=ваш_токен
TELEGRAM_CHAT_ID=чат_id_куда_слать_уведомления TELEGRAM_CHAT_ID=chat_id_куди_слати_сповіщення
MINECRAFT_HOST=example.org MINECRAFT_HOST=example.org
MINECRAFT_PORT=25565 MINECRAFT_PORT=25565
POLL_INTERVAL_SECONDS=30 POLL_INTERVAL_SECONDS=30
STATUS_FILE_PATH=data/status.json STATUS_FILE_PATH=data/status.json
``` ```
3) Запустите бота: 3) Запустіть бота:
```bash ```bash
python main.py python main.py
``` ```
## Запуск в Docker ## Запуск у Docker
1) Собрать образ: 1) Зібрати образ:
```bash ```bash
docker build -t monitor-bot . docker build -t monitor-bot .
``` ```
2) Запустить, передав переменные окружения: 2) Запустити, передавши змінні оточення:
```bash ```bash
docker run -d \ docker run -d \
--name monitor-bot \ --name monitor-bot \
@@ -43,17 +43,17 @@ docker run -d \
-v "$(pwd)/data:/data" \ -v "$(pwd)/data:/data" \
monitor-bot monitor-bot
``` ```
`STATUS_FILE_PATH` лучше указывать в смонтированную директорию (`/data`), чтобы JSON был доступен снаружи. `STATUS_FILE_PATH` варто вказувати у змонтовану директорію (`/data`), щоб JSON був доступний зовні.
## Что делает бот ## Що робить бот
- Каждые `POLL_INTERVAL_SECONDS` секунд опрашивает сервер Minecraft. - Кожні `POLL_INTERVAL_SECONDS` секунд опитує Minecraft сервер.
- Пишет результат в JSON файл `STATUS_FILE_PATH`, например `data/status.json`: - Пише результат у JSON файл `STATUS_FILE_PATH`, наприклад `data/status.json`:
```json ```json
{ {
"source": "monitor-bot", "source": "monitor-bot",
"status": { "status": {
"online": true, "online": true,
"motd": "Привет!", "motd": "Привіт!",
"version": "1.20.4", "version": "1.20.4",
"latency_ms": 62.5, "latency_ms": 62.5,
"players_online": 3, "players_online": 3,
@@ -63,18 +63,18 @@ docker run -d \
} }
} }
``` ```
- Следит за изменениями и шлет уведомления в чат: сервер упал/поднялся, кто зашел/вышел, текущее число игроков. - Надсилає сповіщення лише про зміну статусу (онлайн/офлайн).
- Команда `/status` в чате выводит актуальную информацию (берется из файла, при его отсутствии запрашивается напрямую). - Команда `/status` у чаті показує актуальну інформацію (береться з файлу, якщо його нема — запитує напряму).
## Использование данных на сайте ## Дані для сайту
- Забирайте файл `STATUS_FILE_PATH` любым удобным способом (например, отдавайте его веб-сервером или читайте напрямую из файловой системы) — структура стабильная. - Забирайте файл `STATUS_FILE_PATH` у зручний спосіб (наприклад, віддавайте вебсервером або читайте напряму з файлової системи) — структура стабільна.
- Поле `last_updated` в формате ISO 8601 поможет показывать время обновления. - Поле `last_updated` у форматі ISO 8601 допоможе відображати час оновлення.
## Настройки ## Налаштування
- Все параметры задаются через переменные окружения (см. `.env.example`). - Усі параметри задаються через змінні оточення (див. `.env.example`).
- `POLL_INTERVAL_SECONDS` — частота опроса. - `POLL_INTERVAL_SECONDS` — частота опитування.
- `STATUS_FILE_PATH` — куда писать JSON. Скрипт сам создаст директорию, если ее нет. - `STATUS_FILE_PATH` — куди писати JSON. Скрипт сам створить директорію, якщо її немає.
## Проверка ## Перевірка
- Запустите бота и в Telegram отправьте `/start`, затем `/status` чтобы увидеть текущие данные. - Запустіть бота і в Telegram відправте `/start`, потім `/status`, щоб побачити поточні дані.
- В каталоге `STATUS_FILE_PATH` должен появиться актуальный `status.json`. - У каталозі `STATUS_FILE_PATH` має з’явитися актуальний `status.json`.