OpiumVolage Filechecker to LUA 5
 

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

OpiumVolage Filechecker to LUA 5

Started by Stravides, 04 April, 2005, 12:23:51

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Stravides

Whatever happened to EnableSearchData and how is that done now...

I have tried
     SRArrival
     SearchArrival
     UnknownArrival
     SupportArrival
     ChatArrival
     DataArrival

Just lost now....

i'm using the Searchkicker by OpiumVolage

and I have (i think) converted the main, but it doesnt work :(

-- 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 = "FileChecker"
disconnectUser = nil -- disconnect the user, nil = don't

opchatName = nil -- set opchat nick here if you want messages to opchat instead of mainchat, else nil
mb = 1024 * 1024
gb = 1024 * mb

timerValue = 10*1000 -- Every 10 seconds (higher value will reduce load)
useTimer = 1 -- set to 1 to enable timer functions
counter = 1

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 = {
	["Please don't share (pre)teen/incest/sick porn"] = {
		{ 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" },
	},
	["Please don't share ANY installed application nor any UNZIPPED installer!"] = {
		{ 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$" },
	},
	["Do not share incomplete downloads!"] = {
		{ st.ANY, "antifrag", 0, "antifrag$" },
		{ st.ANY, "download dat", 0, "download[0-9]+%.dat$" },
	},
	["No, we don't allow uncompressed DVD's in here. Please os.remove all your VOB files"] = {
		{ st.ANY, "VTS_01_0.VOB" },
	},
	["Please do not share large WAV files"] = {
		{ st.AUDIO, ".wav", 30*mb, "wav$" },
	},
	["If you're sharing copies of your files to increase your share size, we are on to you"] = {
		{ 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)
	botLen = string.len( 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].."?"..string.gsub( search[2], " ", "$" ).."|"
			table.insert( SearchTable, s )
			-- add $SR match
			local idx = string.lower( search[2] )
			ResultTable[idx] = { msg = k }
			if search[4] then ResultTable[idx].regex = string.lower( search[4] ) end
			-- next..
			i = i + 1
		end
	end
	st, SearchTypes, SearchFor = nil, nil, nil

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

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

-- on $SR
function DataArrival( client, line )
	local match = nil
	if string.sub( line, 1, 4 ) == "$SR " then
		-- test if it was a result to us only
		local ret,c,to = string.find( line, "\005([^\005|]*)|$" )
		if ret and string.sub( to, 1, botLen ) == botName then
			local ret,c,file,size = string.find( line, "^%$SR [^ ]+ ([^\005]*)\005([0-9]+) " )
			if ret then
				file = string.lower( file )
				for k,v in ResultTable do
					if ( v.regex and string.find( file, v.regex ) ) or ( not v.regex and string.find( 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.."> You are being kicked" )
		client:Disconnect()
		return 1
	end
end

function warn( client, file, response )
	-- send message to user
	client:SendData( "<"..botName.."> You are sharing the following file: "..file..": "..response )
	if client.bOperator then return end
	message = client.sName.." shares: "..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
Stravides
For RPG Books, Mp3 & Videos
We host trivia  and the ever failing Smeagolbot

[UK]Madman

Looking quickly, it seems that all you need to do is change DataArrival  to SRArrival

Typhoon

frmHub:EnableSearchData()
  and
  frmHub:EnableFullData()


is removed in new PtokaX version.. it's enabled all the time now , should states the same in the ChangeLog :)



Typhoon?



Stravides

#3
manay thanks for the replies - I tried to use SRArrival in the script and connected with lots of *cough* dodgy files and it never picked up one - i stayed in the hub for 5 hours and the timer was set to 10 mins :)

maybe I'm not doing this right

instead of

function DataArrival( client, line )

i'm using
function SRArrival( client, line )

many thanks ?? can someone else test it or am i just going mad :)

it says
Syntax ...ILES\HUBS\RPGBooks Cymru LUA 5\scripts\filechker.lua:179: attempt to compare nil with number

ie this line -->   if SearchTable.n < 1 then return end            
Stravides
For RPG Books, Mp3 & Videos
We host trivia  and the ever failing Smeagolbot

TTB

#4
I'm testing it now...

*edit* Got a bug >> Syntax ...r ===---\DVD HUB ADSL\TESTHUB5\scripts\badfiles3.lua:178: attempt to compare nil with number
TTB

(? ?.??.-> Admin @ Surfnet hubs <-.??.???)

Stravides

ok Fixed it...

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

Simple when ya think about it :)  DOH !!!

many thanks just for being here i think...
Stravides
For RPG Books, Mp3 & Videos
We host trivia  and the ever failing Smeagolbot

TTB

LOL!

Ghehe... well... *copy* *paste* and also trying  :D

I will keep my progress also updated here!
TTB

(? ?.??.-> Admin @ Surfnet hubs <-.??.???)

Stravides

They say two heads are better than one - imagine how happy a kid with acne must be :)
Stravides
For RPG Books, Mp3 & Videos
We host trivia  and the ever failing Smeagolbot

TTB

LoLz  :D


Well.. it's weird, but the script doesn't do anything in my testhub...

I share a renamed TXT >> incest.avi.

Mhh... still waiting
TTB

(? ?.??.-> Admin @ Surfnet hubs <-.??.???)

Stravides

OK we've now tested that - it appears to only search the ACTIVE users - any idea how to open its eyes to the passive users also ??

any help gladly appreciated...

Stravides
Stravides
For RPG Books, Mp3 & Videos
We host trivia  and the ever failing Smeagolbot

SMF spam blocked by CleanTalk