anti-advert without the main chat
 

News:

29 December 2022 - PtokaX 0.5.3.0 (20th anniversary edition) released...
11 April 2017 - PtokaX 0.5.2.2 released...
8 April 2015 Anti child and anti pedo pr0n scripts are not allowed anymore on this board!
28 September 2015 - PtokaX 0.5.2.1 for Windows 10 IoT released...
3 September 2015 - PtokaX 0.5.2.1 released...
16 August 2015 - PtokaX 0.5.2.0 released...
1 August 2015 - Crowdfunding for ADC protocol support in PtokaX ended. Clearly nobody want ADC support...
30 June 2015 - PtokaX 0.5.1.0 released...
30 April 2015 Crowdfunding for ADC protocol support in PtokaX
26 April 2015 New support hub!
20 February 2015 - PtokaX 0.5.0.3 released...
13 April 2014 - PtokaX 0.5.0.2 released...
23 March 2014 - PtokaX testing version 0.5.0.1 build 454 is available.
04 March 2014 - PtokaX.org sites were temporary down because of DDOS attacks and issues with hosting service provider.

Main Menu

anti-advert without the main chat

Started by Pieltre, 22 January, 2004, 09:03:43

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Pieltre

Hi,

I got this anti-advert script, but it does the job too well. I'd like to edit it so it doesn't kick user when they mention other hubs or servers in the main chat, only when they do in PMs.  Here's the script:

-Lucifer 6.6.6-- updated version

--This is a Powerful AntiAdvertising Script
--Powered by Demone.Astaroth and OpiumVolage

--History: Base='multiline antiadvertise' by OpiumVolage (your tables simplify the work I did until that moment). Here its features:
--             1)Script can block this types of advertisement: A) example.no-ip.com
--                      B) e x a m p l e . n o - i p . c o m
--                      C)example.
--                         no-
--                         ip.
--                         com
--                      D)e
--                         x
--                         a
--                         m
--                         p
--                         l
--                         e
--                         .
--                         n
--                         o
--                         -                     
--                         i
--                         p
--                         .
--                         c
--                         o
--                         m
--             2)You can insert valid addresses (like yours) in trigs, so bot won't kick you
--             3)Users conversating with ops don't get kicked
--             4)Why the Timer? It cleans memory.

--             Demone.Astaroth addons: 1)added an huge list of addresses
--                  2)When advertising: user advised on Pm before disconnection; Bot sends to all in main chat the kicking

message (without IP);
--                                            advertise-infos send to Op-chat directly without troubling any Op with Pms! Infos contain user's IP, user

To(if PM) and last message
--                  Just replace INSERT.HERE.YOUR.OP-CHAT.NAME fields with yours.
--                                 3)inserted Disconnect and TimeBan (15 minutes) instead of gagging user
--                  4)Prevented very splitted addresses (with more tabAdvert lines)
--                                         5)added Control-addresses: user isn't kicked for these addresses but Ops are informed in any case.
--                                                                                      this is useful for friend-hubs addresses, if u also want to control them
--                                          6)added ControlUser status: if u're scary about your vips advertising their hubs and stealing you user,
--                                                                                        you can't insert the tag [VIP] or anything else in the specific space: they will not
--                                                                                          get kicked for any addresses, but in case of typing a Control-address, Ops will be
--                                                                                             informed.
--                                         7)Fixed some bug (Thanks Opium)
--               8)Added a new string-pieces find way to catch advertises

BotName = "Wolland"

advtrigs = {"dns2go","myftpsite","servebeer","mine.nu","ip.com","dynip","depecheconnect.com","zapto.org",
   "staticip","serveftp","ipactive","ip.org","no-ip","servegame","gotdns.org","ip.net","ip.co.uk",
   "ath.cx","dyndns","68.67.18.75","clanpimp","idlegames","sytes","unusualperson.com",
   "24.184.64.48","uni.cc","151.198.149.60","homeunix","24.209.232.97","ciscofreak.com",
   "deftonzs.com","24.187.50.121","flamenap","xs4all","serveftp","point2this.com","ip.info",
   "myftp","d2g","151.198.149.60","24.184.64.48","orgdns","myip.org","stufftoread.com",
   "ip.biz","dynu.com","mine.org","kick-ass.net","darkdata.net","ipme.net","udgnet.com","homeip.net",
   "e-net.lv","newgnr.com","bst.net","bsd.net","ods.org","x-host","bounceme.net","myvnc.com",
   "kyed.com","lir.dk","finx.org","sheckie.net","vizvaz.net","snygging.net","kicks-ass.com","nerdcamp.net",
   "cicileu.","3utilities.com","myftp.biz","redirectme.net","servebeer.com","servecounterstrike.com",
   "servehalflife.com","servehttp.com","serveirc.com","servemp3.com","servepics.com","servequake.com",
   "damnserver.com","ditchyourip.com","dnsiskinky.com","geekgalaxy.com","net-freaks.com","ip.ca",
   "securityexploits.com","securitytactics.com","servehumour.com","servep2p.com","servesarcasm.com",
   "workisboring.com","hopto","64.246.26.135","213.145.29.222","dnsalias"}

