Заносить в черный список ссылки на каналы и группы при !спам
#3
При ответе !спам на сообщение содержащее ссылку на канал, добавлять пользователя и ссылку на канал в черный список.
Оповещать о добавлении в черный список.
https://core.telegram.org/bots/api#messageentity
Не понятно как из MessageEntity вынуть id чата/канала.
Конечно можно закидывать целиком url
Есть предположение, что команда getChat(), принимает на входе еще и строку в формате @channelname и из ответа на него уже можно будет взять реальный id канала
@Fl0pZz по приватной ссылке на канал/чат так не получится
> ссылку на канал в черный список.
Необходимо рассмотреть несколько возможных ситуаций:
- Когда в сообщении несколько ссылок
- Когда в сообщении есть ссылки, которые не должны быть забанены. Примером такого сообщения может быть ответ:
Ответ поищи тут https://t.me/js_ru, а битки можно купить тут *какой-то спамлинк* - Развитие пунтка 2, когда сообщения имеют еще и md разметку:
Ответ поищи тут [https://t.me/js_ru](*какой-то спамлинк*) , а битки можно купить тут *какой-то спамлинк*
Соответсвенно только белый список проблему сообщений пункта 3 не решит, потому что под первой ссылкой может быть ссылка на яндекс или вики, а поддерживать белый список будет не просто. Или же наоборот будет добавться редиректовая ссылка с яндекс поиска, а не прямая. Или же ссылка на bitly.
Возможное решение заключается в том, что белый список состоит только из ссылок на чаты из нашей коалиции, а на !спам бот должен добавлять сообщение с кнопками:
- Все возможные ссылки из сообщения (убирая дубликаты)
- Кнопку "Готово"
- В теле сообщения так же долже содержаться отчет о том, какие из ссылок уже в спамлисте
- Выбор осуществляет тот, кто вызвал команду
!спам - В логах доллжна появиться отдельная запись о блокировании ссылки или канала
@Fl0pZz хорошее предложение. Можно также ходить по сокращенным ссылкам.