Advertising Shield
 

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

Advertising Shield

Started by 6Marilyn6Manson6, 10 October, 2005, 19:48:59

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

6Marilyn6Manson6

--====[ Advertising Shield ]====--
-- Version: 1.0
-- By: NightLitch
-- Date: 2004-03-23
-- Converted by 6Marilyn6Manson6 by 10/09/2005
----------------------------------------------------
-- Set Botname
BotName = "-Adv-Shield-"
-- Set action for advertising ( 0=Warn / 1=Disconnect / 2=Kick / 3=Ban)
Action = 0
-- Set OK hubs that are allowed to be entered.
OkHubs = {
"myhub.myftp.org",
"myhub.myftp.org",
"myhub.myftp.org",
"myhub.myftp.org",
}
-- Accepted "sites" or triggers infront of the address
Sites = { 
"www.",
"http://",
"ftp://",
"irc.",
"cs.",
}
-- Denyed/not allowed adver's sent in chat/pm
Adver = {
"no-ip",
"myftp",
"dyndns",
"dns2go",
"dynip",
"d2g",
"dynu",
"mine",
"kick-ass",
"sytes",
"homeip",
"mine",
"serveftp",
"servebeer",
"kicks-ass",
"gotdns",
"udgnet",
}
-- Extentions belonging to Adver above.
Ext = {
"com",
"net",
"org",
"se",
"nu",
}
-- Change characters.
CharCh = {
["%(dot%)"]=".",
["dot"]=".",
["%(%-%)"]="-",
["#"]="",
["!"]="",
["+"]="",
["%-"]="",
["*"]="",
["/"]="",
[" '"]="",
}
---------------------------------------------------------------
-- DON'T EDIT BELLOW --
tabAdvert = {}

function Main()
	frmHub:RegBot(BotName)
end

function ChatArrival(curUser, data) 
	local Msg = ""
	if string.sub(data, 1, 1) == "<" and not string.find(data,"> !") and not curUser.bOperator then
		local _, _,line = string.find(data, "^%b<>%s+(.*)")
		Msg = line
		for i,v in CharCh do
		    	line=string.gsub(line, i, v)
		end
		if CheckAdver(curUser,line,"in Main-Chat, typing",Msg)==1 then
			return 1
		end
	elseif ( string.sub(data, 1, 4) == "$To:" ) then
		local _,_,to,from,line = string.find(data,    "%$To:%s(%S+)%sFrom:%s(%S+)%s$(.*)$")
		Msg = line
		for i,v in CharCh do
		    	line=string.gsub(line, i, v)
		end
		if CheckAdver(curUser,line,"in PM to "..to..", typing",Msg)==1 then
			return 1
		end
	elseif (string.sub(data,1,7) == "$MyINFO") then
		local _,_,line = string.find(data, "%$MyINFO %$ALL %S+%s+(.*)<")
		Msg = line
		for i,v in CharCh do
		    	line=string.gsub(line, i, v)
		end
		if CheckAdver(curUser,line,"in Tag Description",Msg)==1 then
			return 1
		end
	end
end

function CheckAdver(curUser,line,msg,Msg)
	local adver,extension = Verify(curUser.sName, line,Adver), Verify(curUser.sName, line,Ext)
	if adver and extension and OkAdver(adver)~=1 then
		tabAdvert = nil
		tabAdvert = {}
		local action = DoDisc(curUser,msg,line)
		SendToOps("",curUser.sName.." ( "..curUser.sIP.." )  is "..action.." becouse advertising "..msg..": "..Msg)
		return 1
	end
end

function DoDisc(curUser,msg,line)
	if Action==0 then
		curUser:SendPM(BotName,"You are Warned for advertising "..msg..": "..line) return "Warned"
	elseif Action==1 then
		curUser:SendPM(BotName,"You are Disconnected for advertising "..msg..": "..line)
		curUser:Disconnect() return "Disconnected"
	elseif Action==2 then
		curUser:SendPM(BotName,"You are Kicked for advertising "..msg..": "..line)
		curUser:TempBan() return "Kicked"
	elseif Action==3 then
		curUser:SendPM(BotName,"You are Banned for advertising "..msg..": "..line)
		curUser:Ban() return "Banned"
	end
end

function OkAdver(adver)
	for i,v in OkHubs do
		if string.find(adver,v) then
			return 1
		end
	end
end

function Verify(userdata, msg,table)
	if not msg then return end
	tmp =""
	string.gsub(string.lower(msg), "([a-?0-9.:%-])", function(x) tmp = tmp..x end)
	if not tabAdvert[userdata] then
		tabAdvert[userdata] = { iClock = os.clock(), l1 = "", l2 = "", l3 = "", l4= "", l5= "",l6= "",l7= "",l8= "",l9 = tmp}
	else
		tabAdvert[userdata].iClock = os.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.."#"..tabAdvert[userdata].l7.."#"..tabAdvert[userdata].l8.."#"..tabAdvert[userdata].l9
	for key, value in table do
		if (string.find(Lines, string.lower(value), 1, 1)) then
			return 1
		end
	end
end

c ya

(-=TrIp-iN-SuN=-)

don't work and don't doing me errors

6Marilyn6Manson6

I have only converted the script but I have not been able it to test.  Task to make it between 2-3 hours


Rincewind

