Завершение модульной рефакторизации и исправления
Исправлены все основные проблемы: - Исправлена логика фильтрации сообщений по топикам в Telegram - Исправлен бесконечный цикл в VK клиенте get_wall_posts() - Добавлена асинхронная поддержка для VK в главном файле - Дедупликация работает корректно для всех платформ - Добавлена полная документация в CLAUDE.md и README.md 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
151
README.md
Normal file
151
README.md
Normal file
@@ -0,0 +1,151 @@
|
||||
# News Bot для Linux Gaming
|
||||
|
||||
Автоматизированный бот для публикации новостей с сайта linux-gaming.ru в Telegram, VK и опционально в Discord.
|
||||
|
||||
## ✨ Особенности
|
||||
|
||||
- **Модульная архитектура** - каждая платформа в отдельном модуле
|
||||
- **Опциональный Discord** - можно включать/отключать через конфигурацию
|
||||
- **Обработка контента** - автоматическая конвертация HTML в markdown
|
||||
- **Дедупликация** - исключение повторных публикаций
|
||||
- **Планировщик** - автоматическое выполнение каждые 30 минут
|
||||
- **Цветное логирование** - удобная отладка и мониторинг
|
||||
|
||||
## 🚀 Быстрый старт
|
||||
|
||||
### 1. Установка зависимостей
|
||||
|
||||
```bash
|
||||
# Основные зависимости
|
||||
pip3 install telethon requests schedule colorlog html2text beautifulsoup4
|
||||
|
||||
# Для Discord (опционально)
|
||||
pip3 install discord.py
|
||||
```
|
||||
|
||||
### 2. Конфигурация
|
||||
|
||||
```bash
|
||||
# Скопировать пример конфигурации
|
||||
cp keys_example.py keys.py
|
||||
|
||||
# Отредактировать keys.py с вашими API ключами
|
||||
nano keys.py
|
||||
```
|
||||
|
||||
### 3. Запуск
|
||||
|
||||
```bash
|
||||
# Новый модульный бот (рекомендуется)
|
||||
python3 news-bot-modular.py
|
||||
|
||||
# Или старый монолитный бот
|
||||
python3 news-bot.py
|
||||
```
|
||||
|
||||
## 📁 Структура проекта
|
||||
|
||||
```
|
||||
├── news-bot-modular.py # Новый основной файл
|
||||
├── news-bot.py # Старый монолитный файл
|
||||
├── config.py # Централизованная конфигурация
|
||||
├── logger.py # Настройка логирования
|
||||
├── content_processor.py # Обработка контента
|
||||
├── telegram_client.py # Telegram API клиент
|
||||
├── vk_client.py # VK API клиент
|
||||
├── discord_client.py # Discord API клиент (опциональный)
|
||||
├── site_api.py # API сайта linux-gaming.ru
|
||||
├── del-tests.py # Утилита очистки каналов
|
||||
├── keys_example.py # Пример конфигурации
|
||||
└── keys.py # Реальная конфигурация (создается вручную)
|
||||
```
|
||||
|
||||
## ⚙️ Конфигурация
|
||||
|
||||
Настройки в файле `keys.py`:
|
||||
|
||||
| Параметр | Описание | Обязательный |
|
||||
|----------|----------|--------------|
|
||||
| `api_key_site` | Ключ API сайта | ✅ |
|
||||
| `api_id_tg` | Telegram API ID | ✅ |
|
||||
| `api_hash_tg` | Telegram API Hash | ✅ |
|
||||
| `channel_username_tg` | Telegram канал | ✅ |
|
||||
| `api_key_vk` | VK API ключ | ✅ |
|
||||
| `user_token_vk` | VK пользовательский токен | ✅ |
|
||||
| `own_id` | ID VK группы/страницы | ✅ |
|
||||
| `discord_enabled` | Включить Discord | ❌ (по умолчанию False) |
|
||||
| `discord_token` | Discord бот токен | ❌ (если Discord включен) |
|
||||
| `dicord_channel` | Discord канал ID | ❌ (если Discord включен) |
|
||||
| `cat_num` | Номер категории новостей | ✅ (по умолчанию 8) |
|
||||
| `start_topic_id` | Стартовый ID темы | ✅ (по умолчанию 0) |
|
||||
|
||||
## 🔧 Модули
|
||||
|
||||
### ContentProcessor
|
||||
Обрабатывает и форматирует контент:
|
||||
- Конвертация HTML → Markdown
|
||||
- Удаление дубликатов ссылок
|
||||
- Форматирование под каждую платформу
|
||||
|
||||
### TelegramNewsClient
|
||||
- Асинхронная работа с Telegram API
|
||||
- Обработка FloodWait ошибок
|
||||
- Проверка существующих сообщений
|
||||
|
||||
### VKClient
|
||||
- Публикация в VK
|
||||
- Специальная обработка для постов о скриптах
|
||||
- Прикрепление ссылок и изображений
|
||||
|
||||
### DiscordClient (опциональный)
|
||||
- Включается/выключается через конфигурацию
|
||||
- Автоматическая проверка зависимостей
|
||||
- Разбивка длинных сообщений
|
||||
|
||||
### SiteAPI
|
||||
- Получение новостей с сайта
|
||||
- Мониторинг новых версий скриптов
|
||||
- Публикация обновлений
|
||||
|
||||
## 🎯 Использование
|
||||
|
||||
```python
|
||||
from news_bot_modular import NewsBot
|
||||
|
||||
bot = NewsBot()
|
||||
|
||||
# Проверить статус модулей
|
||||
print("Telegram:", bot.telegram_client.is_enabled())
|
||||
print("VK:", bot.vk_client.is_enabled())
|
||||
print("Discord:", bot.discord_client.is_enabled())
|
||||
|
||||
# Запустить бота
|
||||
bot.start()
|
||||
```
|
||||
|
||||
## 🛠 Утилиты
|
||||
|
||||
### Очистка каналов
|
||||
```bash
|
||||
python3 del-tests.py
|
||||
```
|
||||
Удаляет все сообщения из всех настроенных каналов.
|
||||
|
||||
### Проверка синтаксиса
|
||||
```bash
|
||||
python3 -m py_compile news-bot-modular.py
|
||||
python3 -m py_compile content_processor.py
|
||||
```
|
||||
|
||||
## 🐛 Отладка
|
||||
|
||||
Логи с цветовой маркировкой:
|
||||
- 🔵 DEBUG - детальная информация
|
||||
- 🟢 INFO - основные события
|
||||
- 🟡 WARNING - предупреждения
|
||||
- 🔴 ERROR - ошибки
|
||||
- ⚪ CRITICAL - критические ошибки
|
||||
|
||||
## 📝 Лицензия
|
||||
|
||||
Этот проект является частной разработкой для автоматизации публикации новостей Linux Gaming.
|
Reference in New Issue
Block a user