Upload Blocker - Page 2
 

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

Upload Blocker

Started by nErBoS, 23 August, 2004, 22:53:38

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

nErBoS

Hi,

Yes is ment to be in a lowercase. Is that user that can download from you a OP ??

Best regards, nErBoS
--## nErBoS Spot ##--

Skyhawk

no he is a Reg User (profile 3)

master 0
operator 1
Vip 2
Reg 3
User 4
Pop 5

nErBoS

#27
Hi,

Found the bug, try this one...

--## Upload Blocker 1.0
--## Big BUG Fixed (thanks Skyhawk for bugging me :D )
--## Requested by charlie
--## Made by nErBoS
--## Commands (only for OPs):
--##	!addblock 	-- Will block uploads from the user (only OPs can download from him)
--##	!delblock 	-- Will remove the block from the user uploads
--##	!allow  	-- Will allow the user "nick" to make downloads from the user "who"
--##	!restrict  	-- Will remove the allow from the user "nick" to make downloads from the user "who"
--##	!blocked		-- Will show all user that are blocked and who is allowed to make downloads from him

sBot = "U-Blocker"

arrUser = {}
arrRC = {}
fUser = "user.dat"

--## Configuration ##--

uLaterPtokax = 0	-- Choose 0 if you are using a Ptokax version 0.3.3.0 or higher
			-- Choose 1 if you are using a Ptokax version lower then 0.3.3.0

--## END ##--

function Main()
	frmHub:RegBot(sBot)
	frmHub:EnableFullData(1)
	LoadFromFile(fUser)
end

function OnExit()
	SaveToFile(fUser , arrUser , "arrUser")
end

function DataArrival(user, data)
	if (strsub(data,1,1) == "<" or strsub(data,1,5+strlen(sBot)) == "$To: "..sBot) then
		data = strsub(data,1,strlen(data)-1)
		s,e,cmd = strfind(data, "%b<>%s+(%S+)")
		if (cmd == "!addblock" and user.bOperator) then
			local s,e,nick = strfind(data, "%b<>%s+%S+%s+(%S+)")
			if (nick == nil) then
				user:SendPM(sBot, "Syntax Error, !addblock , you must write a nick.")
			elseif (type(arrUser[strlower(nick)]) == "table") then
				user:SendPM(sBot, "The user "..nick.." is already blocked.")
			else
				arrUser[strlower(nick)] = {}
				if (uLaterPtokax == 1) then
					OnExit()
				end
				user:SendPM(sBot, "The user has been added a block. Now only OPs can download from him.")
				user:SendPM(sBot, "If you want a user to download from him just use !allow.")
			end
			return 1
		elseif (cmd == "!delblock" and user.bOperator) then
			local s,e,nick = strfind(data, "%b<>%s+%S+%s+(%S+)")
			if (nick == nil) then
				user:SendPM(sBot, "Syntax Error, !delblock , you must write a nick.")
			elseif (arrUser[strlower(nick)] == nil) then
				user:SendPM(sBot, "The user "..nick.." is not blocked.")
			else
				arrUser[strlower(nick)] = nil
				if (uLaterPtokax == 1) then
					OnExit()
				end
				user:SendPM(sBot, "The user has been removed the block. Now anyone can download from him.")
			end
			return 1
		elseif (cmd == "!allow" and user.bOperator) then
			local s,e,who,nick = strfind(data, "%b<>%s+%S+%s+(%S+)%s+(%S+)")
			if (nick == nil or who == nil) then
				user:SendPM(sBot, "Syntax Error, !allow  , you must both nicks.")
			elseif (arrUser[strlower(who)] == nil) then
				user:SendPM(sBot, "The user "..who.." is not blocked.")
			elseif (arrUser[strlower(who)][strlower(nick)] ~= nil) then
				user:SendPM(sBot, "The user "..nick.." is already allow to download from "..who)
			else
				arrUser[strlower(who)][strlower(nick)] = user.sName
				if (uLaterPtokax == 1) then
					OnExit()
				end
				user:SendPM(sBot, "The user "..nick.." has been allowed to download from "..who)
			end
			return 1
		elseif (cmd == "!restrict" and user.bOperator) then
			local s,e,who,nick = strfind(data, "%b<>%s+%S+%s+(%S+)%s+(%S+)")
			if (nick == nil or who == nil) then
				user:SendPM(sBot, "Syntax Error, !restrict  , you must both nicks.")
			elseif (arrUser[strlower(who)] == nil) then
				user:SendPM(sBot, "The user "..who.." is not blocked.")
			elseif (arrUser[strlower(who)][strlower(nick)] == nil) then
				user:SendPM(sBot, "The user "..nick.." is not allow to download from "..who)
			else
				arrUser[strlower(who)][strlower(nick)] = nil
				if (uLaterPtokax == 1) then
					OnExit()
				end
				user:SendPM(sBot, "The user "..nick.." is no more allowed to download from "..who)
			end
			return 1
		elseif (cmd == "!blocked" and user.bOperator) then
			local sTmp,usr,aux,usr2 = "The Users the have uploads blocked:"
			for usr, aux in arrUser do
				sTmp = sTmp.."\r\n\r\n--## Users that can download from "..usr..":\r\n\r\n"
				for usr2, aux in arrUser[usr] do
					sTmp = sTmp.."\t"..usr2.." Allowed by: "..aux.."\r\n"
				end
			end
			user:SendPM(sBot, sTmp)
		end
	end

	if (strsub(data,1,12) == "$ConnectToMe") then
		local s,e,to,ip = strfind(data, "$ConnectToMe%s+(%S+)%s+(%d+%.%d+%.%d+%.%d+):")
		if (arrRC[to] == 1) then
			arrRC[to] = nil
		elseif (not user.bOperator and type(arrUser[strlower(to)]) == "table" and arrUser[strlower(to)][strlower(user.sName)] == nil) then
			user:SendPM(sBot, "You can't download from "..to..". If you have any doubt talk with a OP.")
			return 1
		end
	end

	if (strsub(data,1,15) == "$RevConnectToMe") then
		data = strsub(data,1,strlen(data)-1)
		local s,e,from = strfind(data, "$RevConnectToMe%s+%S+%s+(%S+)")
		if (not user.bOperator and type(arrUser[strlower(from)]) == "table" and arrUser[strlower(from)][strlower(user.sName)] == nil) then
			user:SendPM(sBot, "You can't download from "..from..". If you have any doubt talk with a OP.")
			return 1
		end
		arrRC[user.sName] = 1
	end