Finished conversion by adding ToArrival for checking Personal Messages and bug fixed. Should now work...

--====[ Advertising Shield ]====--

-- Version: 1.0

-- By: NightLitch

-- Date: 2004-03-23

-- Converted by 6Marilyn6Manson6 by 10/09/2005

-- Bug fixed by Rincewind on 15/10/2005

----------------------------------------------------

-- Set Botname

BotName = "-Adv-Shield-"

-- Set action for advertising ( 0=Warn / 1=Disconnect / 2=Kick / 3=Ban)

Action = 1

-- Set OK hubs that are allowed to be entered.

OkHubs = {
	"myhub.myftp.org",
	"myhub.myftp.org",
	"myhub.myftp.org",
	"myhub.myftp.org",
}

-- Accepted "sites" or triggers infront of the address

Sites = { 
	"www.",
	"http://",
	"ftp://",
	"irc.",
	"cs.",
}

-- Denied/not allowed adver's sent in chat/pm

Adver = {
	"noip",
	"no-ip",
	"myftp",
	"dyndns",
	"dns2go",
	"dynip",
	"d2g",
	"dynu",
	"mine",
	"kick-ass",
	"sytes",
	"homeip",
	"mine",
	"serveftp",
	"servebeer",
	"kicks-ass",
	"gotdns",
	"udgnet",
}

-- Extentions belonging to Adver above.

Ext = {
	"com",
	"net",
	"org",
	"se",
	"nu",
}

-- Change characters.

CharCh = {
	["%(dot%)"]=".",
	["dot"]=".",
	["%(%-%)"]="-",
	["#"]="",
	["!"]="",
	["+"]="",
	["%-"]="",
	["*"]="",
	["/"]="",
	[" '"]="",
}

---------------------------------------------------------------

-- DON'T EDIT BELLOW --

tabAdvert = {}



function Main()

	frmHub:RegBot(BotName)

end


function ToArrival(curUser,data)

	ChatArrival(curUser,data) return 1

end



function ChatArrival(curUser, data) 

	local Msg = ""

	if string.sub(data, 1, 1) == "<" and not string.find(data,"> !") and not curUser.bOperator then

		local _, _,line = string.find(data, "^%b<>%s+(.*)")

		Msg = line

		for i,v in CharCh do
			line=string.gsub(line, i, v)
		end

		if CheckAdver(curUser,line,"in Main-Chat, typing",Msg)==1 then
			return 1
		end

	elseif ( string.sub(data, 1, 4) == "$To:" ) then

		local _,_,to,from,line = string.find(data, "%$To:%s(%S+)%sFrom:%s(%S+)%s$(.*)$")

		Msg = line

		for i,v in CharCh do
			line=string.gsub(line, i, v)
		end

		if CheckAdver(curUser,line,"in PM to "..to..", typing",Msg)==1 then
			return 1
		end

	elseif (string.sub(data,1,7) == "$MyINFO") then

		local _,_,line = string.find(data, "%$MyINFO %$ALL %S+%s+(.*)<")

		Msg = line

		for i,v in CharCh do
			line=string.gsub(line, i, v)
		end

		if CheckAdver(curUser,line,"in Tag Description",Msg)==1 then
			return 1
		end

	end

end



function CheckAdver(curUser,line,msg,Msg)

	local adver, extension = Verify(curUser.sName, line, Adver), Verify(curUser.sName, line, Ext)

	if adver == 1 and extension == 1 and OkAdver(adver) ~= 1 then
		tabAdvert = nil
		tabAdvert = {}
		local action = DoDisc(curUser,msg,line)
		SendToOps("",curUser.sName.." ( "..curUser.sIP.." )  is "..action.." because advertising "..msg..": "..Msg)
		return 1
	end

end



function DoDisc(curUser,msg,line)

	if Action==0 then
		curUser:SendPM(BotName,"You are Warned for advertising "..msg..": "..line) return "Warned"
	elseif Action==1 then
		curUser:SendPM(BotName,"You are Disconnected for advertising "..msg..": "..line)
		curUser:Disconnect() return "Disconnected"
	elseif Action==2 then
		curUser:SendPM(BotName,"You are Kicked for advertising "..msg..": "..line)
		curUser:TempBan() return "Kicked"
	elseif Action==3 then
		curUser:SendPM(BotName,"You are Banned for advertising "..msg..": "..line)
		curUser:Ban() return "Banned"
	end

end



function OkAdver(adver)

	for i,v in OkHubs do
		if string.find(adver,v) then
			return 1
		end
	end

end



function Verify(userdata, msg, table)

	if not msg then return end

	tmp =""

	string.gsub(string.lower(msg), "([a-?0-9.:%-])", function(x) tmp = tmp..x end)

	if not tabAdvert[userdata] then
		tabAdvert[userdata] = { iClock = os.clock(), l1 = "", l2 = "", l3 = "", l4= "", l5= "",l6= "",l7= "",l8= "",l9 = tmp}
	else
		tabAdvert[userdata].iClock = os.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.."#"..tabAdvert[userdata].l7.."#"..tabAdvert[userdata].l8.."#"..tabAdvert[userdata].l9

	for key, value in table do
		if (string.find(Lines, string.lower(value), 1, 1)) then
			return 1
		end
	end
	return 0

end

SMF spam blocked by CleanTalk