Завершение модульной рефакторизации и исправления
Исправлены все основные проблемы: - Исправлена логика фильтрации сообщений по топикам в 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:
113
CLAUDE.md
Normal file
113
CLAUDE.md
Normal file
@@ -0,0 +1,113 @@
|
||||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Архитектура проекта
|
||||
|
||||
Это Python-проект для автоматизации новостных ботов с модульной архитектурой, которые публикуют контент в Telegram, VK и опционально в Discord.
|
||||
|
||||
### Модульная структура:
|
||||
- `news-bot-modular.py` - новый основной файл с модульной архитектурой
|
||||
- `news-bot.py` - оригинальный монолитный файл (deprecated)
|
||||
- `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.py` - конфигурация с API ключами (не включен в git)
|
||||
|
||||
### Структура бота:
|
||||
- **Получение новостей**: парсинг с сайта `linux-gaming.ru`
|
||||
- **Обработка контента**: конвертация HTML в markdown, удаление дубликатов ссылок
|
||||
- **Публикация**: отправка в Telegram, VK и опционально Discord
|
||||
- **Планировщик**: автоматическое выполнение каждые 30 минут
|
||||
|
||||
## Команды разработки
|
||||
|
||||
### Запуск нового модульного бота:
|
||||
```bash
|
||||
python3 news-bot-modular.py
|
||||
```
|
||||
|
||||
### Запуск старого монолитного бота:
|
||||
```bash
|
||||
python3 news-bot.py
|
||||
```
|
||||
|
||||
### Запуск утилиты удаления сообщений:
|
||||
```bash
|
||||
python3 del-tests.py
|
||||
```
|
||||
|
||||
### Проверка синтаксиса Python:
|
||||
```bash
|
||||
python3 -m py_compile news-bot.py
|
||||
python3 -m py_compile del-tests.py
|
||||
```
|
||||
|
||||
## Зависимости
|
||||
|
||||
Проект использует следующие библиотеки:
|
||||
- `telethon` - для работы с Telegram API
|
||||
- `requests` - для HTTP запросов
|
||||
- `schedule` - планировщик задач
|
||||
- `colorlog` - цветное логирование
|
||||
- `html2text` - конвертация HTML в текст
|
||||
- `beautifulsoup4` - парсинг HTML
|
||||
- `discord.py` - для работы с Discord API (опционально)
|
||||
|
||||
Установка основных зависимостей:
|
||||
```bash
|
||||
pip3 install telethon requests schedule colorlog html2text beautifulsoup4
|
||||
```
|
||||
|
||||
Для включения Discord функциональности:
|
||||
```bash
|
||||
pip3 install discord.py
|
||||
```
|
||||
|
||||
## Конфигурация
|
||||
|
||||
Настройки хранятся в `keys.py`:
|
||||
- `api_key_site` - ключ для доступа к API сайта
|
||||
- `api_id_tg`, `api_hash_tg` - данные Telegram API
|
||||
- `api_key_vk`, `user_token_vk` - токены VK API
|
||||
- `discord_enabled` - включить/отключить Discord (по умолчанию False)
|
||||
- `discord_token` - токен Discord бота (если включен)
|
||||
- `dicord_channel` - ID канала Discord (если включен)
|
||||
- `cat_num` - номер категории новостей (8)
|
||||
- `start_topic_id` - ID темы для начала публикации
|
||||
|
||||
## Основные функции
|
||||
|
||||
### Обработка контента:
|
||||
- `html_to_text()` - конвертация HTML в markdown
|
||||
- `remove_duplicate_links()` - удаление дубликатов ссылок
|
||||
- `convert_links()` - обработка URL параметров
|
||||
|
||||
### Модульные классы:
|
||||
- `ContentProcessor` - обработка и форматирование контента
|
||||
- `TelegramNewsClient` - работа с Telegram API
|
||||
- `VKClient` - работа с VK API
|
||||
- `DiscordClient` - работа с Discord API (опционально)
|
||||
- `SiteAPI` - работа с API сайта linux-gaming.ru
|
||||
|
||||
### Проверка статуса модулей:
|
||||
```python
|
||||
# Проверить, какие модули включены
|
||||
bot.telegram_client.is_enabled() # True
|
||||
bot.vk_client.is_enabled() # True
|
||||
bot.discord_client.is_enabled() # True/False в зависимости от конфигурации
|
||||
```
|
||||
|
||||
## Логирование
|
||||
|
||||
Используется цветное логирование с уровнями:
|
||||
- DEBUG (cyan) - детальная отладочная информация
|
||||
- INFO (green) - основная информация о работе
|
||||
- WARNING (yellow) - предупреждения
|
||||
- ERROR (red) - ошибки
|
||||
- CRITICAL (red on white) - критические ошибки
|
Reference in New Issue
Block a user