### Описание проекта: Telegram-бот для автоматической генерации и публикации новостей
Этот проект представляет собой Telegram-бота, предназначенного для автоматизации генерации новостных сообщений и их публикации в Telegram-каналах. Бот использует современные технологии для создания контента, включая интеграцию с новостными RSS-источниками и AI-моделями для обработки и улучшения текстов. Основные функции и особенности системы включают:
---
### Основные функции бота
1. **Генерация новостей:** - Бот автоматически получает новости из RSS-каналов Google News по заданным тематикам. - Интеграция с AI (через Groq API) для адаптации текста под требования пользователя: настройка тона (формальный, нейтральный, позитивный) и стиля написания. - Поддержка многоязычности для генерации новостей на разных языках.
2. **Публикация в каналы:** - Возможность отправки постов в указанные каналы с настроенным интервалом (например, каждые 60 минут). - Поддержка нескольких слотов для постинга, позволяя пользователю вести несколько каналов одновременно. - Автоматическое добавление изображений из новостных источников (если доступно).
3. **Пользовательские настройки:** - Настройка тематики новостей (например, технологии, спорт, политика). - Определение интервала между публикациями. - Указание подписи для постов (например, название Telegram-канала). - Регулировка размера поста (в символах) и пользовательских инструкций для AI. - Включение рандомизации интервала для создания естественного расписания публикаций.
4. **Администрирование:** - Панель администратора для управления пользователями и ботом: - Генерация ключей доступа с заданным сроком действия. - Добавление и удаление администраторов. - Отправка массовых сообщений всем пользователям. - Управление лицензиями пользователей: контроль срока действия ключей.
5. **Логирование и сохранение данных:** - Логирование всех действий бота, включая ошибки и успешные операции. - Автоматическое периодическое сохранение данных (каждые 5 минут) в локальный файл JSON. - Возможность включения уведомлений о действиях бота для пользователей.
---
### Принципы работы бота
1. **Инициализация и авторизация:** - При первом запуске бот проверяет, является ли пользователь администратором. - Если пользователь не имеет лицензии, бот предлагает ввести ключ доступа.
2. **Настройка постинга:** - Пользователь может настроить до 4 независимых слотов для постинга: - Указать канал для публикации. - Настроить интервал, тематику, размер поста, подпись и другие параметры. - Все настройки сохраняются и могут быть изменены в любой момент.
3. **Публикация постов:** - Бот создает посты в реальном времени или по расписанию. - Для каждого слота ведется отдельное расписание, с возможностью приостановки.
4. **Админ-функции:** - Администратор может управлять ключами доступа, добавлять новых пользователей или отправлять сообщения всем.
5. **Обработка ошибок:** - Встроена проверка доступности каналов для бота. - Если бот не имеет доступа к каналу, пользователю отправляется уведомление с инструкцией.
---
### Настройки
- **Слоты для постинга:** Пользователь может активировать и настроить до 4 независимых слотов. Каждый слот имеет свои параметры, такие как: - Канал для публикации. - Интервал постинга. - Тематика и язык. - Подпись и дополнительные инструкции для генерации текста.
- **Рандомизация:** Опциональная настройка, добавляющая разброс во времени публикации для создания более естественного расписания.
- **Логирование:** Функция уведомления о действиях бота, таких как генерация и отправка постов.
---
### Технические аспекты
1. **Хранение данных:** - Все пользовательские настройки и активные задачи постинга сохраняются в локальном JSON-файле. - При завершении работы бота данные автоматически записываются в файл.
2. **Планирование задач:** - Для управления расписанием публикаций используется библиотека `schedule` в связке с асинхронными задачами.
3. **Интеграция с AI:** - Используется API для генерации текста на основе пользовательских требований. - Генерация постов с учетом длины текста, стиля и тематики.
4. **Интеграция с Telegram API:** - Проверка доступа бота к каналам. - Отправка сообщений и изображений с использованием Telegram Bot API.
---
### Потенциальные улучшения
- Расширение функционала генерации постов, включая поддержку более сложных пользовательских запросов. - Добавление интеграции с другими новостными источниками или API. - Расширенные аналитические отчеты по активности бота (например, статистика публикаций, вовлеченность аудитории).
---
Проект представляет собой мощный инструмент для автоматизации управления Telegram-каналами, упрощая процесс генерации и публикации контента.