PtokaX forum

Archive => Archived 4.0 boards => Help with Lua 4 scripts => Topic started by: GaMeFaNaTiC on 26 October, 2003, 12:20:24

Title: plz plz help with this problem of mine....read in..
Post by: GaMeFaNaTiC on 26 October, 2003, 12:20:24
function doalbums(user)
if (not user.bOperator) or (user.bOperator) then
local albums =""
readfrom("TUNEZ/albums.txt")
while 1 do
local line = read()
if (line == nil) then
break
else
albums = albums..line.."\r\n"
end
end
SendPmToNick(user.sName, Bot, albums)
readfrom()
end
end


This bit lets you do !albums and reads wteva is in the text file. now i want to knw if you can add an extra line so you can use a !addalbum feature in main instead of writing names in the text file. also can u change this bit so only ops can do it. plzzz help. thnks !!!!!!!!!!
Title: suggestion
Post by: Flux on 26 October, 2003, 12:36:04
I can't help u editing the script as i am not that advanced, but why don't you try this script freshstuff-v.2.54 many people use it there hubs for adding Mp3's to vinyls CDA Moviez etc. I use an older version which i have edited to bring character to the hub since i run a DJ hub.
You should be able to find the scripts here http://217.120.180.188/forum4/index.php (//Scripts).

I apologize if this is not what you exactly want and i hope that you will get the help of this small script.. ;)  ;)
Title:
Post by: GaMeFaNaTiC on 26 October, 2003, 12:47:25
ive used that befor but this seems to be better if ther was a add feature.
Title:
Post by: pHaTTy on 26 October, 2003, 12:55:37
function doalbums(user)
if user.bOperator then
local albums =""
readfrom("TUNEZ/albums.txt")
while 1 do
local line = read()
if (line == nil) then
break
else
albums = albums..line.."\r\n"
end
end
SendPmToNick(user.sName, Bot, albums)
readfrom()
end
end

but im not sure what you mean about the add to name of album :S
Title:
Post by: Tuben on 26 October, 2003, 13:06:10
Post the hole script ;)

You need too load the hole Txt whit the albums in a table..

Then Txt in a

Album = {}

But cant help if you dont post the script..

and hove it looks in the Album.txt ;)

Title:
Post by: GaMeFaNaTiC on 26 October, 2003, 13:09:57
lol by add smthing i mean. say wen u wna add text to !albums then people can see the latest albums for example Obie Trice - Cheers. to do this, i have to write that text in the txt file called albums. now in order for all the ops to do this, i need smthing that can make a new command called !addalbum ...... e.g. !addalbum Obie Trice - Cheers. this then adds the text to the txt file and itz added to !albums.

p.s. itz part of the skybot... so the script will be longgg...
Title:
Post by: Tuben on 26 October, 2003, 13:11:23
Then i can make a little script in the side..

So you se hove a mean maybe not good but ;)
Title:
Post by: GaMeFaNaTiC on 26 October, 2003, 13:24:04
i also found this in the script which is similar to what i want. but it is to add and remove vips etc. i also wnted a delete feature which this has.. can some1 change it so it read albums.txt and adds to tht and deletes to tht .

--// Read Level
function ReadVips()
readfrom("CHANNEL-COMMNDS/vips.lst")
while 1 do
local line = read()
if line == nil then
break
else
VipsTotal = VipsTotal + 1
rawset(VipsList,VipsTotal,line)
end
end
readfrom()
end
function ReadSuperOps()
readfrom("CHANNEL-COMMNDS/superops.lst")
while 1 do
local line = read()
if line == nil then
break
else
SuperOpsTotal = SuperOpsTotal + 1
rawset(SuperOpsList,SuperOpsTotal,line)
end
end
readfrom()
end
function ReadAdmin()
readfrom("CHANNEL-COMMNDS/admin.lst")
while 1 do
local line = read()
if line == nil then
break
else
AdminTotal = AdminTotal + 1
rawset(AdminList,AdminTotal,line)
end
end
readfrom()
end
--// Write Level
function WriteVips()
writeto("SkyBot/vips.lst")
for i=1,VipsTotal,1 do
write(rawget(VipsList,i).."\n")
end
writeto()
end
function WriteSuperOps()
writeto("SkyBot/superops.lst")
for i=1,SuperOpsTotal,1 do
write(rawget(SuperOpsList,i).."\n")
end
writeto()
end
function WriteAdmin()
writeto("SkyBot/admin.lst")
for i=1,AdminTotal,1 do
write(rawget(AdminList,i).."\n")
end
writeto()
end
--// Delete Level
function DeleteVips(Nick)
errlvl = 1
for i=1,VipsTotal,1 do
if rawget(VipsList,i) == Nick then
if i ~= VipsTotal then
rawset(VipsList,i,rawget(VipsList,VipsTotal))
end
VipsTotal = VipsTotal - 1
SortVips()
WriteVips()
errlvl = 0
break
end
end
-- returns 1 if Vips could not be found
return errlvl
end
function DeleteSuperOp(opNick)
errlvl = 1
for i=1,SuperOpsTotal,1 do
if rawget(SuperOpsList,i) == opNick then
if i ~= SuperOpsTotal then
rawset(SuperOpsList,i,rawget(SuperOpsList,SuperOpsTotal))
end
SuperOpsTotal = SuperOpsTotal - 1
SortSuperOps()
WriteSuperOps()
errlvl = 0
break
end
end
-- returns 1 if SuperOp could not be found
return errlvl
end
function DeleteAdmin(opNick)
errlvl = 1
for i=1,AdminTotal,1 do
if rawget(AdminList,i) == opNick then
if i ~= AdminTotal then
rawset(AdminList,i,rawget(AdminList,SuperOpsTotal))
end
AdminTotal = AdminTotal - 1
SortAdmin()
WriteAdmin()
errlvl = 0
break
end
end
-- returns 1 if Admin level could not be found
return errlvl
end
Title:
Post by: Tuben on 26 October, 2003, 15:17:20
You can try this.



