PtokaX forum

Archive => Archived 4.0 boards => Request for Lua 4 scripts => Topic started by: slick on 25 September, 2005, 03:02:21

Title: convert this please
Post by: slick on 25 September, 2005, 03:02:21
I'm sorry to be a pest but I can't find what i'm looking for could somebody please convert this to lua 5






---------------------

-- LEECHBLOCKER 02 -- for PtokaX TD4

---------------------

-- Created by SAMPLERman - HUB: samplerman.no-ip.info

-- 5/August/2003

-- Based on an idea by OpiumVolage and RabidWombat

-- And thanks AGAIN to RabidWombat for new ideas



-- This LUA script prevents users that are not registered in the hub (=aliens)

-- from connecting to other users (for downloading).

-- New users (=aliens) can chat, upload and be searched. They just can't download.



-- This way your previously private hub can again be public.



-- Optionally, the script also blocks searches (from nonregged users).

-- However, it is recommended that you allow everyone to search your hub, so that

-- new users know what they are missing.



-- NEW in version 02:

-- To allow an alien to download for 1 session, OPs can type this command:

-- !letleech



-- To do for next version:

-- Optionally, aliens can download off of other aliens



-- There are 2 kinds of hubs:

-- 1) Open hubs for sharing anything

-- 2) Small hubs that concentrate on a special interest (e.g. classical sheet music)



-- This script is NOT recommended for hub kind #1, where it is enough to

-- control how many GB users are sharing.

-- Because in hub type #1 there is no point in registering users, this script

-- should be adapted to make shared amount the criteria for letting download.

-- Even better, for hub type #1 users who share little should be allowed to download

-- from other people who share little.

-- Freedom is a strength of the Direct Connect community; please do not cut into

-- people's freedom except when absolutely necessary.

-- This script is only for closed hubs with a very specific subject.



-------------------------------

-- SOURCES OF SCRIPTING INFO --

-------------------------------

-- Scripting.txt (comes with PtokaX)

--

-- LUA reference manual 4.0.pdf



----------------------

-- GLOBAL VARIABLES -- make changes here only

----------------------

smDebugging = "0" -- Default is "0" (silent mode). "1" sends msgs to OPs

smBlockSearches = "0" -- Default is "0" (do not block searches)

smBlockSearchExceptions = { "scores", "sheet music" }



MsgToAliens = "\t\t\t*** warning***\r\n\t"..

"You are unable to download in this hub,only registered users can download.\r\n\t"..

"You may still search (see what your missing) and chat\r\n\t"..


"\tIn order to become a registered user:\r\n\t"..

"1) Ask an OP to be registered (provide a password), he/she will check your share.\r\n\t"..

"2) The Op will download 1 file from you (mp3) your IP will be recorded.\r\n\t"..

"3) Depending if everything checks out you will be accepted ,If not you will be informed why.\r\n\t"..


"\r\n\t"..

"\t\t\tWe hope you will join us."



LetLeechCommand = "!letleech"



----------------------------------

-- Do not change anything below --

----------------------------------

smBot = frmHub:GetHubBotName() -- This line gets bot name from PtokaX hubsoftware;

-- therefore, your Hub Bot should be enabled.



ToBlock = { "^$ConnectToMe%s(%S+)", "^$RevConnectToMe%s(%S+)", "^$Search%s+(%S+)"}

LetLeech = {}



--// This function is called when hub or script starts

function Main()

frmHub:EnableFullData(1)

frmHub:UnregBot(smBot)

frmHub:RegBot(smBot)

--// If thus configured, remove search from blocking table:

if smBlockSearches == "0" then

for i,v in ToBlock do

if v == "^$Search%s+(%S+)" then ToBlock = nil end

end

end

end



--// This function is fired when a new user (non-OP) finishes login

function NewUserConnected(user)

if user.iProfile == -1 then

user:SendPM(smBot,"\r\n"..MsgToAliens)

end

end



--// This function is fired when new data arrives

function DataArrival (user, data)



--// See if data is the !letleech command:

if strsub(data, 1, 1) == "<" then

local line=strsub(data,1,strlen(data)-1) -- remove last char

local s,e,cmd = strfind(line, "%b<>%s+(%S+)")

local s,e,arg = strfind(line, "%b<>%s+%S+%s+(%S+)")

if strlower(cmd)==strlower(LetLeechCommand) then

if user.iProfile ~= 0 and user.iProfile ~= 1 then

SendToAll(smBot, "...but you are not an OP!")

return nil

end

who = GetItemByName(arg)

if not who then

SendToOps(smBot, arg.." is not online.")

return 1

end

if who.iProfile ~= -1 then

SendToOps(smBot, arg.." is registered and does not need a leech license.")

return 1

end

LetLeech[arg] = 1

SendToOps(smBot,arg.." has been granted a special leech license.")

who:SendData(smBot,arg..", you are now authorized to download for this session.")

return 1

end

end



--// See if data should be blocked:

for _,blockstring in ToBlock do

local _, _, who = strfind(data, blockstring)

if who then return smBlock(user,data,who) end

end

end



function smBlock(user,data,who)

local report

local profnam = GetProfileName(user.iProfile)

if profnam then

profnam = strlower(profnam)

else

profnam = "alien"

end

--// Activity by Masters, OPs, VIPs and REGs are just reported to OPs:

--// Also, searches pass if they are in the exception list:

--// Data also passes if user is in LetLeech list:

if (user.iProfile ~= -1) or smMatchException(data)

or IsInLeechList(user) then

report = "\t"..user.sName.." ("..profnam..") sends:\r\n\t"..data

smDebugToOPs(report)

return nil

end

--// Alien (not registered) users get blocked:

local report = "\tBlocked from "..user.sName.." ("..

profnam.."):\r\n\t"..data

smDebugToOPs(report)

return 1

end



function smMatchException(data)

if strfind (data, "^$Search%s+(%S+)") then

for _,exceptword in smBlockSearchExceptions do

if strfind (strlower(data), strlower(exceptword)) then

return 1

end

end

end

return nil

end



function IsInLeechList(user)

for i,v in LetLeech do

if i == user.sName then return 1 end

end

return nil

end



function smDebugToOPs(data)

if smDebugging == "1" then

SendToOps(smBot,data)

end

end

Title:
Post by: Dessamator on 25 September, 2005, 11:01:42
It has already been down, search for "download blocker"  or anti leech.
Title:
Post by: slick on 27 September, 2005, 13:17:05
Me again :) so far I think i've tried every version of a "leechblocker" I could find,still can't find the one  I want. Is there a page where creators/scripts are listed like the old lua 4 was cause if it is I'd appreciate this link.If not can somebody please post a link here where I can find the above script converted to lua 5
Title:
Post by: bastya_elvtars on 27 September, 2005, 13:27:26
QuoteOriginally posted by slick
Me again :) so far I think i've tried every version of a "leechblocker" I could find,still can't find the one  I want. Is there a page where creators/scripts are listed like the old lua 4 was cause if it is I'd appreciate this link.If not can somebody please post a link here where I can find the above script converted to lua 5

Go to the script database, otherwise go to //www.plop.nl.
Title:
Post by: slick on 02 October, 2005, 02:53:35
I have 2 d/l blockers but neither does what i'm looking for :( I believe one doesn't work and the other completly blocks everbody from downloading regged included could somebody please paste a link here where i can find the above script i'm at my wits end and considering going back to lua 4 scripts just so i can use this