Нужно разработать бота, который принимает список чатов или каналов и возвращает только те, которые проходят фильтр по простым критериям: размер, активность, тематика.
Работа должна быть сделана в течении двух недель. Подключать ИИ не нужно.
ТЗ:
Ввод источников
Бот принимает:
- сообщением список ссылок/юзернеймов (каждый с новой строки):
или @channelname или
- файлом .txt или .csv или сообщением (1 источник 1 строка)
- После приёма бот отвечает сколько источников принято и добавлено в очередь
Проверки по каждому источнику
Если источник доступен для просмотра, бот определяет:
- чат или канал
- количество участников или подписчиков
- активность: дата последнего поста и количество постов за последние N дней
- тематика: поиск ключевых слов в названии или описании и в последних постах (достаточно последних 10)
Если источник недоступен или битая ссылка или нет прав пометить как "недоступен".
Фильтры (настраиваемые)
Админ может менять параметры в боте (командами):
- min_members (например 500)
- max_members (например 50000, 0 = без лимита)
- max_last_activity_days (например 2 дня)
- min_posts_last_N_days (например 15 за 7 дней)
- keywords (список через запятую; должно быть хотя бы 1 совпадение)
- stopwords (если найдено источник исключается)
- type = all / chats / channels
Важно: фильтры должны меняться в боте, а не быть зашитыми в код.
Результат
После запуска проверки бот выдаёт:
- сводку: получено / проверено / прошло / отсеяно / недоступно
- список прошедших источников (в сообщении)
По каждому отсеянному источнику достаточно 1 причины: мало участников / неактивен / стоп-слово / нет ключей / недоступен.
Команды
/start инструкция
/add добавить источники (сообщением или файлом)
/filters показать текущие фильтры
/set задать фильтры (формат разработчик предложит)
/run запустить проверку очереди
/status прогресс (в очереди / обработано)
/export выгрузить прошедшие
Ограничения
1) бот не вступает в приватные чаты и не пытается обходить доступ; если нельзя посмотреть "недоступен"
2) обработка соблюдение лимитов Telegram на стороне разработчика