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