PtokaX forum

Lua 5.3/5.2/5.1 Scripts (for PtokaX 0.4.0.0 and newer) => Conversion Requests => Topic started by: swedal on 04 February, 2011, 00:13:05

Title: illegalist
Post by: swedal on 04 February, 2011, 00:13:05
Hello can anyone convert this scripts from API 1 to API 2

---------------------------------------------------------------------------------------------------
-- Advanced BadFile Active Search // Stripped from Thor 6
-- By: NightLitch 2005-03-04
---------------------------------------------------------------------------------------------------
tBadFiles = {

{".raidenftpd.acl" , "Dela inte ut FTP filer. Ta bort den!"},
{".pls" , "Dela inte ut Playlist filer. Ta bort den!"},
        {".PLS" , "Dela inte ut Playlist filer. Ta bort den!"},
{".permission" , "Dela inte ut Skit filer. Ta bort den!"},
{".ccd" , "Dela inte ut CloneCD filer. Ta bort den!"},
{".checked" , "Remove this file!"},
{".debug" , "Remove this file!"},
{".idx" , "Remove this file!"},
{".ioFTPD" , "Remove this file!"},
{"Thumbs.db" , "Remove this file! (REMEMBER this file is HIDDEN!!!)"},
{"Desktop.ini" , "Remove this file! (REMEMBER this file is HIDDEN!!!)"},
{"autorun.inf" , "NO sharing of installed / packed programs or games"},
{"valve.avi" , "NO sharing of installed / packed programs or games"},
{"virscan.dat" , "NO sharing of installed / packed programs or games"},
{"Netlimiter" , "NO sharing of installed / packed programs or games"},
{"childporn" , "NO sick kid Porn inhere!"},
{"animalsex" , "NO Animalsex files here!"},
{"svastika" , "NO Nazi/white power music HERE!!!"},
{"part.met" , "NO sharing of incomplete downloads"},
{".getright" , "NO sharing of incomplete downloads"},
{"share faker" , "NO tools for fake sharing allowed"},
{"share hacker" , "No tools for fake sharing allowed"},
{".dctmp" , "NO sharing of incomplete downloads"},
{"explorer.scf" , "Don't share installed windows, i.e."},
{"system32.dll" , "Don't share installed windows."},
{"msgsc.dll" , "Installerade program"},
{"COMCTL32.DLL" , "Installerade program"},
{"studio.xnf" , "Installerade program"},
{"command.com" , "Installerade program"},
{"wab.exe" , "Installerade program"},
{"Exempelspelningslista.wpl" , "Dela inte ut mina dokument mappen."},
{"npdsplay.dll" , "Installerade program"},
{"Pluton Svea" , "Rasistisk musik"},
{"Queue.xml" , "Don't share installed"},
{"Favorites.xml" , "Don't share installed"},
{"netlimiter" , "netlimiter"},
{"ws_ftp.log" , "Ta bort dina Loggfiler"},
{".dll" , "Remove this file!"},
{"imdb.nfo" , "Remove this file!"},
{"IMDB.NFO" , "Remove this file!"},
    {"WS_FTP.LOG" , "Ta bort dina Loggfiler"},
    {"desktop.ini" , "Ta bort denna fil. Det ?r en systemfil"},
    {"ufxpcrc.log" , "Ta bort dina Loggfiler"},
    {"Default.PLS" , "Denna fil ska inte finnas i sharen"},
    {"Cdlabel.alb" , "Cdlabel.alb det ?r en typ av playlist fil, TA BORT DEN"},
    {"Rule.of.rose" , "Vi till?ter inte detta spel h?r i hubben, TA BORT DET"},
    {"Rule_of_rose" , "Vi till?ter inte detta spel h?r i hubben, TA BORT DET"},
    {"Rule-of-rose" , "Vi till?ter inte detta spel h?r i hubben, TA BORT DET"},
    {"Vargflock" , "Dela Inte ut Rasistisk musik"},
{".Torrent." , "G?r inte reklam f?r torrents"},
{".torrents." , "G?r inte reklam f?r torrents"},
{".Torrent" , "G?r inte reklam f?r torrents"},
{"Blackshirts" , "Dela inte ut Rasistisk musik"},
{"enh?rjarna" , "Dela inte ut Rasistisk musik"},
{"odinslaw" , "Dela inte ut Rasistisk musik"},
{"Skullhead" , "Dela inte ut Rasistisk musik"},
{"www.torrentazos.com" , "Dela Inte ut Torrentsreklam filer"},               

}

