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