translate readme
This commit is contained in:
56
README.md
56
README.md
@@ -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`.
|
||||||
|
|||||||
Reference in New Issue
Block a user