BotName = "-Album_Databas-"

function Main()
frmHub:RegBot(BotName)
LoadAlbum()
end

Albums = "Albums.ini"


AlbumArray = {}


function LoadAlbum()
readfrom(Albums)
while 1 do
local line = read()
if line == nil then
break
else
        iGrupp = strsub(line, 1, strfind(line, ";")-1)
                         iAlbum = strsub(line, strfind(line, ";")+1,-1)
AlbumArray[iGrupp] = iAlbum

end
end
readfrom()
end

function WriteAlbum()
local handle = openfile(Albums,"w")
for iGrupp,iAlbum in AlbumArray do
write(handle,""..iGrupp..";"..iAlbum.."\r\n")
writeto()
end
closefile(handle)
end
function GetArgs2(sdata)
local _,_, arg1,arg2 = strfind(sdata,"%S+%s+%S+%s+(.*);(.*)")
return arg1,arg2
end
function GetArgs5(sdata)
local _,_, arg4,arg5 = strfind(sdata,"$To:%s+%S+%s+From:%s+%S+%s+$%S+%s+%S+%s+(.*);(.*)")
return arg4,arg5
end
function DataArrival(curUser,sdata)


if (strsub(sdata,1,4) == "$To:") or strfind(sdata,"<")  then
sdata = strsub(sdata,1,-2)
local _,_,   check,cmd = strfind(sdata,"$To:+%s+(%S+)%s+From:+%s+%S+%s+$+%S+%s+(%S+)")
local _,_,   cmd = strfind(sdata,"%b<>%s+(%S+)")
if (check == BotName) or (strsub(sdata,1,1) ~= "$")  then

if cmd == "!albums" then
Redalbums(curUser)

elseif cmd=="!searchgrupp" then
SearchGrupp(curUser,sdata)

elseif cmd == "!addalbum" and curUser.bOperator  then
AddAlbum(cmd,curUser,sdata)
end
end
end
end

function AddAlbum(cmd,curUser,sdata)
if strsub(sdata,1,4) == "$To:" then
arg1,arg2=GetArgs5(sdata)
else
arg1,arg2=GetArgs2(sdata)
end


if arg1==nil or arg2==nil then
curUser:SendData(BotName,"SyntaX is wrong...")
return 1
end
for i,n in AlbumArray do
if n == arg2 then
curUser:SendData(BotName,"The Album ( "..arg2.." ) alredady exist in the file..")
return 1
end
end
appendto(Albums)
write("\r\n"..arg1..";"..arg2)
writeto()
LoadAlbum()
SendToOps(BotName,"New album is added: "..arg1.." - "..arg2)
end


function Redalbums(curUser)
readfrom(Albums)
local message = ""
while 1 do
local line = read()
if (line == nil) then  break  else
message = message..line.."\r\n"
Suba = gsub(message,";"," - ")
end
end
curUser:SendPM(BotName,"\r\nHer you have all albums in the DataBas.\r\n\r\n"..Suba)
end



Commands is. !addalbum ;

!albums

And you must do a Albums.ini

and wite at the first line Grupp;Album
Title:
Post by: GaMeFaNaTiC on 26 October, 2003, 16:08:31
elo again... thnks for this script but what it grup :S and how to i make a albums.ini file ? wher do i hav to put it.
Title:
Post by: Tuben on 26 October, 2003, 16:25:36
[ DOWNLOAD ] (http://213.113.240.245/Scripts.rar)

Download that.
Title:
Post by: GaMeFaNaTiC on 26 October, 2003, 16:45:11
ok got it now wt is grup.... can i also delete or is it only add.... thnks
Title:
Post by: GaMeFaNaTiC on 26 October, 2003, 16:54:05
yo tuben dnt wry mate.. i just wnted a feature that can write in main and txt wil go to the txt file. from the skybot. dint wnt to make other scripts. i use skybot 0.2 if some1 knws how to make a write function to the albums thn plz help. thnks :D
Title:
Post by: Tuben on 26 October, 2003, 16:54:13
Only to add.

!addalbum ;
Title:
Post by: Tuben on 26 October, 2003, 17:15:29
I now ;))

