Исправлены все основные проблемы: - Исправлена логика фильтрации сообщений по топикам в 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>
4.9 KiB
4.9 KiB
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 APIvk_client.py- клиент для работы с VK APIdiscord_client.py- опциональный клиент для Discord APIsite_api.py- работа с API сайта linux-gaming.rudel-tests.py- утилита для удаления сообщений из всех каналовkeys.py- конфигурация с API ключами (не включен в git)
Структура бота:
- Получение новостей: парсинг с сайта
linux-gaming.ru - Обработка контента: конвертация HTML в markdown, удаление дубликатов ссылок
- Публикация: отправка в Telegram, VK и опционально Discord
- Планировщик: автоматическое выполнение каждые 30 минут
Команды разработки
Запуск нового модульного бота:
python3 news-bot-modular.py
Запуск старого монолитного бота:
python3 news-bot.py
Запуск утилиты удаления сообщений:
python3 del-tests.py
Проверка синтаксиса Python:
python3 -m py_compile news-bot.py
python3 -m py_compile del-tests.py
Зависимости
Проект использует следующие библиотеки:
telethon- для работы с Telegram APIrequests- для HTTP запросовschedule- планировщик задачcolorlog- цветное логированиеhtml2text- конвертация HTML в текстbeautifulsoup4- парсинг HTMLdiscord.py- для работы с Discord API (опционально)
Установка основных зависимостей:
pip3 install telethon requests schedule colorlog html2text beautifulsoup4
Для включения Discord функциональности:
pip3 install discord.py
Конфигурация
Настройки хранятся в keys.py:
api_key_site- ключ для доступа к API сайтаapi_id_tg,api_hash_tg- данные Telegram APIapi_key_vk,user_token_vk- токены VK APIdiscord_enabled- включить/отключить Discord (по умолчанию False)discord_token- токен Discord бота (если включен)dicord_channel- ID канала Discord (если включен)cat_num- номер категории новостей (8)start_topic_id- ID темы для начала публикации
Основные функции
Обработка контента:
html_to_text()- конвертация HTML в markdownremove_duplicate_links()- удаление дубликатов ссылокconvert_links()- обработка URL параметров
Модульные классы:
ContentProcessor- обработка и форматирование контентаTelegramNewsClient- работа с Telegram APIVKClient- работа с VK APIDiscordClient- работа с Discord API (опционально)SiteAPI- работа с API сайта linux-gaming.ru
Проверка статуса модулей:
# Проверить, какие модули включены
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) - критические ошибки