---------------------------------------------------------------------------
--// Don't Edit below this point if you don't now what you are doing
---------------------------------------------------------------------------

tTimer = {}

Main = function()
RegTimer(SearchForBadFiles, 6*1000, "ActiveBadFileSearch") -- Active Search Each 20 Sec
SetTimer(1000); StartTimer()
end

OnTimer = function()
for i in ipairs(tTimer) do
tTimer[i][3] = tTimer[i][3] + 1
if tTimer[i][3] > tTimer[i][2] then
tTimer[i][3] = 1; tTimer[i][1]()
end
end
end

UDPSRArrival = function(sUser,sData)
local _,_,From,Path,FileSize,FreeSlots,TotalSlots = string.find(sData, "^%$SR%s+(%S+)%s+(.*)(%d+)%s+(%d+)%/(%d+)")
if tCall["BadFileSearch"] then pcall(tCall["BadFileSearch"],sUser,Path,FileSize) end
end

tCall = {
BadFileSearch = function(sUser,Path,FileSize)
if not sUser.bOperator then
local FileFound, FileReason = BadFiles(string.lower(Path))
if FileFound then
sUser:SendData(frmHub:GetHubBotName(), "*** You have been kicked for "..FileReason..". "..Path.." "..Units(FileSize))
SendToOps(frmHub:GetHubBotName(), "*** User "..sUser.sName.." has been kicked for "..FileReason..". "..Path.." "..Units(FileSize))
sUser:TempBan()
end
end
end
}

RegTimer = function(Function,Interval,str)
local tmpTrig = Interval / 1000
table.insert(tTimer,{Function,tmpTrig,1,str})
end

Units = function(intSize)
if tonumber(intSize) ~= 0 then
local tUnits = { "Bytes", "KB", "MB", "GB", "TB" }
intSize = tonumber(intSize); local sUnits;
for i in ipairs(tUnits) do
if(intSize < 1024) then sUnits = tUnits[i]; break; else intSize = intSize / 1024; end
end
return string.format("%0.1f %s",intSize, sUnits);
else
return "0 Bytes"
end
end

BadFiles = function(PathStr)
for i in ipairs(tBadFiles) do
if string.find(PathStr, string.lower(tBadFiles[i][1]), 1, true) then
return 1,tBadFiles[i][2]
end
end
return nil, "Other Files"
end

SearchForBadFiles = function()
if t == nil then
t =1
if tBadFiles[t] then
SendToAll("$Search "..frmHub:GetHubIp()..":"..frmHub:GetHubUdpPort().." F?F?0?1?"..tBadFiles[t][1])
end
elseif t > table.getn(tBadFiles) then
t = nil
else
t = t+1
if tBadFiles[t] then
SendToAll("$Search "..frmHub:GetHubIp()..":"..frmHub:GetHubUdpPort().." F?F?0?1?"..tBadFiles[t][1])
else
t = 0
end
end
end
Title: Re: illegalist
Post by: swedal on 06 February, 2011, 15:03:24
hello i has add this one filesearch in my hub 



--[[

FileSearch 1.0l LUA 5.11 [Strict] [API 2]

By Mutor 11/03/07

In as much as I despise scripting this, I am truly tired of
seeing requests for it. My meager efforts at educating the masses
with 'why this shouldn't be done' have failed. Hmm...  Go figure.
My will broken, here is a bad file search for the new PtokaX API.
For LUA 5.1x only

System resources be damned!

- Endlessly searches for preset 'illegal' filenames / strings, one every 15 [or more] seconds.
- Sends search strings in random order until all are used, then list is cycled again.
- Sends a message to online ReportNick or operators in Main chat if file is found [once per user].
- Sends status message to status bar to ReportNick or online Operators.
- Runs garbage collection if memory usage is 20% or more that startup memory usage.


+Changes from 1.0 11/04/07
~Fixed search list cycle method
+Added stop timer once all terms have been used.
+Seach is begun again with new connection or MyINFO string.
+Added OnError messages to Report function

+Changes from 1.0b 11/06/07
+Added user search checking/blocking, per profile. Returns fraudulent result.
+Added log to file function.
~Cleaned up timer function a bit.

+Changes from 1.0c 11/22/07
+Added kick option, after much prompting and against my better judgement.  :P
+Added nick exclusion table [protect by nick].
+Added log entry for kick, MaxLog variable [log file size restriction]

+Changes from 1.0d 12/01/07
+Added choice of kick/ban

+Changes from 1.0e 12/05/07
+Added search results pattern table
+Added additional status/debug messages

+Changes from 1.0f 12/25/07
~Changed search mode to active in order to get SR from all users.

+Changes from 1.0g 12/25/07
+Added user' IP to report and log messages. Requested by [NL]Scooby?
+Added option to always repy in private message. Requested by [NL]Scooby?

+Changes from 1.0g 04/13/08
+Added support for TTH searches. Requested by [NL]Scooby?

+Changes from 1.0i 04/13/08
-Removed support for API 1, now API 2 strict

+Changes from 1.0k 10/17/08
+Added passive search string.
~Changed SendToAll to SendToUser.
+Added Passive string sent to activeusers, active string sent to passive users.
+Search string is only sent to users with > 0 share.
+Added option to always use TTH root in fraudulent search results.
]]

