Исправлены все основные проблемы: - Исправлена логика фильтрации сообщений по топикам в 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>
113 lines
4.9 KiB
Markdown
113 lines
4.9 KiB
Markdown
# 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) - критические ошибки |