Проект «Ласточка»
– бот с функционалом антиспама и антимататекущая реализация: для telegram
- Описание
- Список изменений
- Как пользоваться системой Антимат
- Как пользоваться системой Антиспам
– «быстрый» старт - Режим «Солидарности»
- «Списки друзей»
- Дорожная карта развития бота
- Обратная связь
Описание:
- Написан на C#
- Антимат базируется на собственных разработках, за основу взят sbw3.tcl
- Имеются словари мата и исключений
- Антиспам разработан с нуля на механиках оценки и самообучения
- Гибкая настройка режимов поведения всех систем
- Бот ведет поканальный учет событий
- Есть режим «солидарности»
Как пользоваться системой Антимат
Бот предназначен для чатов имеющих тип Group и Supergroup.Для полноценного функционирования бота, его необходимо пригласить в группу и назначить ему права администратора.
!Бот может существовать в канале без прав администратора, но в этом случае он лишь ведет учет событий для оценки и самообучения.
Все команды бота доступны только администраторам группы!
- !bw – все команды антимата начинаются с префикса !bw
- !bw ver (!bw version) – отображает версию системы антимат
- !bw stat – отображает объем словаря антимата
- !bw help – вывод справки по командам системы антимат
- !bw on (!bw enable) – включает систему антимат в чате
- !bw off (!bw disable) – выключает систему антимат в чате
- !bw test [текст] – ручная проверка текста на срабатывание системы антимат
- !bw status (!bw config) – отображает текущие настройки системы антимат в группе
- !bw set [опция=значение] (!bw mod [опция=значение]) – изменений опций системы антимат
- Опции системы антимат:
- warns – допустимые значения 0, 1, true, false - включает или выключает систему предупреждений
- warntimes – допустимые значения от 0 и больше (int32) - количество предупреждений, после которых последует бан
- bantime – время бана в минутах, допустимые значения от 0 и больше
- cleanup – время удаления собственных сообщений бота (предупреждения) в минутах
Команды и настройки системы антимата:
- Если система предупреждений выключена (warns=0) – бот только удаляет сообщение с нецезурной лексикой
- Если система предупреждений включена (warns=1) но количество предупреждений = 0 (warntimes=0) – бот удаляет сообщение и банит пользователя
- Если система предупреждений включена (warns=1) и количество предупреждений > 0 (warntimes=3, например) – бот выносит предупреждения пользователю, и только когда их будет сколько указано в warntimes, банит его
- Если bantime=0, бан будет бессрочным
Поведение при разных режимах работы антимата:
Как пользоваться системой Антиспам
Бот предназначен для чатов имеющих тип Group и Supergroup.Для полноценного функционирования бота, его необходимо пригласить в группу и назначить ему права администратора.
!Бот может существовать в канале без прав администратора, но в этом случае он лишь ведет учет событий для оценки и самообучения в режиме солидарности.
Все команды бота доступны только администраторам группы!
- !antispam – все команды антиспама начинаются с префикса !antispam
- !antispam ver – версия системы антиспам
- !antispam help – вывод справки системы антиспам
- !antispam stat – отображает объем словаря антиспама
- !antispam test [текст] – проверка скоринга сообщения системы антиспам
- !antispam on (!antispam enable) – включение системы антиспам
- !antispam off (!antispam disable) – выключение системы антиспам
- !antispam status (!antispam config) – вывод настроек системы антиспам в чате
- !antispam set [опция=значение] (!antispam mod [опция=значение]) – изменение настроек системы антиспам в чате
- Опции системы антиспам:
- spamscore – допустимые значения от 2 до 99 - количество баллов по системе оценки
антиспам, за
которые последует реакция
ВНИМАНИЕ! Чем меньше spamscore, тем больше ложнопозитивных срабатываний, рекомендуемое значение 5 - spamscorefwd – допустимые значения от 2 до 99 - прибавка баллов за пересылаемое сообщение
- ownforward – значения 1, 0, true, false, on, off – учитывать репост собственных сообщений пользователя
- ownchatforward – значения 1, 0, true, false, on, off – учитывать репост сообщений из этого же канала
- daystounban – допустимые значения от 1 до 365 - срок бана за спам, в сутках
- premiumaffix – значения 1, 0, true, false, on, off – учитывать наличие премиума как негативный фактор (+1 балл)
- report – значения 1, 0, true, false, on, off – включает/выключает отчеты по блокировкам
- reportto – идентификатор канала (@channelname) на который отсылать отчеты по блокировкам, по умолчанию в тот же канал
- reportcopy – значения 1, 0, true, false, on, off – включает/выключает пересылку копии заблокированного сообщения (только если отчеты в другой канал)
- cleanup – время удаления отчетов о блокировках в минутах
- solidarity – значения 1, 0, true, false, on, off – включает/выключает режим "солидарности" (см.далее)
- newjoinsilence – значение в минутах (0 - выкл), время с момента захода на канал, в течение которого запрещены репосты и ссылки считаются как однозначный спам
- restrictnewjoinmedia – включает/выключает ограничение пользователя на время "знакомства" в правах на отправку любых медиа, за исключением текстовых сообщений
- restrictblacklisted – включает/выключаент блокировку входящих пользователей по "черному списку"
- reactions – включает/выключает обнаружение спама реакциями
- maxreactions – количество допустимых реакций за интервал времени
- reactionsinterval – интервал времени в секундах, в течение которого аккумулируются реакции пользователя
- reactonfriends – значения 0/1, off/on, false/true – при выключении, сообщения пользователей, добавленных в список друзей, не проверяются на спам, при включении - если сообщения определяются как спам, они удаляются
Команды и настройки системы антимата:
Данный пример включает систему Антиспам, пороговое значение баллов для реакции = 5, прибавка баллов за репост = 2, бан за спам на 7 дней, прибавка балла за наличие премиума, отчеты по блокировкам в чате, автоудаление сообщений бота через 3 минуты, режим "солидарности", режим знакомства с гостем на 180 минут, обнаружение спама реакциями с порогами не более 15 реакций за 60 секунд.
«Быстрый» старт
Для запуска бота необходимо обладать правом делегировать права администратора в чате
- Последовательность действий для быстро запуска антиспама в чате
- Приглашаем\добавляем бота в чат с правами администратора
- В приватном чате с ботом (в личных сообщениях) набираем команду /start
- Выбираем в списке доступных чатов нужный вам чат и переходим в настройки антиспама
- Включаем антиспам – самый первый пункт. С этого момента антиспам стартует с рекомендованными настройками.
- Рекомендации по дополнительной настройке бота
- в чате можно сразу добавить определенных пользователей в список «друзей», что
предоставит им автоматический иммунитет от срабатываний системы антиспам:
- доступные способы:
- командой /addfriend ответом на пост нужного вам пользователя в чате
- командой /addfriend в чате с указанием uid пользователя (или @username, но при условии что боту ранее попадались сообщения от пользователя) – uid можно подсмотреть в профиле пользователя в desktop версии клиента при включении соответствующей экспериментальной опции в настройках
- командой /addfriend в личных сообщениях бота с указанием чата и uid/@username пользователя, например /addfriend @mychat @myfriend
- рекомендуется подключиться к чату @xzdevru для отслеживания изменений в боте, а так же для оперативной обратной связи
Режим «Солидарности»
– данный режим применим к системе Антиспам
Если в текущем групповом чате включен режим «солидарности», при обнаружении спама бот будет блокировать спамера как в данном чате, так и в других чатах, где бот присутствует, включена система антиспам и включен режим «солидарности».
Если в текущем групповом чате отключена система Антиспам, но включен режим «солидарности», бот при обнаружении спама по усредненной бальной шкале будет помечать потенциального спамера как угрозу и любое последующее сообщение в любом из чатов где присутствует бот, включен антиспам и включен режим солидарности, будет иметь повышенный балл при оценке на спам.
«Списки друзей»
– данные списки определяют привилегированную категорию пользователей чата не имеющих статуса администратора
Списки индивидуальные для каждого чата. На текущий момент пользователи занесенные в список друзей имеют следующие привилегии:
- Защита от бана при работе системы антимат
- Защита от бана при работе системы антиспам
- Доступ к команде !report, которая призывает бота отреагировать на сообщение
- Команды управления списком друзей:
- !addfriend - можно использовать как ответ на сообщение того, кого хотим добавить в список друзей канала, либо же передав в качестве параметра @username (работает при условии что ранее пользователь оставлял сообщения в присутствии бота)
- !listfriends - выводит список друзей канала
- !delfriend - удаляет из списка друзей канала, можно по аналогии с !addfriend можно использовать как ответ на сообщение, либо с указанием @username
Дорожная карта развития бота:
-
Краткосрочные планы:
- Локализация системы антиспам для аудиторий других стран
- Опциональное подключение локальных кодировок (языковых таблиц, помимо кириллицы\латиницы)
- Расширение документации по функционалу
- Долгосрочные планы:
- Геораспределенная кластеризация бота для повышения отказоустойчивости
- Открытие исходных кодов под свободной лицензией
Обратная связь
Чат в телеграме для обратной связи: @xzdevru- рекомендации по настройкам, в том числе "под ключ"
- предложения и пожелания по развитию функционала бота
- ошибки, недоработки и замечания
- апелляция пользователей по «черному списку»
- обмен опытом (для разработчиков)