--//-- Start Settings --//--

-- Add your 'illegal' files in the Words array, use quotes and separate with comma.
-- Keep this list as short and it's contents as precise as possible.
-- Consider that many triggers may be found in legitimate files
-- ie. rape will be found in "The Grapes Of Wrath" and the title 'Lolita'
-- is an actual film, not a good one mind you, but it is a film.

-- Search the hub for these strings/hashes...
local Words = {
--TTH strings must begin with TTH: ie:
--"TTH:ZDAWKJRHFFEJ7IOXZ2A5HTTHOY36GQLFAQWTM6Q",
"5PLWTH46UI433BS3BMRYEFUYRXCL2WU7UFIHECQ",
"badfile","stealthdc","r@ygold","animalsex","beastiality","lolita",
"preteen","incest","rape ","underage","childsex","childporn"
}
-- In an effort to be more specific on 'illegal' files,
-- Search results for these patterns. There should be one for each item in the Words table.
-- It may well be the same entry in the words table [ie. exact match] else use Reg-Exp
-- ["string"] = {# of warnings, 0 = disable,*action,"reply string"},
-- *Action to take against user 0=none, 1=kick, 2 = ban
local Patts = {
--TTH patterns should be the exact TTH hash root
["ZDAWKJRHFFEJ7IOXZ2A5HTTHOY36GQLFAQWTM6Q"] = {0,1,"***Badfiles are not allowed here."},
["5PLWTH46UI433BS3BMRYEFUYRXCL2WU7UFIHECQ"] = {0,2,"Anti-Piracy trojan files are not allowed here."},
["stealthdc"] = {0,1,"StealthDC is not allowed here."},
["badfile"] = {3,1,"Badfiles are not allowed here."},
["stealthdc"] = {0,1,"StealthDC is not allowed here."},
["r@ygold"] = {0,1,"Underage pornography is not allowed here."},
["animalsex"] = {0,1,"Beastality content is not allowed here."},
["beastiality"] = {0,1,"Beastality content is not allowed here."},
["preteen"] = {0,1,"Underage pornography is not allowed here."},
["underage"] = {0,1,"Underage pornography is not allowed here."},
["childsex"] = {0,1,"Underage pornography is not allowed here."},
["childporn"] = {0,1,"Underage pornography is not allowed here."},
[".*lolita.*(%.png|%.jpg|%.gif|%.bmp|%.avi|%.wmv|%.xvid|%.mov|%.ogg|%.mp(g|eg|^3))"] = {0,1,"Underage pornography is not allowed here."},
[" *rap(e|ed|ing).*(%.avi|%.wmv|%.xvid|%.mov|%.ogg|%.mp(g|eg|^3))"] = {0,1,"Rape content is not allowed here."},
[" *incest.*(%.png|%.jpg|%.gif|%.bmp|%.avi|%.wmv|%.xvid|%.mov|%.ogg|%.mp(g|eg|^3))"] = {0,1,"Incest content is not allowed here."},
}

-- "BotName" [ "" = hub bot ]
local Bot = "[FileSearch]"
-- Admin's nick / chatroom name for status messages, "" = disable
-- If disabled, report will be sent to all online operators.
local ReportNick = "Mutor"
-- Send extended status information to ReportNick or Operators , true/false
local Verbose = false
-- Reporting level 0=disabled, 1=critical errors, 2=extended status, 3=all messages
local ReportLevel = 3
-- Always report in PM?  true/false
local PmOnly = true
-- Seconds between file searches [should be >= 15 seconds]
local Secs = 15
-- Always use TTH root in fraudulent $SR, true/false
local AlwaysTTH = true
-- Action to take against user 0=none, 1=kick, 2 = ban
local Action = 1
-- Number of warns before Action is taken, when Action > 0. [0 = disable]
local Warns = 3
-- Perm. ban level, used ony if Action = 2 [1 = Nick Ban, 2 = IP Ban, 3 = Nick/IP Ban]
local BanLevel = 1
-- Exclude these users from check/kick
local Exc = {
["Mutor"] = true,
["OtherNick"] = true,
}
-- Maximum permissable size of log file [in bytes]
local MaxLog = 5000
-- Set your profiles permissions here.
-- profile_idx, Allowed to search for illegal files? [0=no 1=yes], "Profile Name"
local Profiles = {
[-1] = {false,"Unregistered User"},
[0] = {true,"Master"},
[1] = {true,"Operator"},
[2] = {true,"Vip"},
[3] = {false,"Registered User"},
}

local ReportProfiles = {
[-1] = {false,"Unregistered User"},
[0] = {true,"Master"},
[1] = {true,"Operator"},
[2] = {false,"Vip"},
[3] = {false,"Registered User"},
}
--//-- End Settings --//--

local T,Tm,Used,Nicks,Log,HubIp,HubUdp = {},0,{},{},""
OnStartup = function()
if Bot == "" then Bot = SetMan.GetString(21) else Core.RegBot(Bot,"","",true) end
if not Core.GetHubIP() and not SetMan.GetBool(43) then SetMan.SetBool(43,true) SetMan.Save() end
HubIp,HubUdp = Core.GetHubIP(),SetMan.GetString(4)
if HubIp and HubUdp then Tm = TmrMan.AddTimer(1000 * Secs) end
collectgarbage("collect")
end

OnTimer = function(Id)
if Id and Id == Tm then
local x,z = ChkWrd(),string.rep("\t",12).."is kicking because:"
if x then
local s,msg,t = Words[x],"Searching user shares for: [ "..x.." ]  ",1
local tth = s:find("^TTH%:")
if tth then t = 9 end
for _,usr in ipairs(Core.GetOnlineUsers()) do
if Core.GetUserValue(usr,16) > 0 then
local s = "$Search "..HubIp..":"..HubUdp.." F?T?0?"..t.."?"..s.."|"
if Core.GetUserValue(usr,10) then
s = "$Search Hub:"..Bot.." F?T?0?"..t.."?"..s.."|"
end
Core.SendToUser(usr,s)
end
end
Core.SendToAll("$Search "..HubIp..":"..HubUdp.." F?T?0?"..t.."?"..s.."|")
if ReportLevel > 1 then Report(msg..s.." ...",msg..s.." ..."..z) else Report(nil,msg..s.." ..."..z) end
end
if ChkNicks() > 0 then
local tm = os.date()
for i,v in pairs(Nicks) do
--Nicks[nick] = {sr,v,Warns}
--["badfile"] = {0,1,"Badfiles are not allowed here."},
local Warns,Action,Response,Warned = v[2][1],v[2][2],v[2][3]
if Action > 0 and not Exc[i] then
local file = string.format("%q",v[1])
local rsn,msg,rpt,wmsg = "Illegal file: "..file,"You are being kicked for "..file..
" in your share. Please remove it before you return. "..Response,
i.." with I.P. ? was kicked for illegal file: "..file,"You have an illegal file your "..
"share: : "..file..". Please remove it. You have [0] warnings left."
local log = "[Kick][I.P.: ? ] User: "..rpt.." - "..tm
local t = Core.GetUser(i)
if t then
if not ChkUsr(t.iProfileNumber) then
rpt = rpt:gsub("?",t.sIP)
log = log:gsub("?",t.sIP)
if Action == 2 then
if Warns > 0 then
v[2][1] = (Warns - 1)
if not Warned then Warned = tostring(v[2][1]) end
wmsg = wmsg:gsub("%b[]","["..Warned.."]")
rpt = rpt:gsub("kicked","warned")
log = log:gsub("%[Kick%]","[Warned]")
Core.SendToUser(t,"<"..Bot.."> "..wmsg.."|")
else
msg = msg:gsub("kicked","banned")
rpt = rpt:gsub("kicked","banned")
log = log:gsub("%[Kick%]","[Ban]")
Core.SendToUser(t,"<"..Bot.."> "..msg.."|")
local BanTab = {
[1] = BanMan.BanNick(t.sNick, rsn, Bot), --Nick Ban
[2] = BanMan.BanIP(t.sIP, rsn, Bot, false), -- IP Ban
[3] = BanMan.Ban(t, rsn, Bot, false), -- Nick/IpBan
}
if not BanTab[BanLevel] then
Report("Banning of "..t.sNick.." has failed.")
end
end
else
if Warns > 0 then
v[2][1] = (Warns - 1)
if not Warned then Warned = tostring(v[2][1]) end
wmsg = wmsg:gsub("%b[]","["..Warned.."]")
rpt = rpt:gsub("kicked","warned")
log = log:gsub("%[Kick%]","[Warned]")
Core.SendToUser(t,"<"..Bot.."> "..wmsg.."|")
else
Core.SendToUser(t,"<"..Bot.."> "..msg.."|")
Core.Kick(t,Bot,rsn)
end
end
if ReportLevel >= 1 then Report(rpt) end
Logger(log)
end
end
end
Nicks[i] = nil
end
end
local count = ChkNicks()
if count == 0 and next(Used) and #Used >= #Words then
TmrMan.RemoveTimer(Tm) Tm = nil
if ReportLevel ==3 then Report("Stopping timer...") end
end
end
end

UserConnected = function(user)
if not Tm then
Tm = TmrMan.AddTimer(1000 * Secs)
if ReportLevel == 3 then Report("FileSearch timer has started again.") end
end
math.randomseed(os.clock())
Used = {}
end
OpConnected,RegConnected,MyINFOArrival = UserConnected,UserConnected,UserConnected

Report = function(msg,sb)
if msg and msg ~= "" then
if ReportNick ~= "" then
local rn = ReportNick
local op = Core.GetUser(rn)
if op then
if PmOnly then Core.SendPmToUser(op,Bot,msg.."|") else Core.SendToUser(op,"<"..Bot.."> "..msg.."|") end
if sb then Core.SendToUser(op,"<"..Bot.."> "..sb.."|") end
else
SendToChat(Bot,msg)
end
else
if PmOnly then Core.SendPmToOps(Bot,msg.."|") else Core.SendToOps("<"..Bot.."> "..msg.."|") end
if sb then Core.SendToOps("<"..Bot.."> "..sb.."|") end
end
end
end

OnError = function(msg) if ReportLevel > 0 then Report(msg) end end
ChkUsr = function(i) if Profiles[i] then return Profiles[i][1] else return false end end
ChkUsed = function(x) for a,b in ipairs(Used) do if b == x then return true end end return false end
ChkNicks = function() local x = 0 for i,_ in pairs(Nicks) do x = x + 1 end return x end

ChkWrd = function()
if next(Used) and #Used >= #Words then
Used = {}
math.randomseed(os.clock())
if ReportLevel ==3 then Report("Word list expended...") end
return nil
end
local x = math.random(#Words)
while ChkUsed(x) do x = math.random(#Words) end
table.insert(Used,x)
local M = collectgarbage("count")
local pct = math.floor(((M/Mem) * 100))
if pct > 120 then collectgarbage("collect") end
return x
end

SearchArrival = function(user, data)
local nick = user.sNick
if not Exc[nick] then
if not ChkUsr(user.iProfile) then
local _,_,s = data:find("([^?]+)|$")
if s then
if ReportLevel == 3 then Report(nick..": "..s) end
for i,v in ipairs(Words) do
if s:lower():find(v:lower()) then
local Send,U,B,H,I,P,X
Send,U,B,X = Core.SendToNick,user.sNick,SetMan.GetString(21),true
H,I,P = SetMan.GetString(0),Core.GetHubIP(),SetMan.GetString(4)
local Res = s..string.char(92)..U..", Illegal string "..
"detected, search disabled."..string.rep("\t",20)
Log = Log.."[Search] User: "..U.."\tPattern: "..string.format("%q",i)..
"\tSearch String: "..string.format("%q",s).."\tI.P.\t"..user.sIP.."\tDate: "..
os.date("%B %d, %Y at: %I:%M")..string.sub(string.lower(os.date("%p")),1,1).."\n"
local msg = "*Illegal file search from: "..U..
". Using I.P: "..user.sIP.." Searched For: "..s..".*"
msg = msg:gsub(" ",string.char(160))
local x,z = 1,string.rep("\t",50).."is kicking because:"
if ReportLevel > 1 then Report(msg,msg..z) end
Logger(Log)
if AlwaysTTH then H = "TTH:ZDAWKJRHFFEJ7IOXZ2A5HTTHOY36GQLFAQWTM6Q" end
return Send(U,"$SR "..B.." "..Res.." 0 0/0"..H.." ("..I..":"..P..")"),X
end
end
end
end
end
end

SRArrival = function(user, data)
local nick = user.sNick
if not Exc[nick] then
if not ChkUsr(user.iProfile) then
if nick and not Nicks[nick] then
local c5 = string.char(5)
local _,_,hash = data:find(c5.."TTH%:(%w+) %(")
local _,_,sr = data:find("^$SR %S+ ([^"..c5.."]+)"..c5)
if sr then
if ReportLevel == 3 then Report("Search result from "..nick..": "..sr) end
for i,v in pairs(Patts) do
local match = false
if hash then
if hash:find(i,1,true) then match = true hash = "\tTTH:"..hash end
else
hash = ""
end
if sr:lower():find(i:lower():gsub("[%p%c]","%%%1")) then match = true end
if match then
if ReportLevel > 1 then
Report(nick.." - responded to an illegal file search for: "..
"["..i:gsub("|","&#124;").."] Matching item: "..sr..hash)
end
Nicks[nick] = {sr,v[3]}
T[i] = T[i] + 1
Log = Log.."[File] User: "..nick.."\tPattern: "..string.format("%q",i)..
"\tFile: "..string.format("%q",sr).."\tI.P.\t"..user.sIP.."\tDate: "..
os.date("%B %d, %Y at: %I:%M")..string.sub(string.lower(os.date("%p")),1,1).."\n"
local msg = "*Illegal file result from "..nick..": "..
sr..hash..". Found [ "..T[i].." ] times this session.*"
msg = msg:gsub(" ",string.char(160))
local z = string.rep("\t",50).."is kicking because:"
if ReportLevel > 1 then Report(msg,msg..z) end
Logger(Log)
break
end
end
end
end
end
end
end
UDPSRArrival = SRArrival

ToArrival = function(user,data)
local _,_,to = data:find("^$To: (%S+) From:")
if to and to:lower() == ReportNick:lower() then
if ReportProfiles[user.iProfile] then
local _,_,msg = data:find("%b<> (.+)|$")
if msg then SendToChat(user.sNick,msg) end
else
return Core.SendPmToNick(user.sNick,ReportNick,"Sorry "..user.sNick..", this chat is for "..
"select profiles only. Your message has not been sent. :("),true
end
end
end

SendToChat = function(nick,msg)
local Tab = Core.GetOnlineUsers()
for _,usr in ipairs(Tab) do
if ReportProfiles[usr.iProfile] then
if usr.sNick:lower() ~= nick:lower() then
Core.SendToNick(usr.sNick,"$To: "..usr.sNick.." From: "..Bot..
" $<"..nick.."> " ..msg.."|")
end
end
end
collectgarbage("collect")
end

Logger = function(str)
local f,e = io.open("FileSearch.log")
if f then
local e = f:seek("end")
f:close()
if e > MaxLog then
f,e = io.open("FileSearch.log","w")
f:write("") f:close()
end
else
if ReportLevel > 0 then local err = e:sub(1,-2) Report(err,err) end
end
f,e = io.open("FileSearch.log","a+")
if f then
f:write(str) f:flush() f:close()
else
if ReportLevel > 0 then local err = e:sub(1,-2) Report(err,err) end
end
Log = ""
end
for i,v in pairs(Patts) do T[i] = 0 end
Secs = math.max(Secs,15)
math.randomseed(os.clock())
Mem = collectgarbage("count")


can some one convert this. so i dont see when the scripts serach for illegal files..
and add this files so the scripts kick user with this..



{".raidenftpd.acl" , "Dela inte ut FTP filer. Ta bort den!"},
   {".pls" , "Dela inte ut Playlist filer. Ta bort den!"},
        {".PLS" , "Dela inte ut Playlist filer. Ta bort den!"},
   {".permission" , "Dela inte ut Skit filer. Ta bort den!"},
   {".msg" , "Dela inte ut Message filer. Ta bort den!"},
   {".ccd" , "Dela inte ut CloneCD filer. Ta bort den!"},
   {".checked" , "Remove this file!"},
   {".debug" , "Remove this file!"},
   {".idx" , "Remove this file!"},
   {".ioFTPD" , "Remove this file!"},
   {"Thumbs.db" , "Remove this file! (REMEMBER this file is HIDDEN!!!)"},
   {"Desktop.ini" , "Remove this file! (REMEMBER this file is HIDDEN!!!)"},
   {"autorun.inf" , "NO sharing of installed / packed programs or games"},
   {"valve.avi" , "NO sharing of installed / packed programs or games"},
   {"virscan.dat" , "NO sharing of installed / packed programs or games"},
   {"Netlimiter" , "NO sharing of installed / packed programs or games"},
   {"childporn" , "NO sick kid Porn inhere!"},
   {"animalsex" , "NO Animalsex files here!"},
   {"svastika" , "NO Nazi/white power music HERE!!!"},
   {"part.met" , "NO sharing of incomplete downloads"},
   {".getright" , "NO sharing of incomplete downloads"},
   {"share faker" , "NO tools for fake sharing allowed"},
   {"share hacker" , "No tools for fake sharing allowed"},
   {".dctmp" , "NO sharing of incomplete downloads"},
   {"explorer.scf" , "Don't share installed windows, i.e."},
   {"system32.dll" , "Don't share installed windows."},
   {"Ultima Thule" , "Rasistisk musik"},
   {"msgsc.dll" , "Installerade program"},
   {"COMCTL32.DLL" , "Installerade program"},
   {"studio.xnf" , "Installerade program"},
   {"command.com" , "Installerade program"},
   {"wab.exe" , "Installerade program"},
   {"Exempelspelningslista.wpl" , "Dela inte ut mina dokument mappen."},
   {"npdsplay.dll" , "Installerade program"},
   {"Pluton Svea" , "Rasistisk musik"},
   {"Queue.xml" , "Don't share installed"},
   {"Favorites.xml" , "Don't share installed"},
   {"netlimiter" , "netlimiter"},
   {"ws_ftp.log" , "Ta bort dina Loggfiler"},
   {".dll" , "Remove this file!"},
   {"imdb.nfo" , "Remove this file!"},
   {"IMDB.NFO" , "Remove this file!"},
    {"WS_FTP.LOG" , "Ta bort dina Loggfiler"},
    {"desktop.ini" , "Ta bort denna fil. Det ?r en systemfil"},
    {"ufxpcrc.log" , "Ta bort dina Loggfiler"},
    {"Default.PLS" , "Denna fil ska inte finnas i sharen"},
    {"Ultima Thule - Sverige Fosterland.mp3" , "Dela inte ut Rasistisk musik"},
   {"Ultima_Thule" , "Dela inte ut Rasistisk musik"},
    {"Cdlabel.alb" , "Cdlabel.alb det ?r en typ av playlist fil, TA BORT DEN"},
    {"Rule.of.rose" , "Vi till?ter inte detta spel h?r i hubben, TA BORT DET"},
    {"Rule_of_rose" , "Vi till?ter inte detta spel h?r i hubben, TA BORT DET"},
    {"Rule-of-rose" , "Vi till?ter inte detta spel h?r i hubben, TA BORT DET"},
    {"Vargflock" , "Dela Inte ut Rasistisk musik"},
   {".Torrent." , "G?r inte reklam f?r torrents"},
   {".torrents." , "G?r inte reklam f?r torrents"},
   {".Torrent" , "G?r inte reklam f?r torrents"},
   {"Blackshirts" , "Dela inte ut Rasistisk musik"},
   {"enh?rjarna" , "Dela inte ut Rasistisk musik"},
   {"odinslaw" , "Dela inte ut Rasistisk musik"},
   {"Skullhead" , "Dela inte ut Rasistisk musik"},
   {"www.torrentazos.com" , "Dela Inte ut Torrentsreklam filer"},   



tnx for all help // Swedal