Разработка только на PHP, используя библиотеку https://docs.madelineproto.xyz/ реализовать следующий функционал:
1. На ежедневной основе (cron) парсить заданные чаты Телеграм и всех их пользователей (используя итерацию https://docs.madelineproto.xyz/API_docs/methods/channels.getParticipants.html и таймауты), сохранять в базу данные о них (nick/id/имя/фамилия/bio/img). Чаты хранить в БД с информацией о них, датой сбора информаций начало и конец.
Таблица с пользователями Mysql с ключом Uniq по полю ID пользователя + ID чата (чаты в отдельной таблице хранить) чтобы в таблицу делать просто InsertIgnore и дописывались только новые пары ID пользователя + ID чата.
Очень важно первый прогон чата с сохранением всех пользователей совершить полностью и наладить триггера который бы отслеживал что чат полностью дособран, иначе удалять все записи по этому чату и начинать по новой в случае прерывания скрипта и т.п.
Цель - получать ежедневно только новых пользователей заданных чатов, начиная с момента когда первично чат собрали.
2. Подготовить Mysql запрос и отдельный скрипт который будет формировать TXT файл доступный по WEB с сервера (или другим альтернативным способом, например загрузка в google docs/etc, чтобы любой мог его забрать) - whitelist.txt. Из этого TXT файла нужно исключать определенные ники пользователей (те, которые уже инвайтили, те которые хотим занести в blacklist) - для этого нужна еще одна таблица с простым механизмом импорта в нее: импорт через форму куда можно догружать TXT файл с никами/id пользователей, которые допишутся в базу таблицу Users_exclude, и автоматически обновят текстовый файл whitelist.txt
3. Код комментировать, все выводить в текстовый лог с точным временем и подробным описанием процесса а-ля :
echo date("d-m-Y H:i:s") . " - " . "Начинаем сбор чата BlaBla" . PHP_EOL;получили инфо о чате - 100500 человек, начинаем выгружать пользователей
выгрузили 1000 пользователей
выгрузили 2000 пользователей
....
Итого таблицы:
Chats
Chat_users
Users_exclude
Скрипты:
Сбор пользователей в бд из чатов
Импорт исключения ников в бд
Экспорт новых добавленных ников для каждого чата начиная с его 1го полного прогона - то есть чаты можем добавлять с течением времени, но важно чтобы выборка была только новых пользователей от момента когда совершили сбор первый полный.
Для работы предоставлю пустую VPS на Ubuntu на которой все развернете и составите подробную инструкцию как с 0 развернуть сервис.