Настройка Антирекламы |
Здравствуйте, гость ( Вход | Регистрация )
Настройка Антирекламы |
16.11.2008, 23:04
Сообщение
#1
|
|
lua-паддаван Группа: Пользователи Сообщений: 75 Регистрация: 1.7.2008 Из: www.u-l.ru Пользователь №: 114 Спасибо сказали: 29 раз |
есть скрипт антирекламы (может кому и пригодится) , не хочет реагировать на сочетание :411
CODE MainBot = SetMan.GetString(21) -- Имя главного бота BotReg = 1 -- Регистрировать ли бота на хабе (1-да/0-нет) tWhomToSend = { -- профили, которые получат сообщение: [0] = 1, -- админы } RekProfAllow = { -- Профили пользователей, которым разрешена реклама [0]=1, -- Мастер [1]=1, -- Оператор [2]=0, -- VIP [3]=0, -- Зарегистрированный пользователь [4]=1, -- Server [-1]=0, -- Незарегистрированный пользователь } MatProfAllow = { -- Профили пользователей, которым разрешено использовать нецензурные выражения [0]=1, -- Мастер [1]=1, -- Оператор [2]=0, -- VIP [3]=0, -- Зарегистрированный пользователь [4]=1, -- Server [-1]=0, -- Незарегистрированный пользователь } adverTable = { -- Маска запрещенных сочетаний при проверке на рекламу "%S+%.%S+%.%S+.*[41??]%s*[10??]%s*[14??]%s*[2]?[1]?", "[dD]%s*[cC]%s*[hH]%s*[uU]%s*[bB]%s*:%s*/%s*/", "%d%d%?%d?%.%d%d%?%d?%.%d%d%?%d?%.%d%d%?%d?%s*:%s*[14][410][14][2]?[1]?", "%d*%.%d*%.%d*%.%d*%s*:", "%s*[411]", } safeTable = { -- Маска исключений для рекламы "[hH]%s*[tT]%s*[tT]%s*[pP]%s*:%s*/%s*/", "%s*[27015]", "%.%.%.%.%.", "%?%?%?%?%?", "%$%$%$%$%$", } matTable = { -- Маска запрещенных сочетаний при проверке на мат (достаточно писать только строчными буквами) "[бБ]%s*[лЛ]%s*[яЯ]", "[хХ]%s*[уУ]%s*[йЙ]", "[хХ]%s*[аА]%s*[бБ]", "[hH]%s*[uU]%s*[bB]", "[dD]%s*[cC]", "[аА]%s*[дД]%s*[рР]%s*[еЕ]%s*[сС]", "[cC]%s*[tT]%s*[rR]%s*[lL]", } excTable = { -- Маска исключений для мата } MatSubs = "}:-[ <вырезано цензурой> }:-[" Texts = { -- Стандартные технические сообщения (изменять не рекомендую) " Внимание! Реклама хабов категорически запрещена.", " Внимание! Вероятная попытка несанкционированной рекламы! Пользователь", " сказал в общий чат следующую фразу:", " сказал в приват следующую фразу:", " Внимание! Оскорбительный мат на хабе запрещен. Уважайте окружающих.", " Внимание! Вероятная попытка использования мата или рекламы ! Пользователь", } MessageToAll = { "Народ, кто хочет выпить пива? Угощаю.", "У меня сегодня праздник! Проставляюсь всем!", "Постучите мне по голове, чтобы я проснулся.", "Ау, где я?", "Народ. Ау. Где я?", "Что здесь происходит?", "Больше так пить не буду.", "Хочу быть взрослым.", "Хочу быть умным.", "Почему у меня усы не растут?", "На какую кнопку нужно нажимать чтобы выключить комп?", "абыРвалГ", "Народ. Какое сегодня число?", "Народ. Какой сегодня месяц?", "Не понял.", "Мои мысли, мои скакуны.", "Раздолбай я, раздолбай.", "Пора менять клавиатуру.", "Кому подарить 100$.", "У меня сегодня просто замечательное настроение", "У компьютера должны моргать лампочки или это у меня с глазами что-то?", "Здесь есть доктор?", "Что так сильно может гудеть в компьютере?", "Сейчас день или ночь?", "Кому нужны слоты? Могу отдать бесплатно, мне они больше не нужны.", "Ой. Что это?", "Отсосу задёшево;)", } sReason = "Нарушение правил хаба. Ищите другое место для рекламы своего хаба !!!" function OnStartup() if BotReg==1 then Core.RegBot(MainBot,"","",true) end PhrasLen = table.maxn(MessageToAll) end function ChatArrival(user,data) Core.GetUserAllData(user) local s,e,msg = string.find(data,"%b<>%s*(.*)%|") msg = StringLower(msg) if not (RekProfAllow[user.iProfile]==1) then if checkForAdvertising(msg) then if checkForSafe(msg) then return false end Core.SendToAll("<"..user.sNick.."> "..MessageToAll[math.random(PhrasLen)]) SendToOps("<"..MainBot.."> "..Texts[2].." "..user.sNick.." ["..user.sIP.."] "..Texts[3].." "..msg) Core.SendToNick(user.sNick,"<"..MainBot.."> *** "..Texts[1]) BanMan.TempBan(user,0,sReason,MainBot,true) Core.Disconnect(user) return true end end if not (MatProfAllow[user.iProfile]==1) then if checkForMat(msg) then if checkForExc(msg) then return false end SendToOps("<"..MainBot.."> "..Texts[6].." "..user.sNick.." ["..user.sIP.."] "..Texts[3].." "..msg) -- Core.SendToAll("<"..user.sNick.."> "..MatSubs) -- return true end end collectgarbage("collect") end function ToArrival(user,data) Core.GetUserAllData(user) local s,e,to,from,msg=string.find(data,"%$To:%s(%S+)%sFrom:%s%S+%s$<(%S+)%>%s(.*)$") msg = StringLower(msg) if not (RekProfAllow[user.iProfile]==1) then if checkForAdvertising(msg) then if checkForSafe(msg) then return false end Core.SendToAll("<"..user.sNick.."> "..MessageToAll[math.random(PhrasLen)]) SendToOps("<"..MainBot.."> "..Texts[2].." "..user.sNick.." ["..user.sIP.."] "..Texts[4].." "..msg) Core.SendToNick(user.sNick,"<"..MainBot.."> *** "..Texts[1]) BanMan.TempBan(user,0,sReason,MainBot,true) return true end end if not (MatProfAllow[user.iProfile]==1) then if checkForMat(msg) then if checkForExc(msg) then return false end SendToOps("<"..MainBot.."> "..Texts[6].." "..user.sNick.." ["..user.sIP.."] "..Texts[4].." "..msg) -- return true end end collectgarbage("collect") end function checkForAdvertising(msg) for _,v in ipairs(adverTable) do if string.find(msg, v) then return true end end return false end function checkForSafe(msg) for _,v in ipairs(safeTable) do if string.find(msg, v) then return true end end return false end function checkForMat(msg) for _,v in ipairs(matTable) do if string.find(msg, v) then return true end end return false end function checkForExc(msg) for _,v in ipairs(excTable) do if string.find(msg, v) then return true end end return false end function StringLower(msg) local res = "" local Byte, Len = nil, string.len(msg) msg = string.lower(msg) for i = 1, Len do Byte = string.byte(msg, i) if (Byte >= 192) and (Byte < 224) then Byte = Byte + 32 end if (Byte == 168) or (Byte == 184) then Byte = 229 end res = res..string.char(Byte) end return res end SendToOps = function( sMsg ) for iProf, bAccess in pairs(tWhomToSend) do if bAccess == 1 then Core.SendToProfile(iProf, sMsg) end end end уже час бьюсь , не реагирует и всё тут , помоги настроить а то я уж не совсем знаток в регулярных выражениях |
|
|
16.11.2008, 23:20
Сообщение
#2
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Код "%s*:411%s*" данное выражение отлавливает в чате :411
|
|
|
16.11.2008, 23:30
Сообщение
#3
|
|
lua-паддаван Группа: Пользователи Сообщений: 75 Регистрация: 1.7.2008 Из: www.u-l.ru Пользователь №: 114 Спасибо сказали: 29 раз |
|
|
|
17.11.2008, 2:18
Сообщение
#4
|
|
Участник Группа: Пользователи Сообщений: 32 Регистрация: 4.11.2008 Пользователь №: 983 Спасибо сказали: 1 раз |
вылажи целеком файлом плз :P
|
|
|
17.11.2008, 2:35
Сообщение
#5
|
|
lua-паддаван Группа: Пользователи Сообщений: 75 Регистрация: 1.7.2008 Из: www.u-l.ru Пользователь №: 114 Спасибо сказали: 29 раз |
вылажи целеком файлом плз :P ну собственно код уже есть в первом сообщении ... Из подробностей этой антирекламы
скрипт был создан путём скрещивания большинства антирекламных скриптов все настройки и предпочтения легко изменяются и дополняются под вас
Прикрепленные файлы
|
|
|
20.11.2008, 9:12
Сообщение
#6
|
|
Наруто на аваторке Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза |
а зачем на порты уже антиреку ставить?.... для меня не понятно :(
|
|
|
20.11.2008, 17:09
Сообщение
#7
|
|
Продвинутый участник Группа: Пользователи Сообщений: 105 Регистрация: 21.8.2008 Из: Москва Пользователь №: 404 Спасибо сказали: 1 раз |
Артём, этого и много другого ты уже то4но не поймёш.. смирись..
|
|
|
20.11.2008, 22:53
Сообщение
#8
|
|
Наруто на аваторке Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза |
|
|
|
Похожие темы
|
Сейчас: 24.11.2024, 2:17 |