Quote1 - [03/06/04] Movie added from (user) :: Newest Movie.....[/SIZE]
2 - [01/06/04] Movie added from (user) :: the 2 newest movie....
3 - [01/06/04] Movie
Quote1 - [03/06/04] Movie added from (user) :: 3 newest movie[/SIZE]
2 - [01/06/04] Movie added from (user) :: the 2 newest movie....
3 - [01/06/04] Movie added NEWEST movie.....
Quote---------------------------------------------------------------------------------
-- FRESH STUFF BY C H I L L A -
---------------------------------------------------------------------------------
curVersion = "V.2.60"
File1 = "FreshStuff.txt"
File2 = "FreshPosters.txt"
File3 = "FreshStuff1.ini"
File4 = "FreshRated.txt"
File5 = "FreshHelpUser.txt"
File6 = "FreshHelpOP.txt"
File7 = "FreshRequest.txt"
File8 = "FreshStuff2.ini"
assert(dofile("Fresh-Files/"..File3),"Fresh-Files/"..File3.." for FreshStuff-"..curVersion..".lua not found")
assert(dofile("Fresh-Files/"..File1),"Fresh-Files/"..File1.." for FreshStuff-"..curVersion..".lua not found")
assert(dofile("Fresh-Files/"..File2),"Fresh-Files/"..File2.." for FreshStuff-"..curVersion..".lua not found")
assert(dofile("Fresh-Files/"..File4),"Fresh-Files/"..File4.." for FreshStuff-"..curVersion..".lua not found")
assert(readfrom("Fresh-Files/"..File5, "r"),"Fresh-Files/"..File5.." for FreshStuff-"..curVersion..".lua not found")
assert(readfrom("Fresh-Files/"..File6, "r"),"Fresh-Files/"..File6.." for FreshStuff-"..curVersion..".lua not found")
assert(dofile("Fresh-Files/"..File7),"Fresh-Files/"..File7.." for FreshStuff-"..curVersion..".lua not found")
assert(dofile("Fresh-Files/"..File8),"Fresh-Files/"..File8.." for FreshStuff-"..curVersion..".lua not found")
FPrefix = gsub(FPrefix, " ", "%%")
AllTypes = ""
for i = 1,getn(ItemTypes) do
AllTypes = AllTypes..ItemTypes..", "
end
addHelp1 = " If you want to add an item type :\r\n"..
"\t\t"..cmd1.." YOURITEM (at least 10 , max 100 characters) or \r\n"..
"\t\t"..cmd1.." ITEMTYPE YOURITEM , in one line in main chat.\r\n"..
"\t\tITEMTYPE's are : "..AllTypes.."\r\n"
addHelp2 = " If you want to add an item type :\r\n"..
"\t\t"..cmd1.." ITEMTYPE YOURITEM (at least 10 , max 100 characters) in one line in main chat.\r\n"..
"\t\tITEMTYPE's are : "..AllTypes.."\r\n"
function Main()
frmHub:UnregBot(bot)
if (RegBot == "ON") then
frmHub:RegBot(bot)
end
TopItems2 = ReadTable(newstuff, 1, Max2)
TopPosters = ShowPosters(posters, Max3)
TopRated = ShowRated(rated, Max4)
Userhelp = ReadHelp(File5)
Ophelp = ReadHelp(File6)
end
function NewUserConnected(curUser)
if (SendOnConnect == "ON") then
curUser:SendData(bot, "\r\n"..
"\t--------- Die "..Max2.." Neusten Dateien --------\r\n"..
TopItems2.."\r\n"..
"\t--------- Die "..Max2.." Neusten Dateien --------")
end
end
OpConnected = NewUserConnected
function DataArrival(curUser,data)
if (strsub(data, 1, 3) == "$To") then
local _,_,whoTo,mes = strfind(data,"$To:%s+(%S+)%s+From:%s+%S+%s+$(.*)")
if (whoTo == bot and strfind(mes,"%b<>%s+(.*)")) then
data = strsub(mes,1,strlen(mes)-1)
HowToSend = "PM"
else
return 0
end
elseif (strsub(data, 1, 1) == "<") then
data = strsub(data,1,strlen(data)-1)
HowToSend = "Main"
else
return 0
end
local _,_,_,cmd = strfind( data, "%b<>%s(["..FPrefix.."])(%S+)" )
if not cmd then
return 0
elseif (strlower(cmd) == strlower(cmd1)) then
if (OnlyOP == "ON") and not curUser.bOperator then
return 1
end
local _,_,_,item = strfind( data, "%b<>%s+(%S+)%s+(.*)" )
if ( item and item ~= "" and strlen(item) < 101 and strlen(item) > 9 and not strfind(strlower(data), strchar(10)) ) then
data = gsub(data, "%c+", " ")
local _,_,_,type,item2 = strfind( data, "%b<>%s+(%S+)%s+(%S+)%s+(.*)" )
if type then
for i = 1,getn(ItemTypes) do
if (strlower(ItemTypes) == strlower(type) and strlen(item2) > 10) then
AddItem(date("[%d/%m/%y]"),ItemTypes,curUser,item2)
return 1
elseif (strlower(ItemTypes) == strlower(type) and strlen(item2) < 10) then
if OnlyType == "ON" then
SendToUser(curUser, addHelp2)
else
SendToUser(curUser, addHelp1)
end
return 1
end
end
if OnlyType == "ON" then
SendToUser(curUser, addHelp2)
return 1
end
elseif not type and (OnlyType == "ON") then
SendToUser(curUser, addHelp2)
return 1
end
AddItem(date("[%d/%m/%y]"),"Item",curUser,item)
return 1
else
if OnlyType == "ON" then
SendToUser(curUser, addHelp2)
else
SendToUser(curUser, addHelp1)
end
end
return 1
elseif (strlower(cmd) == strlower(cmd2)) then
local _,_,args = strfind( data, "%b<>%s+(.*)" )
var1 = 0
gsub(args, "(%S+)", function (w) var1 = var1 + 1 end)
if var1 == 3 then
local _,_,_,num1,num2 = strfind( data, "%b<>%s+(%S+)%s+(%S+)%s+(%S+)%s*" )
num1 = tonumber (num1)
num2 = tonumber (num2)
if ( num1 and num2 and num2 > num1 ) then
Start = num1
if num2-num1 >= 100 then
End = num1 + 100
else
End = num2
end
TopItems1 = ReadTable(newstuff, Start, End)
else
SendToUser(curUser, "To show Stuff type, "..cmd2.." [StartNr.] [EndNr.].")
end
elseif var1 == 2 then
local _,_,_,str1 = strfind( data,"%b<>%s+(%S+)%s+(%S+)%s*")
if tonumber(str1) and tonumber(str1)<101 then
Start = 1
End = tonumber (str1)
TopItems1 = ReadTable(newstuff, Start, End)
elseif tonumber(str1) and tonumber(str1)>100 then
Start = 1
End = 100
TopItems1 = ReadTable(newstuff, Start, End)
else
for i = 1, getn(ItemTypes) do
if (strlower(ItemTypes) == strlower(str1)) then
if (ShowTypes(ItemTypes) ~= "\r\n") then
SendToUser(curUser,"\r\n"..
" ---------------- Fresh "..str1.."'s ----------------\r\n"..
ShowTypes(str1).."\r\n"..
" ---------------- Fresh "..str1.."'s ----------------\r\n")
return 1
elseif (ShowTypes(ItemTypes) == "\r\n") then
SendToUser(curUser, "Sorry no Types found for : "..ItemTypes..".")
return 1
end
end
end
SendToUser(curUser,"To show types, type "..cmd2.." [ITEMTYPE]\r\n"..
"\t\tItemTypes are : "..AllTypes..".")
return 1
end
else
Start = 1
End = Max1
TopItems1 = ReadTable(newstuff, Start, End)
end
SendToUser(curUser,"\r\n"..
"\t---------------- Fresh Stuff : Nr. "..Start.." - "..End.." \t----------------\r\n"..
TopItems1.."\r\n"..
"\t---------------- Fresh Stuff : "..getn(newstuff).." Items Stored\t----------------\r\n")
return 1
elseif (strlower(cmd) == strlower(cmd3) and curUser.bOperator) then
local _,_,_,str1 = strfind( data, "%b<>%s+(%S+)%s+(.*)" )
if str1 and str1~="" then
if tonumber(str1) and newstuff[tonumber(str1)] then
local str1 = tonumber(str1)
local time,type,name,item = newstuff[str1][1],newstuff[str1][2],newstuff[str1][3],newstuff[str1][4]
tremove (newstuff, str1)
WriteFile(newstuff, "newstuff", File1)
TopItems2 = ReadTable(newstuff, 1, Max2)
SendToUser(curUser, " Item : "..str1.." - "..time.." added by "..name.." :: "..item..", was deleted.")
elseif tonumber(str1) and newstuff[tonumber(str1)]==nil then
SendToUser(curUser, " Item Nr. "..str1.." is not in list.")
else
for i = 1,getn(newstuff) do
local time,type,name,item = newstuff[1],newstuff[2],newstuff[3],newstuff[4]
if item == str1 then
tremove (newstuff, i)
WriteFile(newstuff, "newstuff", File1)
TopItems2 = ReadTable(newstuff, 1, Max2)
SendToUser(curUser, " Item : "..i.." - "..time.." added by "..name.." :: "..item..", was deleted.")
return 1
end
end
str1 = format('%q', str1)
SendToUser(curUser, " Item "..str1.." is not in list.")
end
else
SendToUser(curUser, " To delete an item, type: "..cmd3.." [ITEMNUMBER]/[ITEMNAME].")
end
return 1
elseif (strlower(cmd) == strlower(cmd4)) then
SendToUser(curUser," -= The Top "..Max3.." Releasers =-\r\n"..
TopPosters)
return 1
elseif (strlower(cmd) == strlower(cmd5)) then
_,_,_,num1,num2 = strfind( data, "%b<>%s+(%S+)%s+(%S+)%s+(%S+)%s*" )
local num1 = tonumber (num1)
local num2 = tonumber (num2)
if ( num1 and num2 and newstuff[num1] and 0local item = newstuff[num1][4]
if rated[item] then
local xrated,hrated,trated = rated[item][1],rated[item][2],rated[item][3]
xrated=xrated+1
trated=num2+trated
hrated=trated/xrated
hrated=format("%.0f", hrated)
rated[item]= { xrated,hrated,trated }
SendToUser(curUser, "Rated [ "..xrated.." ] times with RATE: [ "..hrated.." ] - ITEM :: "..item)
else
rated[item]= { 1,num2,num2 }
SendToUser(curUser, "Rated [ 1 ] times with RATE: [ "..num2.." ] - ITEM :: "..item)
end
TopRated = ShowRated(rated, Max4)
WriteFile(rated, "rated", File4)
else
SendToUser(curUser, "To Rate an Item type "..cmd5.." [ITEMNUMBER] [RATENUMBER] - The Ratenumber can be form 1 - 10")
end
return 1
elseif (strlower(cmd) == strlower(cmd6)) then
local _,_,_,item = strfind( data, "%b<>%s+(%S+)%s+(.*)" )
if item and item ~= "" then
if rated[item] then
local xrated,hrated = rated[item][1],rated[item][2]
SendToUser(curUser, "Rated [ "..xrated.." ] times with RATE: [ "..hrated.." ] - ITEM :: "..item)
else
item = format('%q', item)
SendToUser(curUser, "Sorry your Item "..item..", has not been rated yet.")
end
else
SendToUser(curUser, "-= Top "..Max4.." Rated Items are =-\r\n"..
TopRated)
end
return 1
elseif (strlower(cmd) == strlower(cmd7)) then
if curUser.bOperator then
SendToUser(curUser, Ophelp)
SendToUser(curUser, "\t+"..cmd12.." [on]/[off]\tLets you regg the FreshBot. Status : "..RegBot)
SendToUser(curUser, "\t+"..cmd13.." [on]/[off]\t Lets you send the 5 newest items on connect. Status : "..SendOnConnect)
SendToUser(curUser, "\t+"..cmd14.." [on]/[off]\t Lets Enable/Disable OnlyOP's posting. Status : "..OnlyOP)
SendToUser(curUser, "\t+"..cmd15.." [on]/[off]\t Lets Enable/Disable OnlyType. Status : "..OnlyType.."\r\n"..
" __________________________________________________________________________\r\n")
Quoteelse
SendToUser(curUser, Userhelp)
end
return 1
elseif (strlower(cmd) == strlower(cmd8)) then
local _,_,_,str1 = strfind( data, "%b<>%s+(%S+)%s+(.*)" )
if str1 and strlen(str1) > 4 then
local message, xitems = SearchItems(str1)
if xitems ~= 0 then
SendToUser(curUser,"\r\n"..
" ---------------- FreshSearch for : "..str1.." ----------------\r\n"..
message.."\r\n"..
" ---------------- "..xitems.." Items found ----------------\r\n")
else
SendToUser(curUser,"No matches found for : "..str1..".")
end
else
SendToUser(curUser,"To search the Stuff type "..cmd9.." [SearchString]\r\n"..
"\t\tThe [SearchString] must be at least 5 chars long.")
end
return 1
elseif (strlower(cmd) == strlower(cmd9)) then
local _,_,_,requestitem = strfind( data, "%b<>%s+(%S+)%s+(.*)" )
if ( requestitem and requestitem~="" and strlen(requestitem)>5 and strlen(requestitem)<100 ) then
for i = 1,getn(requests) do
local item = requests[3]
if ( item and strlower(item) == strlower(requestitem) ) then
SendToUser(curUser, "Your Item is already requested.\r\n"..
"\t\t"..i.." - "..time.." Requested by "..name.." :: "..item)
return 1
end
end
tinsert (requests, 1, { date("[%d/%m/%y]"),curUser.sName,requestitem } )
WriteFile(requests, "requests", File7)
SendToAll(bot, "User: "..curUser.sName.." added a request :: "..requestitem)
else
SendToUser(curUser, "To add a request, type: "..cmd9.." [ITEM], the ITEM must be longer than 5 and maximal 100 characters long.")
end
return 1
elseif (strlower(cmd) == strlower(cmd10)) then
local _,_,args = strfind( data, "%b<>%s+(.*)" )
var1 = 0
gsub(args, "(%S+)", function (w) var1 = var1 + 1 end)
if var1 == 3 then
local _,_,_,num1,num2 = strfind( data, "%b<>%s+(%S+)%s+(%S+)%s+(%S+)%s*" )
num1 = tonumber (num1)
num2 = tonumber (num2)
if ( num1 and num2 and num2 > num1 ) then
Start = num1
if num2-num1 >= 100 then
End = num1 + 100
else
End = num2
end
end
elseif var1 == 2 then
Start = 1
local _,_,_,num1 = strfind( data, "%b<>%s+(%S+)%s+(%S+)%s*" )
if tonumber(num1) and tonumber(num1)<100 then
End = tonumber(num1)
else
End = 100
end
else
Start = 1
End = Max1
end
ShowRequest = ReadRequests(requests, Start, End)
SendToUser(curUser,"\r\n"..
"\t---------------- Fresh Requests : Nr. "..Start.." - "..End.." \t----------------\r\n"..
ShowRequest.."\r\n"..
"\t---------------- Fresh Requests : "..getn(requests).." Items Stored\t----------------\r\n")
return 1
elseif (strlower(cmd) == strlower(cmd11)) and curUser.bOperator then
local _,_,_,str1 = strfind( data, "%b<>%s+(%S+)%s+(.*)" )
if str1 and str1~="" then
if tonumber(str1) and requests[tonumber(str1)] then
local str1 = tonumber(str1)
local time,name,item = requests[str1][1],requests[str1][2],requests[str1][3]
tremove (requests, str1)
WriteFile(requests, "requests", File7)
SendToUser(curUser, " Request : "..str1.." - "..time.." requested by "..name.." :: "..item..", was deleted.")
elseif tonumber(str1) and requests[tonumber(str1)]==nil then
SendToUser(curUser, " Request Nr. "..str1.." is not in list.")
else
for i = 1, getn(requests) do
local time,name,item = requests[1],requests[2],requests[3]
if item == str1 then
tremove (requests, i)
WriteFile(requests, "requests", File7)
SendToUser(curUser, " Request : "..i.." - "..time.." requested by "..name.." :: "..item..", was deleted.")
return 1
end
end
str1 = format('%q', str1)
SendToUser(curUser, " Request "..str1.." is not in list.")
end
else
SendToUser(curUser, " To delete a Request, type: "..cmd11.." [RequestNUMBER]/[RequestNAME].")
end
return 1
elseif (strlower(cmd) == strlower(cmd12)) and curUser.bOperator then
local _,_,_,onoff = strfind( data,"%b<>%s+(%S+)%s+(%S+)%s*")
if onoff and strlower(onoff)=="on" then
RegBot = "ON"
frmHub:RegBot(bot)
SendToUser(curUser, "Bot "..bot.." has been regged.")
SaveINI()
elseif onoff and strlower(onoff)=="off" then
RegBot = "OFF"
frmHub:UnregBot(bot)
SendToUser(curUser, "Bot "..bot.." has been unregged.")
SaveINI()
else
SendToUser(curUser, "To Reg/Unreg the bot type : "..cmd12.." [on]/[off].")
end
return 1
elseif (strlower(cmd) == strlower(cmd13)) and curUser.bOperator then
local _,_,_,onoff = strfind( data,"%b<>%s+(%S+)%s+(%S+)%s*")
if onoff and strlower(onoff)=="on" then
SendOnConnect = "ON"
SendToUser(curUser, "The 5 newest items will now be sent on connect.")
SaveINI()
elseif onoff and strlower(onoff)=="off" then
SendOnConnect = "OFF"
SendToUser(curUser, "No items are now sent on connect.")
SaveINI()
else
SendToUser(curUser, "To Send/NotSend the 5 Newest Items on connect type : "..cmd13.." [on]/[off].")
end
return 1
elseif (strlower(cmd) == strlower(cmd14)) and curUser.bOperator then
local _,_,_,onoff = strfind( data,"%b<>%s+(%S+)%s+(%S+)%s*")
if onoff and strlower(onoff)=="on" then
OnlyOP = "ON"
SendToUser(curUser, "Only OP'S will be able to post new stuff.")
SaveINI()
elseif onoff and strlower(onoff)=="off" then
OnlyOP = "OFF"
SendToUser(curUser, "Everybody will be able to post new stuff.")
SaveINI()
else
SendToUser(curUser, "To Enable/Disable OnlyOP's posting type : "..cmd14.." [on]/[off].")
end
return 1
elseif (strlower(cmd) == strlower(cmd15)) and curUser.bOperator then
local _,_,_,onoff = strfind( data,"%b<>%s+(%S+)%s+(%S+)%s*")
if onoff and strlower(onoff)=="on" then
OnlyType = "ON"
SendToUser(curUser, "One must enter a type to add stuff.")
SaveINI()
elseif onoff and strlower(onoff)=="off" then
OnlyType = "OFF"
SendToUser(curUser, "One doesn't need to enter a type to add stuff.")
SaveINI()
else
SendToUser(curUser, "To Enable/Disable OnlyType, type : "..cmd15.." [on]/[off].")
end
return 1
end
end
Quote--------------------------------------------------------------------------------------------------------------------------------------------
function AddItem(str1,str2,str3,str4)
for i = 1,getn(newstuff) do
if ( strlower(newstuff[4]) == strlower(str4) ) then
SendToUser(str3, " Sorry die Datei "..format('%q', str4).." ist schon Vorhanden in der Liste.\r\n"..
"\t\t"..i.." - "..newstuff[1].." "..newstuff[2].." hochgeladen von "..newstuff[3].." :: "..newstuff[4])
return 1
end
end
if posters[str3.sName]==nil then
posters[str3.sName]=1
WriteFile(posters, "posters", File2)
TopPosters = ShowPosters(posters, Max3)
else
posters[str3.sName]=posters[str3.sName]+1
WriteFile(posters, "posters", File2)
TopPosters = ShowPosters(posters, Max3)
end
tinsert ( newstuff, 1, { str1,str2,str3.sName,str4 } )
WriteFile(newstuff, "newstuff", File1)
TopItems2 = ReadTable(newstuff, 1, Max2)
TopPosters = ShowPosters(posters, Max3)
WriteFile(posters, "posters", File2)
SendToAll(bot," - "..newstuff[1][1].." "..newstuff[1][2].." hochgeladen von "..newstuff[1][3].." :: "..newstuff[1][4])
end
--------------------------------------------------------------------------------------------------------------------------------------------
function SendToUser(curUser, message)
if HowToSend == "PM" then
curUser:SendPM(bot, message)
elseif HowToSend == "Main" then
curUser:SendData(bot, message)
end
end
--------------------------------------------------------------------------------------------------------------------------------------------
function WriteFile(table, tablename, file)
local handle = openfile("Fresh-Files/"..file, "w")
Serialize(table, tablename, handle)
closefile(handle)
end
--------------------------------------------------------------------------------------------------------------------------------------------
function Serialize(tTable, sTableName, hFile, sTab)
sTab = sTab or "";
write(hFile, 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
Serialize(value, sKey, hFile, sTab.."\t");
else
local sValue = (type(value) == "string") and format("%q",value) or tostring(value);
write(hFile, sTab.."\t"..sKey.." = "..sValue);
end
write(hFile, ",\n");
end
write(hFile, sTab.."}");
end
--------------------------------------------------------------------------------------------------------------------------------------------
function SaveINI()
local handle = openfile("Fresh-Files/"..File8,"w")
write(handle,"RegBot = "..format('%q',RegBot).."\r\nSendOnConnect = "..format('%q',SendOnConnect).."\r\nOnlyOP = "..format('%q',OnlyOP).."\r\nOnlyType = "..format('%q',OnlyType))
closefile(handle)
end
--------------------------------------------------------------------------------------------------------------------------------------------
function ReadTable(table, Start, End)
local msg ="\r\n"
for i = Start,End do
if table then
msg = msg.." "..i.." - "..newstuff[1].." "..newstuff[2].." hochgeladen von "..newstuff[3].." :: "..newstuff[4].."\r\n"
end
end
return msg
end
--------------------------------------------------------------------------------------------------------------------------------------------
function ReadRequests(table, Start, End)
local msg ="\r\n"
for i = Start,End do
if table then
msg = msg.." "..i.." - "..table[1].." Requested by "..table[2].." :: "..table[3].."\r\n"
end
end
return msg
end
--------------------------------------------------------------------------------------------------------------------------------------------
function SearchItems(sstring)
local var1 = 0
local msg ="\r\n"
for i = 1,getn(newstuff) do
if ( strfind( strlower(newstuff[4]), strlower(sstring) ) ) then
var1 = var1 + 1
msg = msg.." "..i.." - "..newstuff[1].." "..newstuff[2].." hochgeladen von "..newstuff[3].." :: "..newstuff[4].."\r\n"
end
end
return msg, var1
end
--------------------------------------------------------------------------------------------------------------------------------------------
function ShowTypes(type1)
local var1 = 0
local msg ="\r\n"
for i = 1,getn(newstuff) do
if strlower(newstuff[2]) == strlower(type1) then
if var1 == Max5 then
break
else
var1 = var1 + 1
msg = msg.." "..i.." - "..newstuff[1].." "..newstuff[2].." hochgeladen von "..newstuff[3].." :: "..newstuff[4].."\r\n"
end
end
end
return msg
end
--------------------------------------------------------------------------------------------------------------------------------------------
function ShowPosters(table, Max)
local TCopy = {}
for i,v in table do
tinsert( TCopy, { tonumber(v),i } )
end
sort( TCopy, function(a, b) return (a[1] > b[1]) end)
local msg ="\r\n"
for i = 1,Max do
if TCopy then
msg = msg.."\t\t# "..i.." - "..TCopy[2].." added "..TCopy[1].." Items.\r\n"
end
end
local TCopy = {}
return msg
end
--------------------------------------------------------------------------------------------------------------------------------------------
function ShowRated(table, Max)
local TCopy={}
for i,v in table do
tinsert( TCopy, { tonumber(table[1]), table[2], i } )
end
sort( TCopy, function(a, b) return (a[1] > b[1]) end)
local msg ="\r\n"
for i = 1,Max do
if TCopy then
msg = msg.." # "..i.." - Rated [ "..TCopy[1].." ] times with RATE: [ "..TCopy[2].." ] - ITEM :: "..TCopy[3].."\r\n"
end
end
local TCopy={}
return msg
end
--------------------------------------------------------------------------------------------------------------------------------------------
function ReadHelp(file)
local handle = openfile("Fresh-Files/"..file, "r")
local contents = gsub(read(handle, "*a"), strchar(10), "\r\n")
closefile (handle)
return contents
end
--------------------------------------------------------------------------------------------------------------------------------------------