end

function Serialize(tTable, sTableName, sTab)
	assert(tTable, "tTable equals nil");
	assert(sTableName, "sTableName equals nil");

	assert(type(tTable) == "table", "tTable must be a table!");
	assert(type(sTableName) == "string", "sTableName must be a string!");

	sTab = sTab or "";
	sTmp = ""

	sTmp = sTmp..sTab..sTableName.." = {\n"

	for key, value in tTable do
		local sKey = (type(key) == "string") and format("[%q]",key) or format("[%d]",key);

		if(type(value) == "table") then
			sTmp = sTmp..Serialize(value, sKey, sTab.."\t");
		else
			local sValue = (type(value) == "string") and format("%q",value) or tostring(value);
			sTmp = sTmp..sTab.."\t"..sKey.." = "..sValue
		end

		sTmp = sTmp..",\n"
	end

	sTmp = sTmp..sTab.."}"
	return sTmp
end

function SaveToFile(file , table , tablename)
	writeto(file)
	write(Serialize(table, tablename))
	writeto()
end

function LoadFromFile(file)
	if (readfrom(file) ~= nil) then
		readfrom(file)
		dostring(read("*all"))
		readfrom()
	end
end

Best regards, nErBoS
--## nErBoS Spot ##--

Skyhawk

still no change :-(

i blocked myself and this one user can still download

Skyhawk

could it be a software issue ?

i am using DC:Pro

nErBoS

Hi,

Very strange i made all types of tests and worked ok. Send to my mail in a text file that supports your bullet char your nick and the nick that is sttil downloading from you.

Best regards, nErBoS
--## nErBoS Spot ##--

nErBoS

Hi,

Skyhawk i have tested the BOT and didn't gave me any error. Tell me the address of your HUB and we will meet there to check out the problem.

Best regards, nErBoS
--## nErBoS Spot ##--

Skyhawk

well i am not sure could it be a problem that i am using a beta version of ptokax?

This hub is running PtokaX DC Hub 0.3.3.0 build 15.25 [debug]

nErBoS

Hi,

No because i have tested the script in that version as also. Send me a PM with your HUB address to combine a date to appear in your HUB and have a check with you.

Best regards, nErBoS
--## nErBoS Spot ##--

mOrrI

OH OH OH

THIS SEEMS LIKE A MUST HAVE!!!!


GONA TRY IT!

skandaluz

I'm trying to use this script but i keep gettin this error
Syntax error: function arguments expected;
  last token read: `=' at line 11 in file `C:\Axis_1_Ptokax\scripts\UBlocker.lua'
i was able to use this script before but i took it off and now that i want to put it back i get that error

code:----------------------------------------------------------------------------------## Upload Blocker
--## Requested by charlie
--## Made by nErBoS
--## Commands (only for OPs):
--##   !addblock    -- Will block uploads from the user (only OPs can download from him)
--##   !delblock    -- Will remove the block from the user uploads
--##   !allow    -- Will allow the user "nick" to make downloads from the user "who"
--##   !restrict    -- Will remove the allow from the user "nick" to make downloads from the user "who"
--##   !blocked      -- Will show all user that are blocked and who is allowed to make downloads from him

sBot = "?UBlocker?"

arrUser = {}
fUser = "user.dat"

--## Configuration ##--

uLaterPtokax = 0   -- Choose 0 if you are using a Ptokax version 0.3.3.0 or higher
         -- Choose 1 if you are using a Ptokax version lower then 0.3.3.0

--## END ##--

function Main()
   frmHub:RegBot(sBot)
   frmHub:EnableFullData(1)
   LoadFromFile(fUser)
end

function OnExit()
   SaveToFile(fUser , arrUser , "arrUser")
end

function DataArrival(user, data)
   if (strsub(data,1,1) == "<" or strsub(data,1,5+strlen(sBot)) == "$To: "..sBot) then
      data = strsub(data,1,strlen(data)-1)
      s,e,cmd = strfind(data, "%b<>%s+(%S+)")
      if (cmd == "!addblock" and user.bOperator) then
         local s,e,nick = strfind(data, "%b<>%s+%S+%s+(%S+)")
         if (nick == nil) then
            user:SendPM(sBot, "Syntax Error, !addblock , you must write a nick.")
         elseif (type(arrUser[strlower(nick)]) == "table") then
            user:SendPM(sBot, "The user "..nick.." is already blocked.")
         else
            arrUser[strlower(nick)] ={}
            if (uLaterPtokax == 1) then
               OnExit()
            end
            user:SendPM(sBot, "The user has been added a block. Now only OPs can download from him.")
            user:SendPM(sBot, "If you want a user to download from him just use !allow.")
         end
         return 1
      elseif (cmd == "!delblock" and user.bOperator) then
         local s,e,nick = strfind(data, "%b<>%s+%S+%s+(%S+)")
         if (nick == nil) then
            user:SendPM(sBot, "Syntax Error, !delblock , you must write a nick.")
         elseif (arrUser[strlower(nick)] == nil) then
            user:SendPM(sBot, "The user "..nick.." is not blocked.")
         else
            arrUser[strlower(nick)] = nil
            if (uLaterPtokax == 1) then
               OnExit()
            end
            user:SendPM(sBot, "The user has been removed the block. Now anyone can download from him.")
         end
         return 1
      elseif (cmd == "!allow" and user.bOperator) then
         local s,e,who,nick = strfind(data, "%b<>%s+%S+%s+(%S+)%s+(%S+)")
         if (nick == nil or who == nil) then
            user:SendPM(sBot, "Syntax Error, !allow , you must both nicks.")
         elseif (arrUser[strlower(who)] == nil) then
            user:SendPM(sBot, "The user "..who.." is not blocked.")
         elseif (arrUser[strlower(who)][strlower(nick)] ~= nil) then
            user:SendPM(sBot, "The user "..nick.." is already allow to download from "..who)
         else
            arrUser[strlower(who)][strlower(nick)] = user.sName
            if (uLaterPtokax == 1) then
               OnExit()
            end
            user:SendPM(sBot, "The user "..nick.." has been allowed to download from "..who)
         end
         return 1
      elseif (cmd == "!restrict" and user.bOperator) then
         local s,e,who,nick = strfind(data, "%b<>%s+%S+%s+(%S+)%s+(%S+)")
         if (nick == nil or who == nil) then
            user:SendPM(sBot, "Syntax Error, !restrict , you must both nicks.")
         elseif (arrUser[strlower(who)] == nil) then
            user:SendPM(sBot, "The user "..who.." is not blocked.")
         elseif (arrUser[strlower(who)][strlower(nick)] == nil) then
            user:SendPM(sBot, "The user "..nick.." is not allow to download from "..who)
         else
            arrUser[strlower(who)][strlower(nick)] = nil
            if (uLaterPtokax == 1) then
               OnExit()
            end
            user:SendPM(sBot, "The user "..nick.." is no more allowed to download from "..who)
         end
         return 1
      elseif (cmd == "!blocked" and user.bOperator) then
         local sTmp,usr,aux,usr2 = "The Users the have uploads blocked:"
         for usr, aux in arrUser do
            sTmp = sTmp.."\r\n\r\n--## Users that can download from "..usr..":\r\n\r\n"
            for usr2, aux in arrUser[usr] do
               sTmp = sTmp.."\t"..usr2.." Allowed by: "..aux.."\r\n"
            end
         end
         user:SendPM(sBot, sTmp)
      end
   end

   if (strsub(data,1,12) == "$ConnectToMe" and not user.bOperator) then
      local s,e,from,toip = strfind(data, "$ConnectToMe%s+(%S+)%s+(%d+%.%d+%.%d+%.%d+):")
      if (type(arrUser[strlower(from)]) == "table") then
         if (CheckForPermission(arrUser[strlower(from)],toip) == 0) then
            user:SendPM(sBot, "You can't download from "..from..". If you have any doubt talk with a OP.")
            return 1
            end
      end
   end

   if (strsub(data,1,15) == "$RevConnectToMe" and not user.bOperator) then
      local s,e,to,from = strfind(data, "$RevConnectToMe%s+(%S+)%s+(%S+)")
      if (type(arrUser[strlower(from)]) == "table") then
         if (arrUser[strlower(from)][strlower(to)] == nil) then
            user:SendPM(sBot, "You can't download from "..from..". If you have any doubt talk with a OP.")
            return 1
         end
      end
   end
end

function CheckForPermission(table,ip)
   local usr,aux
   for usr, aux in table do
      if (GetItemByName(usr) ~= nil and GetItemByName(usr).sIP == ip) then
         return 1
      end
   end
   return 0
end

function Serialize(tTable, sTableName, sTab)
   assert(tTable, "tTable equals nil");
   assert(sTableName, "sTableName equals nil");

   assert(type(tTable) == "table", "tTable must be a table!");
   assert(type(sTableName) == "string", "sTableName must be a string!");

   sTab = sTab or "";
   sTmp = ""

   sTmp = sTmp..sTab..sTableName.." = {\n"

   for key, value in tTable do
      local sKey = (type(key) == "string") and format("[%q]",key) or format("[%d]",key);

      if(type(value) == "table") then
         sTmp = sTmp..Serialize(value, sKey, sTab.."\t");
      else
         local sValue = (type(value) == "string") and format("%q",value) or tostring(value);
         sTmp = sTmp..sTab.."\t"..sKey.." = "..sValue
      end

      sTmp = sTmp..",\n"
   end

   sTmp = sTmp..sTab.."}"
   return sTmp
end

function SaveToFile(file , table , tablename)
   writeto(file)
   write(Serialize(table, tablename))
   writeto()
end

function LoadFromFile(file)
   if (readfrom(file) ~= nil) then
      readfrom(file)
      dostring(read("*all"))
      readfrom()
   end
end
---> theonez.no-ip.com <-- MAC - Linux users Welcomed

nErBoS

Hi,

I have found a little bug, so i have edit the last script i have posted. About your erro skandaluz, maybe a bad copy from you the bot you have posted doesn't have any syntax error. Copy my again with careful.

Best regards, nErBoS
--## nErBoS Spot ##--

SMF spam blocked by CleanTalk