validtrigs = {"myhub.no-ip.com","multihub2.no-ip.com", "greatfriend.no-ip.com"} --insert here your addresses (like yours or multihub ones or

great friend's hub ;) )

controltrigs={["classicalmusicke.no-ip.info"]=1,["grandclassic.serveftp.org"]=2,["pieltre.serveftp.com"]=3, ["hub4"]=4, ["hub5"]=5} --insert here

addresses you want to be informed (no kick)

tabAdvert = {}

function Main()
   frmHub:RegBot(BotName)
   SetTimer(60000)
   StartTimer()
end

function OnTimer()
   for key, value in tabAdvert do
      if (tabAdvert[key].iClock > clock()+60) then
         tabAdvert[key]=nil
      end
   end
end

function DataArrival(user, data)
   if not user.bOperator then
      if strsub(data, 1, 1) == "<" then
         local _, _, msg = strfind(data, "^%b<>%s+(.*)|")
         if Verify(user.sName, msg) then
            catch=strsub(user.sName,1,5)         --5 is counting chars of the tag below: if u change [VIP], change it!
            if catch=="[VIP]" then                  --ControlUser status : insert users Tag u don't want to get kicked
            else
               tabAdvert[user.sName]=nil
               SendToAll( BotName, user.sName.." get slaughtered by Lucifer for advertising!")
               user:SendPM(BotName, "Please don't advertise for other hubs!")
               user:Disconnect();
               user:TimeBan(15);
               s,e,onlymes = strfind(data, "%b<> (.*)")
               SendPmToOps ("Pythia", "User "..user.sName.." with IP "..user.sIP.." advertised in main chat

saying: "..onlymes.."")
            end
         end
         for key, value in controltrigs do
            if( strfind( strlower(data), key) ) then
               s,e,onlymes = strfind(data, "%b<> (.*)")
               SendPmToOps ("Pythia", "Control: User "..user.sName.." with IP "..user.sIP.." told in main:

"..onlymes.."")
            end
         end

         spam=0
         if( strfind( strlower(data), "no",1,1) ) and ( strfind( strlower(data), "ip.",1,1) ) then
            if ( strfind( strlower(data), "com",1,1) ) or ( strfind( strlower(data), "org",1,1) ) or ( strfind( strlower(data),

"info",1,1) ) then
         spam=spam+1; end; end;

         if( strfind( strlower(data), "dns",1,1) ) and ( strfind( strlower(data), "2",1,1) ) and ( strfind( strlower(data), "go",1,1) )

then
         spam=spam+1; end

         if( strfind( strlower(data), "dy",1,1) ) and ( strfind( strlower(data), "nu",1,1) ) then
            if( strfind( strlower(data), ".net",1,1) ) or ( strfind( strlower(data), ".com",1,1) ) then
         spam=spam+1;end; end

         if( strfind( strlower(data), "d n s a",1,1) ) or ( strfind( strlower(data), "d n s .",1,1) ) or ( strfind( strlower(data), "d n s

2",1,1) ) or ( strfind( strlower(data), "o d s .",1,1) ) or ( strfind( strlower(data), "d y n",1,1) ) then
         spam=spam+1;end
   
         if spam>0 then
               SendToAll( BotName, user.sName.." get slaughtered by Lucifer for advertising!")
               user:SendPM(BotName, "I slaughtered you! Don't try again to advertise!")
               user:Disconnect();
               user:TimeBan(15);
               s,e,onlymes = strfind(data, "%b<> (.*)")
               SendPmToOps ("Pythia", "User "..user.sName.." with IP "..user.sIP.." advertised in main chat

saying: "..onlymes.."")
         end






      elseif strsub(data, 1, 4) == "$To:" then
         local _, _, to, from, msg = strfind(data, "^%$To:%s+(%S+)%s+From:%s+(%S+)%s-%$%b<>%s+(.*)|")
         local nick = GetItemByName(to)
         if not nick.bOperator then
            local userdata = to.." "..from
            if Verify(userdata, msg) then
               catch=strsub(user.sName,1,16)
               if catch=="['??SemiDeus??']" then
               else
                  tabAdvert[userdata] = nil
                  SendToAll( BotName, user.sName.." get slaughtered by Lucifer for advertising!")
                  user:SendPM(BotName, "I slaughtered you! Don't try again to advertise!")
                  user:Disconnect();
                  user:TimeBan(15);
                  s,e,whoTo,from,mes =

strfind(data,"$To:%s+(%S+)%s+From:%s+(%S+)%s+$%b<>%s+(.*)")  
                  SendPmToOps ("INSERT.HERE.YOUR.OP-CHAT.NAME", "User "..user.sName.."

with IP "..user.sIP.." advertised in main chat saying to "..whoTo.." this: "..mes.."")
               end
            end
            for key, value in controltrigs do
               if( strfind( strlower(data), key) ) then
                  s,e,whoTo,from,mes =

strfind(data,"$To:%s+(%S+)%s+From:%s+(%S+)%s+$%b<>%s+(.*)")  
                  SendPmToOps ("INSERT.HERE.YOUR.OP-CHAT.NAME", "Control: User

"..user.sName.." with IP "..user.sIP.." said to "..whoTo.." this: "..mes.."")
               end
            end

            spam=0
            if( strfind( strlower(data), "no",1,1) ) and ( strfind( strlower(data), "ip.",1,1) ) then
               if ( strfind( strlower(data), "com",1,1) ) or ( strfind( strlower(data), "org",1,1) ) or ( strfind(

strlower(data), "info",1,1) ) then
            spam=spam+1; end; end;

            if( strfind( strlower(data), "dns",1,1) ) and ( strfind( strlower(data), "2",1,1) ) and ( strfind( strlower(data),

"go",1,1) ) then
            spam=spam+1; end
   
            if( strfind( strlower(data), "dy",1,1) ) and ( strfind( strlower(data), "nu",1,1) ) then
               if( strfind( strlower(data), ".net",1,1) ) or ( strfind( strlower(data), ".com",1,1) ) then
            spam=spam+1;end; end
   
            if( strfind( strlower(data), "d n s a",1,1) ) or ( strfind( strlower(data), "d n s .",1,1) ) or ( strfind(

strlower(data), "d n s 2",1,1) ) or ( strfind( strlower(data), "o d s .",1,1) ) or ( strfind( strlower(data), "d y n",1,1) ) then
            spam=spam+1;end
      
            if spam>0 then
                  SendToAll( BotName, user.sName.." get slaughtered by Lucifer for advertising!")
                  user:SendPM(BotName, "I slaughtered you! Don't try again to advertise!")
                  user:Disconnect();
                  user:TimeBan(15);
                  s,e,whoTo,from,mes =

strfind(data,"$To:%s+(%S+)%s+From:%s+(%S+)%s+$%b<>%s+(.*)")  
                  SendPmToOps ("INSERT.HERE.YOUR.OP-CHAT.NAME", "User "..user.sName.."

with IP "..user.sIP.." advertised in main chat saying to "..whoTo.." this: "..mes.."")
            end
         end
      end
   end
end

function Verify(userdata, msg)
   if not msg then return end
   tmp =""
   gsub(strlower(msg), "([a-z0-9.:%-])", function(x) tmp = tmp..x end)
   if not tabAdvert[userdata] then
      tabAdvert[userdata] = { iClock = clock(), l1 = "", l2 = "", l3 = "", l4= "", l5= "",l6= "",l7= "",l8= "",l9 = tmp}
   else
      tabAdvert[userdata].iClock = clock()
      tabAdvert[userdata].l1 = tabAdvert[userdata].l2
      tabAdvert[userdata].l2 = tabAdvert[userdata].l3
      tabAdvert[userdata].l3 = tabAdvert[userdata].l4
      tabAdvert[userdata].l4 = tabAdvert[userdata].l5
      tabAdvert[userdata].l5 = tabAdvert[userdata].l6
      tabAdvert[userdata].l6 = tabAdvert[userdata].l7
      tabAdvert[userdata].l7 = tabAdvert[userdata].l8
      tabAdvert[userdata].l8 = tabAdvert[userdata].l9
      tabAdvert[userdata].l9 = tmp
   end
   local Lines =

tabAdvert[userdata].l1..tabAdvert[userdata].l2..tabAdvert[userdata].l3..tabAdvert[userdata].l4..tabAdvert[userdata].l5..tabAdvert[userdata].l6..tabAd

vert[userdata].l7..tabAdvert[userdata].l8..tabAdvert[userdata].l9
   for key, value in advtrigs do
      if (strfind(Lines, strlower(value), 1, 1)) then
         for key2, value2 in validtrigs do
            if (strfind(Lines, strlower(value2), 1, 1)) then
               return nil
            end
         end
         return 1
      end
   end
end


thanks in advance,
pieltre

NightLitch

Well I must say that this script doesn't do the work it should... Yes it kicks when typing advertising's, BUT!

It also kicks users IF the type an Allowed HUBADDRESS or SITE.

This is a powerfull script indeed but test my advise and be a user
a type an allowed hubaddress you will get kicked for it.
//NL

Pieltre

Hi,

thanks for your reply. I was wondering if you knew of one that worked well, from your own experience.  Of course, as you imagine, I already checked myself, but since i'm rather lua illiterate, I can't really tell if the script works or not, until I see my users go mad or I hear from a user on a board that I've used a dead dumb script...

cheers,
pieltre

plop

QuoteOriginally posted by Pieltre
Hi,

thanks for your reply. I was wondering if you knew of one that worked well, from your own experience.  Of course, as you imagine, I already checked myself, but since i'm rather lua illiterate, I can't really tell if the script works or not, until I see my users go mad or I hear from a user on a board that I've used a dead dumb script...

cheers,
pieltre
this works well and can easely be modified 2 only filter pm's.
and it's friendlyer, doesn't kick @ all.
works by replacing the url's for your own.

plop
http://www.plop.nl lua scripts/howto\'s.
http://www.thegoldenangel.net
http://www.vikingshub.com
http://www.lua.org

>>----> he who fights hatred with hatred, drives the spreading of hatred <----<<

SMF spam blocked by CleanTalk