;PPP

But i had it in my Hdd ;))

This one have a search funktion also ;))



BotName = "-Album_Databas-"

function Main()
frmHub:RegBot(BotName)
LoadAlbum()
end

Albums = "Albums.ini"


AlbumArray = {}


function LoadAlbum()
readfrom(Albums)
while 1 do
local line = read()
if line == nil then
break
else
        iGrupp = strsub(line, 1, strfind(line, ";")-1)
                         iAlbum = strsub(line, strfind(line, ";")+1,-1)
AlbumArray[iGrupp] = iAlbum

end
end
readfrom()
end

function WriteAlbum()
local handle = openfile(Albums,"w")
for iGrupp,iAlbum in AlbumArray do
write(handle,""..iGrupp..";"..iAlbum.."\r\n")
writeto()
end
closefile(handle)
end
function GetArgs2(sdata)
local _,_, arg1,arg2 = strfind(sdata,"%S+%s+%S+%s+(.*);(.*)")
return arg1,arg2
end
function GetArgs1(sdata)
local _,_, arg1 = strfind(sdata,"%S+%s+%S+%s+(.*)")
return arg1
end
function GetArgs4(sdata)
local _,_, arg4 = strfind(sdata,"$To:%s+%S+%s+From:%s+%S+%s+$%S+%s+%S+%s+(.*)")
return arg4
end
function GetArgs5(sdata)
local _,_, arg4,arg5 = strfind(sdata,"$To:%s+%S+%s+From:%s+%S+%s+$%S+%s+%S+%s+(.*);(.*)")
return arg4,arg5
end
function DataArrival(curUser,sdata)


if (strsub(sdata,1,4) == "$To:") or strfind(sdata,"<")  then
sdata = strsub(sdata,1,-2)
local _,_,   check,cmd = strfind(sdata,"$To:+%s+(%S+)%s+From:+%s+%S+%s+$+%S+%s+(%S+)")
local _,_,   cmd = strfind(sdata,"%b<>%s+(%S+)")
if (check == BotName) or (strsub(sdata,1,1) ~= "$")  then

if cmd == "!albums" then
Redalbums(curUser)

elseif cmd=="!searchgroup" then
SearchGrupp(curUser,sdata)

elseif cmd=="!searchalbum" then
SearchAlbum(curUser,sdata)

elseif cmd == "!addalbum" and curUser.bOperator  then
AddAlbum(cmd,curUser,sdata)
end
end
end
end

function AddAlbum(cmd,curUser,sdata)
if strsub(sdata,1,4) == "$To:" then
arg1,arg2=GetArgs5(sdata)
else
arg1,arg2=GetArgs2(sdata)
end


if arg1==nil or arg2==nil then
curUser:SendData(BotName,"SyntaX is wrong...")
return 1
end
for i,n in AlbumArray do
if n == arg2 then
curUser:SendData(BotName,"The Album ( "..arg2.." ) alredady exist in the file..")
return 1
end
end
appendto(Albums)
write("\r\n"..arg1..";"..arg2)
writeto()
LoadAlbum()
SendToOps(BotName,"New album is added: "..arg1.." - "..arg2)
end


function Redalbums(curUser)
readfrom(Albums)
local message = ""
while 1 do
local line = read()
if (line == nil) then  break  else
message = message..line.."\r\n"
Suba = gsub(message,";"," - ")
end
end
curUser:SendPM(BotName,"\r\nHer you have all albums in the DataBas.\r\n\r\n"..Suba)
end


function SearchGrupp(curUser,sdata)
if strsub(sdata,1,4) == "$To:" then
arg1=GetArgs4(sdata)
else
arg1=GetArgs1(sdata)
end
if arg1==nil then
curUser:SendData(BotName,"The syntax is wrong...")
return 1
end
for i,n in AlbumArray do
if strfind(i,arg1) then
curUser:SendPM(BotName,"\r\nI have found this matches too the search for the group "..arg1.."\r\n"..strrep("~",40).."\r\n\r\n"..i.." - "..n)
end



end
end

function SearchAlbum(curUser,sdata)
if strsub(sdata,1,4) == "$To:" then
arg1=GetArgs4(sdata)
else
arg1=GetArgs1(sdata)
end
if arg1==nil then
curUser:SendData(BotName,"The syntax is wrong...")
return 1
end
for i,n in AlbumArray do
if strfind(n,arg1) then
curUser:SendPM(BotName,"\r\nI have found this matches too the search for the album "..arg1.."\r\n"..strrep("~",40).."\r\n\r\n"..i.." - "..n)
end



end
end




Dostn mather but it works ..So why dont use it..

!searchalbum and !searchgroup ;))))))

Have a nice day..

"Edit"

Why dont you do it a Cp can do it ;))