Обновить README.md
This commit is contained in:
272
README.md
272
README.md
@@ -13,10 +13,276 @@
|
|||||||
- 📝 Красивое HTML форматирование сообщений
|
- 📝 Красивое HTML форматирование сообщений
|
||||||
- ⚙️ Гибкая настройка через YAML конфиги
|
- ⚙️ Гибкая настройка через YAML конфиги
|
||||||
|
|
||||||
## Быстрый старт
|
## Установка через скрипт (простой способ)
|
||||||
|
|
||||||
### 1. Клонирование репозитория
|
Этот способ подходит, если на сервере уже есть Python 3.8+ и вы хотите запустить бота как обычный процесс или systemd сервис.
|
||||||
|
|
||||||
|
### Шаг 1. Клонируем репозиторий
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://git.islipper.ru/Matrix_Bots/matrix-rss-bot.git
|
git clone https://git.islipper.ru/Matrix_Bots/matrix-rss-bot.git
|
||||||
cd matrix-rss-bot
|
cd matrix-rss-bot
|
||||||
|
```
|
||||||
|
|
||||||
|
### Шаг 2. Запускаем установочный скрипт
|
||||||
|
|
||||||
|
```bash
|
||||||
|
chmod +x scripts/setup.sh
|
||||||
|
./scripts/setup.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Скрипт автоматически:
|
||||||
|
- Создаст виртуальное окружение Python
|
||||||
|
- Установит все зависимости
|
||||||
|
- Создаст папки для данных и логов
|
||||||
|
- Скопирует примеры конфигов
|
||||||
|
- Предложит установить systemd сервис
|
||||||
|
|
||||||
|
### Шаг 3. Настраиваем конфиги
|
||||||
|
|
||||||
|
Отредактируйте основной конфиг:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nano config/config.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
Введите ваши данные:
|
||||||
|
- `homeserver`: URL вашего Matrix сервера (например, https://matrix.example.com)
|
||||||
|
- `bot_user_id`: ID бота (например, @rssbot:example.com)
|
||||||
|
- `access_token`: токен доступа бота
|
||||||
|
|
||||||
|
Отредактируйте список RSS источников:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nano config/sources.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
Добавьте ваши источники в формате:
|
||||||
|
```yaml
|
||||||
|
sources:
|
||||||
|
- url: "https://example.com/rss.xml"
|
||||||
|
name: "Название источника"
|
||||||
|
room_id: "!идентификатор_комнаты:сервер"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Шаг 4. Запускаем бота
|
||||||
|
|
||||||
|
**Вариант 1: Ручной запуск**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
source venv/bin/activate
|
||||||
|
python -m bot.main
|
||||||
|
```
|
||||||
|
|
||||||
|
**Вариант 2: Через systemd (если установили)**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo systemctl start matrix-rss-bot
|
||||||
|
sudo systemctl enable matrix-rss-bot
|
||||||
|
sudo systemctl status matrix-rss-bot
|
||||||
|
```
|
||||||
|
|
||||||
|
**Вариант 3: Через screen (для долгой работы)**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
screen -S rss-bot
|
||||||
|
source venv/bin/activate
|
||||||
|
python -m bot.main
|
||||||
|
# Нажми Ctrl+A, затем D для выхода
|
||||||
|
# Вернуться: screen -r rss-bot
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Установка через Docker (рекомендуемый способ)
|
||||||
|
|
||||||
|
Этот способ изолирует бота от системы, упрощает обновление и управление.
|
||||||
|
|
||||||
|
### Шаг 1. Убедитесь, что Docker установлен
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker --version
|
||||||
|
docker-compose --version
|
||||||
|
```
|
||||||
|
|
||||||
|
Если Docker не установлен:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Установка Docker
|
||||||
|
curl -fsSL https://get.docker.com -o get-docker.sh
|
||||||
|
sh get-docker.sh
|
||||||
|
|
||||||
|
# Установка Docker Compose
|
||||||
|
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
||||||
|
chmod +x /usr/local/bin/docker-compose
|
||||||
|
```
|
||||||
|
|
||||||
|
### Шаг 2. Клонируем репозиторий
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://git.islipper.ru/Matrix_Bots/matrix-rss-bot.git
|
||||||
|
cd matrix-rss-bot
|
||||||
|
```
|
||||||
|
|
||||||
|
### Шаг 3. Настраиваем конфиги
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Копируем примеры
|
||||||
|
cp config/config.example.yaml config/config.yaml
|
||||||
|
cp config/sources.example.yaml config/sources.yaml
|
||||||
|
|
||||||
|
# Редактируем
|
||||||
|
nano config/config.yaml
|
||||||
|
nano config/sources.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
### Шаг 4. Запускаем бота
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Сборка и запуск в фоне
|
||||||
|
docker-compose up -d
|
||||||
|
|
||||||
|
# Просмотр логов
|
||||||
|
docker-compose logs -f
|
||||||
|
|
||||||
|
# Проверка статуса
|
||||||
|
docker-compose ps
|
||||||
|
```
|
||||||
|
|
||||||
|
### Шаг 5. Управление ботом
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Остановка
|
||||||
|
docker-compose stop
|
||||||
|
|
||||||
|
# Запуск
|
||||||
|
docker-compose start
|
||||||
|
|
||||||
|
# Перезапуск
|
||||||
|
docker-compose restart
|
||||||
|
|
||||||
|
# Остановка с удалением контейнера
|
||||||
|
docker-compose down
|
||||||
|
|
||||||
|
# Обновление (после git pull)
|
||||||
|
docker-compose up -d --build
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Получение access_token для бота
|
||||||
|
|
||||||
|
1. Войдите в аккаунт бота в Matrix клиенте (Element, FluffyChat и т.д.)
|
||||||
|
2. Откройте настройки профиля → Помощь и о программе
|
||||||
|
3. Нажмите "Перейти на страницу разработчика"
|
||||||
|
4. Скопируйте access_token из раздела "Информация о сессии"
|
||||||
|
|
||||||
|
Или через API:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -X POST "https://ваш_сервер/_matrix/client/r0/login" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{
|
||||||
|
"type": "m.login.password",
|
||||||
|
"user": "@rssbot:ваш_сервер",
|
||||||
|
"password": "пароль_бота"
|
||||||
|
}'
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Получение room_id для комнаты
|
||||||
|
|
||||||
|
**Способ 1: Через клиент**
|
||||||
|
- Откройте комнату в Element
|
||||||
|
- Нажмите на название комнаты → Настройки комнаты
|
||||||
|
- Скопируйте внутренний идентификатор (начинается с !)
|
||||||
|
|
||||||
|
**Способ 2: Через API**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -X GET "https://ваш_сервер/_matrix/client/r0/joined_rooms" \
|
||||||
|
-H "Authorization: Bearer syt_ваш_токен"
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Проверка работы
|
||||||
|
|
||||||
|
После запуска бота проверьте логи:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Для обычной установки
|
||||||
|
tail -f bot.log
|
||||||
|
|
||||||
|
# Для Docker
|
||||||
|
docker-compose logs -f
|
||||||
|
```
|
||||||
|
|
||||||
|
Вы должны увидеть:
|
||||||
|
|
||||||
|
```
|
||||||
|
Запускаем RSS-бота...
|
||||||
|
Соединение с Matrix установлено
|
||||||
|
Цикл #1
|
||||||
|
Проверяю: Habr
|
||||||
|
Найдено 3 новых в Habr
|
||||||
|
Отправка 3 новостей в комнату
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Обновление бота
|
||||||
|
|
||||||
|
**Для обычной установки:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git pull
|
||||||
|
source venv/bin/activate
|
||||||
|
pip install -r requirements.txt --upgrade
|
||||||
|
sudo systemctl restart matrix-rss-bot # если через systemd
|
||||||
|
```
|
||||||
|
|
||||||
|
**Для Docker:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git pull
|
||||||
|
docker-compose down
|
||||||
|
docker-compose up -d --build
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Устранение частых проблем
|
||||||
|
|
||||||
|
**Ошибка "Authentication failed"**
|
||||||
|
Проверьте access_token в config.yaml, получите новый токен.
|
||||||
|
|
||||||
|
**Бот не отправляет сообщения**
|
||||||
|
Убедитесь, что бот приглашен в комнату и имеет права на отправку.
|
||||||
|
|
||||||
|
**Не скачиваются изображения**
|
||||||
|
Проверьте права на папку data/news_images, установите Pillow.
|
||||||
|
|
||||||
|
**Контейнер не запускается (Docker)**
|
||||||
|
Проверьте логи: docker-compose logs
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Структура проекта
|
||||||
|
|
||||||
|
```
|
||||||
|
matrix-rss-bot/
|
||||||
|
├── bot/ # Исходный код
|
||||||
|
├── config/ # Конфиги (config.yaml, sources.yaml)
|
||||||
|
├── data/ # Данные (история, изображения)
|
||||||
|
├── logs/ # Логи бота
|
||||||
|
├── scripts/ # Установочные скрипты
|
||||||
|
├── docker-compose.yml # Конфигурация Docker
|
||||||
|
├── requirements.txt # Зависимости Python
|
||||||
|
└── README.md # Документация
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Выберите способ установки, который лучше подходит для вашего сервера. Docker проще в обслуживании и обновлении, обычная установка дает больше контроля над процессом.
|
||||||
Reference in New Issue
Block a user