Files
bot-news-linux-gaming/README.md
Евгений (ХрамычЪ) Храмов 845f96209d Завершение модульной рефакторизации и исправления
Исправлены все основные проблемы:
- Исправлена логика фильтрации сообщений по топикам в 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>
2025-08-11 15:11:39 +03:00

151 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.