myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 

> Defend PM, API 2 | Полностью автоматическая защита ЛС от спама

Теги
Нет тегов для показа
Enyby
сообщение 21.1.2012, 14:11
Сообщение #21


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 391
Регистрация: 4.11.2009
Из: Дом
Пользователь №: 4 923
Спасибо сказали: 239 раз




Название скрипта: Defend PM
Версия скрипта: 1.01
Платформа: PtokaX
Версия API: API2
Автор: Enyby

Описание: Скрипт предназначен для полностью автоматической защиты ЛС пользователей от спама. Выдает бан, при обнаружении спама.

Принципы работы скрипта:
Обычные пользователи отличаются от спамеров тем, что у обычных пользователей, если и пройдет ссылка на хаб, IP адрес или что-то подобное, то это будет разово. На этом и основана работа скрипта.
При получении ЛС оно проверяется на наличие стоп слов. Если стоп слова найдены, то список спамера пополняется очередным ником. Если ников стало больше предела уведомления операторов, то операторы уведомляются. Если больше предела предупреждений - пользователь предупреждается. Если больше либо равно пределу бана - пользователь уходит в бан.
Периодически запускается очистка, которая убирает по одному нику из списка спамера.
Таким образом идет учет количества отспамленных в интервале проверки. Чтобы спамить безнаказанно, нужно писать новым пользователям не чаще 1 раза в интервал. По умолчанию интервал 5 минут.

Прикрепленный файл  DefendPM.lua ( 4.05 килобайт ) Кол-во скачиваний: 304


P. S. Если у вас нет регистрации на этом форуме, а значит вы не можете качать вложения, то скачать этот скрипт, равно как и другие, можно по ссылке Мои скрипты.


Спасибо сказали:
Go to the top of the page
+Quote Post
2 страниц V  < 1 2  
Начать новую тему
Ответов
Enyby
сообщение 5.3.2012, 12:38
Сообщение #22


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 391
Регистрация: 4.11.2009
Из: Дом
Пользователь №: 4 923
Спасибо сказали: 239 раз




Чтобы сделать блокировку сообщений достаточно:
Код
                if iCount >= iBanLimit then
                    BanMan.TempBanIP(tUser.sIP, iTimeBan, "Спам по ЛС", sBot, true)
                    local sTimeBan = os.date("%d.%m.%Y %R", os.time() + iTimeBan*60)
                    sReport = sReport.."Пользователь забанен до "..sTimeBan..". "
                    local tUsers = Core.GetUsers(tUser.sIP)
                    if tUsers ~= nil then
                        for _, tSpamUser in pairs(tUsers) do
                            Core.SendToUser(tUser, "<"..sBot.."> *** Вы были забанены до "..sTimeBan.." за спам по ЛС.")
                            Core.Disconnect(tSpamUser)
                        end
                    end
                    tSpamUsers[tUser.sIP] = nil
                    sReport = sReport.."Отключено "..#tUsers.." пользователей."
                end
                if sReport ~= "" then
                    Core.SendToOps("<"..sBot.."> "..sReport)
                end
заменить на:
Код
                if iCount >= iBanLimit then
                    sReport = sReport.."Сообщение заблокировано. "
                end
                if sReport ~= "" then
                    Core.SendToOps("<"..sBot.."> "..sReport)
                end
                if iCount >= iBanLimit then
                    return true
                end


ADD:
Улучшенная детекция IP адреса:
Код
"[0-9]?[0-9]?[0-9].+[0-9]?[0-9]?[0-9].+[0-9]?[0-9]?[0-9].+[0-9]?[0-9]?[0-9]",
заменить на:
Код
"[^%d]%d?%d?%d[^%d]+%d?%d?%d[^%d]+%d?%d?%d[^%d]+%d?%d?%d[^%d]",
"^%d?%d?%d[^%d]+%d?%d?%d[^%d]+%d?%d?%d[^%d]+%d?%d?%d[^%d]",
"^%d?%d?%d[^%d]+%d?%d?%d[^%d]+%d?%d?%d[^%d]+%d?%d?%d$",
"[^%d]%d?%d?%d[^%d]+%d?%d?%d[^%d]+%d?%d?%d[^%d]+%d?%d?%d$",
вариант чуть по проще:
Код
"%d?%d?%d[^%d]+%d?%d?%d[^%d]+%d?%d?%d[^%d]+%d?%d?%d",


Спасибо сказали:
Go to the top of the page
+Quote Post
mod
сообщение 4.11.2018, 4:52
Сообщение #23


Активный участник
***

Группа: Пользователи
Сообщений: 63
Регистрация: 16.7.2010
Пользователь №: 7 288
Спасибо сказали: 0 раз




Код
Синтаксис C:\allservers\PtokaX\scripts\DefendPM.lua:122: bad argument #1 to 'date' (invalid conversion specifier '%R')
stack traceback:
    [C]: in function 'os.date'
    C:\allservers\PtokaX\scripts\DefendPM.lua:122: in function 'ToArrival'

0.5.0.3 версия
Go to the top of the page
+Quote Post
Ksan
сообщение 4.11.2018, 14:31
Сообщение #24


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 716
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 650 раз




mod, попробуйте вместо %R вставить %H:%M (либо %H:%M:%S, если хотите быть точным до секунд) в строке 122, на которую указывает приведённая вами ошибка.
Видимо, %R - это попытка представить время в удобном региональном формате, но Птока (ну или Луа, а то и вовсе ваша система) не поняла добрых намерений автора.


Спасибо сказали:
Go to the top of the page
+Quote Post

2 страниц V  < 1 2
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts Topic has attachmentsDefend Hub
API 2 | Полностью автоматическая защита хаба от активности ботов
3 Enyby 3 658 5.3.2012, 8:35 Посл. сообщение: Enyby
No New Posts Topic has attachmentsDefend Hub, RusHub edition
Полностью автоматическая защита хаба от активности ботов
6 Enyby 4 807 5.3.2012, 8:35 Посл. сообщение: Enyby
No New Posts Topic has attachmentsDefend Chat
API 2 | Полностью автоматическая защита чата от спама
5 Enyby 4 176 2.3.2012, 16:57 Посл. сообщение: Enyby
No New Posts Topic has attachmentsDefend Chat, RusHub edition
Полностью автоматическая защита чата от спама
1 Enyby 3 407 2.3.2012, 6:29 Посл. сообщение: ShadoWx
No New Posts Topic has attachmentsDefend PM, RusHub edition
Полностью автоматическая защита ЛС от спама
4 Enyby 4 227 1.3.2012, 9:17 Посл. сообщение: ShadoWx

 



RSS Сейчас: 16.11.2018, 1:02