Files
bot-news-linux-gaming/CLAUDE.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

113 lines
4.9 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.

# 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) - критические ошибки