File Checker!
 

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

File Checker!

Started by mOrrI, 24 May, 2004, 21:13:37

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

mOrrI

-- vim:ts=4:sw=4:noet
-- FileChecker.lua, rewrite of a 'SearchKick' bot for PtokaX by ptaczek and
-- Leon (called The Illegalist)
-- version 1.0 for DCH++
-- by Sedulus 20030910, requested by BSOD2600
-- 20030919: 1.0
--
-- Translated back to PtokaX (OpiumVolage 9 Sept. 2003)
-- Added timer for automating search
--
-- (using more mem (3 tables, instead of one) but less cpu)
--
-- searches for all terms in the SearchFor table,
-- sends a message to the user that he/she shares the file, with the response
-- message.
-- set disconnectUser to 1 if you want the user disconnected as well (not
-- recommended, as bots always seem to find a way to misinterpret data ;) )
--
-- spaces in the SearchFor table will be converted to dollar's, but they will
-- (purposely) only match if there's a space in the result later.
-- so "a b" won't match "b a" or "aXXXb"

--// useful stuff
botName = "LAV-FileChecker?"
disconnectUser = nil -- disconnect the user, nil = don't
-- opchatName = "-TropiCo-" -- set opchat nick here if you want messages to opchat instead of mainchat, else nil
opchatName = botName -- set opchat nick here if you want messages to opchat instead of mainchat, else nil
mb = 1024 * 1024
gb = 1024 * mb
-- Timer value, will send search for 1 of the file on all users at each timer
timerValue = 10*1000 -- Every 10 seconds (higher value will reduce load)
useTimer = 1 -- set to 1 to enable timer functions
counter = 1
--// do not modify this table, lookup the meanings in the $Search section in the protocol documentation
SearchTypes = {
	ANY = 1,
	AUDIO = 2,
	COMPRESSED = 3,
	DOCUMENT = 4,
	EXECUTABLE = 5,
	IMAGE = 6,
	VIDEO = 7,
	FOLDER = 8, -- do not use FOLDER's! the $SR's are formatted differently
}

st = SearchTypes
--// MODIFY THIS TABLE <-------
--      { searchType, words[, minimumSize[, regexMatch]] }
SearchFor = {
	["N?o tenhas no share porno destes tipos (pre)teen/incest/sick! L? as regras em [URL]http://www.lav-sounds.pt.vu[/URL]"] = {
		{ st.IMAGE, "preteen" },
		{ st.VIDEO, "preteen" },
		{ st.IMAGE, "incest" },
		{ st.VIDEO, "incest" },
		{ st.IMAGE, "underage" },
		{ st.VIDEO, "underage" },
		{ st.IMAGE, "teenage sex" },
		{ st.VIDEO, "teenage sex" },
	},
	["N?o tenhas no share aplica??es instaladas e\ou aplica??es descomprimidas! L? as regras em [URL]http://www.lav-sounds.pt.vu[/URL]"] = {
		{ st.ANY, "explorer.scf" },
		{ st.ANY, "explore.ex_" },
		{ st.ANY, "cd_clint.dll" },
		{ st.EXECUTABLE, "express msimn.exe", 0, "express\\msimn%.exe$" },
		{ st.EXECUTABLE, "IEXPLORE.EXE" },
		{ st.ANY, "bfdist.vlu" },
		{ st.ANY, "War3Inst.log" },
		{ st.ANY, "ut2003.log" },
		{ st.EXECUTABLE, "NFSHP2.exe" },
		{ st.ANY, "avp2.rez" },
		{ st.ANY, "ntuser.dat" },
		{ st.EXECUTABLE, "winword.exe" },
		{ st.ANY, "sav", 0, "%.sav$" },
		{ st.ANY, "dll", 0, "%.dll$" },
		{ st.ANY, "ex_", 0, "%.ex_$" },
		{ st.EXECUTABLE, "setup.exe", 0, "\\setup%.exe$" },
	},
	["N?o tenhas downloads incompletos no share! L? as regras em [URL]http://www.lav-sounds.pt.vu[/URL]"] = {
		{ st.ANY, "antifrag", 0, "antifrag$" },
		{ st.ANY, "download dat", 0, "download[0-9]+%.dat$" },
		{ st.ANY, "INCOMPLETE~" },
		{ st.ANY, "__INCOMPLETE___" },
		{ st.ANY, ".part.met"},
		{ st.ANY, ".mp3.temp"},
		{ st.ANY, " .torrent"},
	},
	["N?o ? premitido ter DVD's descomprimidos aqui! Remove todos os ficheiros VOB!  L? as regras em [URL]http://www.lav-sounds.pt.vu[/URL]"] = {
		{ st.ANY, "VTS_01_0.VOB" },
	},
	["N?o tenhas no share ficheiros WAV! Obrigada pela aten??o, l? as regras em [URL]http://www.lav-sounds.pt.vu[/URL]"] = {
		{ st.AUDIO, ".wav", 5*mb, "wav$" },
	},
	["Se tens no teu share copias de ficheiros s? para aumentar o share, estamos de olho em ti... l? as regras em [URL]http://www.lav-sounds.pt.vu[/URL]"] = {
		{ st.ANY, "copy of", 300*mb, "\\Copy of" },
		{ st.ANY, "kopie van", 300*mb, "\\Kopie van" },
	},
--	["Please do not share unzipped DVD's and/or other large files. Use rar-sets."] = {
--		{ st.ANY, ".", 1*gb },
--	},
}

