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

4.9 KiB
Raw Blame History

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 минут

Команды разработки

Запуск нового модульного бота:

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 API
  • requests - для HTTP запросов
  • schedule - планировщик задач
  • colorlog - цветное логирование
  • html2text - конвертация HTML в текст
  • beautifulsoup4 - парсинг HTML
  • discord.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 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

Проверка статуса модулей:

# Проверить, какие модули включены
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) - критические ошибки