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