--// convert the tables
SearchTable = {}
ResultTable = {}

function Main()
	frmHub:EnableSearchData(1)
	frmHub:RegBot(botName)
	botLen = strlen( botName )
	local i = 0 -- add the serial botnames in here as well.. so the user doesn't think he is flooded by one person
	for k,v in SearchFor do
		for _,search in v do
			-- add $Search
			local s = "$Search Hub:"..botName..i.." "
			if search[3] then
				s = s.."T?F?"..search[3]
			else
				s = s.."F?F?0"
			end
			s = s.."?"..search[1].."?"..gsub( search[2], " ", "$" ).."|"
			tinsert( SearchTable, s )
			-- add $SR match
			local idx = strlower( search[2] )
			ResultTable[idx] = { msg = k }
			if search[4] then ResultTable[idx].regex = strlower( search[4] ) end
			-- next..
			i = i + 1
		end
	end
	st, SearchTypes, SearchFor = nil, nil, nil

	-- set options
	if opchatName then
		messageFunc = SendPmToOps
	else
		messageFunc = SendPmToOps
		opchatName = botName
	end
	if useTimer then SetTimer(timerValue) StartTimer() end
end

-- on new user
function NewUserConnected( client )
	foreachi(SearchTable, function(_, v) %client:SendData( v ) end)
end

-- on $SR
function DataArrival( client, line )
	local match = nil
	if strsub( line, 1, 4 ) == "$SR " then
		-- test if it was a result to us only
		local ret,c,to = strfind( line, "\005([^\005|]*)|$" )
		if ret and strsub( to, 1, botLen ) == botName then
			local ret,c,file,size = strfind( line, "^%$SR [^ ]+ ([^\005]*)\005([0-9]+) " )
			if ret then
				file = strlower( file )
				for k,v in ResultTable do
					if ( v.regex and strfind( file, v.regex ) ) or ( not v.regex and strfind( file, k, 1, 1 ) ) then
						match = 1
--						warn( client, file.." ("..dchpp.formatBytes( size ).." ("..size.."))", v.msg )
						warn( client, file.." ("..size..")", v.msg )
					end
				end
			end
		end
	end
	-- disconnect user
	if match and disconnectUser and not client.bOperator then
		client:SendData( "<"..botName.."> Est?s a ser Kikado!" )
		client:Disconnect()
		return 1
	end
end

function warn( client, file, response )
	-- send message to user
	client:SendData( "<"..botName.."> Tens no share o seguinte Ficheiro: "..file..": "..response )
	if client.bOperator then return end
	message = client.sName.." tem no share: "..file
	-- send message to all Operators
	messageFunc( opchatName, message )
end

function OnTimer()
	if SearchTable.n < 1 then return end
	SendToAll(SearchTable[counter])
	counter = counter + 1
	if counter > SearchTable.n then counter =1 end
end

Hello there i wanted to know if someone can help here with this bot!
the bot works fine for active users but when passive ones enter the hub the bot doesn't check them...

anyone as any idea why?

Thanks in advance!

Sudds

My advice is dont use it, lol it will use soo much bandwith if u want a file checker get an op to run DC++KCdm or run it yourself that will do alot better job use less memory and bandwith.
Sudds

mOrrI

so where can i find this dc++kcmd?

Sudds

I lost the new site addy but this is the old one http://freespace.virgin.net/dcplusplus.kcdm/    i will find u the new site and post it later.
Sudds


mOrrI

Thanks mate for the tip i will check it OUT! :D

SMF spam blocked by CleanTalk