Автор: er107
Использованный ИИ: ChatGPT + deepseek
Описание расширения: Блокирует запрещенные слова в темах и в заголовках тем с подменой букв из разного алфавита
Скачать: Скачать версию 1.0.1: Скачать версию 1.0.2: Скачать версию 1.0.3: Язык: en, ru
Установка: Скачать архив и расположить в chatgpt/antikraken
Последнее время одолели живые спамеры так массово, что, ничего не понимая в расширениях, пришлось обратиться к нейросетям, чтобы они написали данное расширение.
В антиботе42 есть настройка стоп-слов, но спамеры меняют буквы в словах и, например, слово вулкан можно написать 216 различными способами, поэтому и родилось это расширение, которое отлавливает замену букв.
Расширение с помощью регулярных выражений проверяет наличие заранее занесенных в файл запрещенных слов и блокирует такие сообщения с этими словами. Также проверяет запрещенные слова и в названиях тем, чтобы не спамили только в заголовках темы.
Админки в расширении нет. В версии 1.0.0 и 1.0.1 запрещенные слова вносятся в файл main_listener.php, там уже есть заранее внесенные два слова.
Код: Выделить всё
'/[кk][рp][аa@][кk][еe][нnh]/ui', // кракен
'/\b[кkсc][аa@][зzs3][иi1][нn][оo0]\b/ui', // казино
// '/\b[вv][уyu][лl][кk][аa][нnh]\b/ui', // вулкан (внес заранее на всякий случай, если будут спамить им)
Версия 1.0.1 и 1.0.2 ничего не пропускает (из регулярки убрана проверка на границу слова), но блокирует слова, в составе которых которых обнаруживает стоп-слово (например стоп-слово вулкан и слово вулканология будут блокироваться). Немного неудобно, но зато надежно.
При отправке сообщения со стоп-словом показывается сообщение: Расширение нужно улучшить, чтобы оно срабатывало и на другие расширения, на Галереи, Карты, Блоги, Библиотеку, Личные сообщения и т.д.
Возможно стоит сделать так, чтобы при срабатывании расширения спамер блокировался (или удалялся) автоматом.
Версия 1.0.2
Теперь в папке расширения появился файл blacklist.txt, куда можно занести слова, которыми спамят на форуме. Причем неважно латиницей или кириллицей будет записано стоп-слово, расширение распознает спам независимо от алфавита.
Каждое слово надо писать с новой строки. Можно оставлять комментарий в файле, но перед ним должна быть #.
Расширение из этих слов само строит регулярки и будет блокировать стоп-слова слова, невзирая на то, как их будут пытаться маскировать спамеры (смешением алфавита, невидимыми символами между буквами и т.д.).
Если вдруг спамеры придумают нестандартную замену какой-либо буквы каким-нибудь символом (чтобы обойти данное расширение), то этот символ надо внести в код расширения в файл main_listener.php в секцию $map напротив той буквы, которую пытаются "подменить".
Пример:
Код: Выделить всё
'е' => 'еe€ё℮' // Добавили к предыдущим символам символ ℮ как вариант "e"
Если, по каким-то причинам файл blacklist.txt станет недоступным или окажется пуст, то расширение будет работать по своим жестко заданным в коде регуляркам по жестко записанным в его коде стоп-словам (они такие же как и стоп-слова в предыдущих версиях расширения).
Расширение обновлено.
В версии 1.0.3 реализованы черный и белый списки.
В белый список можно занести слова, которые надо, чтобы антиспам пропускал. Белый список над черным имеет приоритет.
Также в расширении реализовано два режима работы агрессивный и мягкий.
Режим работы задается в коде расширения переключателем true и false.
true - ищет любое вхождения стоп-слова в составное слово и блокирует его (в этом случае и вулкан и вулканология заблокируются), false - ищет только целые слова (в этом случае вулкан заблокируется, а вулканология нет).
Режим работы задается в этой строчке:
Код: Выделить всё
protected $aggressive_mode = true;
По умолчанию стоит true.
Также из кода расширения (и из изначального blacklist.txt) убрано стоп-слово вулкан, так как спамеры не используют его без слова казино, поэтому это слово лишнее.
С этими настройками уже можно гибко бороться со спамом, особо не задевая юзеров.
Небольшое пояснение:
В черном списке у меня занесено .cc, эта запись блокирует все домены .сс, таким образом можно оперативно заблокировать любые домены на которые ссылаются спамеры.
Так же есть запись kre, я заметил, что все названия сайтов на этого "кальмара" включают эти символы, поэтому тоже заблокировал это сочетание символов. Если вам это не нужно блокировать, то эти записи из черного списка можно удалить.
Возможно, в связи с разрастанием функций у расширения, настройку списков и расширения надо переносить в ACP (пока не знаю как
