PtokaX forum

Archive => Archived 5.0 boards => Help with scripts => Topic started by: Jerry on 27 May, 2005, 10:13:30

Title: Help with NightLitch's BadFile Script
Post by: Jerry on 27 May, 2005, 10:13:30
Hi guys

I use Advanced BadFile Active Search By: NightLitch and I want that the bad files will be into file: e.g. Badfiles.dat and the script load badfiles from this file.

And I want that you can add badfiles with the command: e.g. +badfiles hello.exe, into the file Badfiles.dat and the script kick users with this file too

It is possible?

Thank you for help!!

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

   {"explorer.scf" , "NO sharing of installed / packed programs or games"},
   {".temp.mp3" , "NO sharing of incomplete downloads"},
   {"_INCOMPLETE_" , "NO sharing of incomplete downloads"},
   {"download123456789.dat" , "NO sharing of incomplete downloads"},
   {"part.met" , "NO sharing of incomplete downloads"},
   {".getright" , "NO sharing of incomplete downloads"},
   {"autorun.inf" , "NO sharing of installed / packed programs or games"},
   {"DCPlusPlus.exe" , "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"},

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

tTimer = {}

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

function OnTimer()
   for i=1,table.getn(tTimer) do
      tTimer[3] = tTimer[3] + 1
      if tTimer[3] > tTimer[2] then
         tTimer[3]=1
         tTimer[1]()
      end
   end
end

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

tCall = {}
tCall["BadFileSearch"] = function(sUser,Path,Who,FileSize)
   if sUser.bOperator then return 0 end
   if Who == "SlotFetch" then
      local FileFound, FileReason = BadFiles(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 index = 1, table.getn(tUnits) do
         if(intSize < 1024) then
            sUnits = tUnits[index];
            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 = 1, table.getn(tBadFiles) do
      if string.find(PathStr, tBadFiles[1]) then
         return 1,tBadFiles[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
[/code]

Thank you in advance for any help!!

     Jerry
Title:
Post by: bastya_elvtars on 27 May, 2005, 11:10:41
No offences, but are you sure you want to use this for bad file search? I would recommend DCDM++ w/ ADLSearch.
Title:
Post by: 6Marilyn6Manson6 on 27 May, 2005, 13:30:29
QuoteOriginally posted by bastya_elvtars
No offences, but are you sure you want to use this for bad file search? I would recommend DCDM++ w/ ADLSearch.

I would recommend iDC++ w/ ADLSearch. :D
Title:
Post by: Jerry on 27 May, 2005, 15:52:45
Hi,

Ok I test it -> THX