READ THE RULES
0 Members and 1 Guest are viewing this topic.
----------------------------------------------------------------------------------------------------------- Mlink.Library.v3.0a.LUA5.X-PtokaX [ by: St0ne db ] [Modded by: lUk3f1l3w4lK3R]------------------------------------------------------------------------------------------------------------- A new kind of release and request bot.------[ Tested With ]------------------------------------------------------------------------------------------ PtokaX v0.3.5.1c & PtokaX v0.3.5.1d - [ Lua 5.0.3 and Lua 5.1.1 ]---- Version 3.0 tested with-- PtokaX v0.4.1.2------[ Version 3.0a Change Log ]-[by lUk3f1l3w4lK3R]------------------------------------------ Fixed: Bug in change skin------[ Version 3.0 Change Log ]-[by lUk3f1l3w4lK3R]------------------------------------------- Added: Error report to OP in pm-- Added: Memory use report in pm (when script is started and stopped)-- Added: Message to user that RC commands are enabled (Send in main)-- Added: RC SubMenu - taken from scriptname or use "Custom Name"-- Changed: RC Menu - is now taken from hubname or use "Custom Name"-- Added: Help (sends available commands to user in main)-- Added: Converted to new API
tHelp = { --Syntax = {<command>, <permission (must return pUser/pAdmin)>, <description>, <RC location + name>, <RC params (include a space before the params)>}, --Wizard commands {tCmd.sAddRel, wAccess["AddRel"], "Add a release", "Add Release", ""}, {tCmd.sReq, wAccess["AddReq"], "Add a request", "Add Request", ""}, {tCmd.sDelRel, wAccess["DelRel"], "Delete a release/request", "Delete Release/Request", ""}, {tCmd.sShowRel, wAccess["ShowRel"], "Show releases", "Show Releases", ""}, {tCmd.sAddCat, wAccess["AddCat"], "Add a release category", "Categories\\Add Category", ""}, {tCmd.sDelCat, wAccess["DelCat"], "Delete a release category", "Categories\\Delete Category", ""}, --Quick commands {tCmd.qComment, tAccess[tCmd.qComment], "Show your releases comments", "Show My Comments", ""}, {tCmd.qMag, tAccess[tCmd.qMag], "Show all releases with maglinks", "Show MagLinks", ""}, {tCmd.qRank, tAccess[tCmd.qRank], "Show your releases and rank", "Show My Profile", ""}, {tCmd.qClean, tAccess[tCmd.qClean], "Clean the release list", "Clean Releases", ""},}
--Returns a string containing help on using MLink Lib's functionsgetHelp = function (user, param) local str = "\n\n\tRELEASE/REQUEST HELP:\n" if param == nil or param == "" then --General help for _, item in ipairs (tHelp) do if (item[2][user.iProfile] == 1) then local a = item[1] if string.len(a) < 7 then a = a .. "\t" end str = str.."\n\t"..tVar.sTrig..a.."\t\t"..item[3] end end return str.."\n\n\tType "..tVar.sTrig..tCmd.qHelp.." <command> for info on that specific command\n" else --look for specific match for _, item in ipairs (tHelp) do if (param == item[1] and item[2][user.iProfile] == 1) then return str.."\n\tCommand: "..tVar.sTrig..item[1].."\n\tDescription: "..item[3].."\n\ end end --filter by text str = str.."\n\tCommands filtered by '"..param.."':\n" local found = false for _, item in ipairs (tHelp) do local a = item[1] if (string.find(a, param) and item[2][user.iProfile] == 1) then if string.len(a) < 7 then a = a .. "\t" end found = true str = str.."\n\t"..tVar.sTrig..a.."\t\t"..item[3] end end if found then return str.."\n\n\tType "..tVar.sTrig..tCmd.qHelp.." <command> for info on that specific command\n" else return str.."\n\tSorry, no commands found, try just '"..tVar.sTrig..tCmd.qHelp.."'\n" end endend
Core.SendToUser(user, getHelp(user, param))
if string.lower(tVar.sRC) == "on" then
if string.lower(tVar.sRC) == "on" then if Core.GetUserValue(user,12) then local str = "" for _, item in ipairs (tHelp) do if (item[2][user.iProfile] == 1) then str = str.."$UserCommand 1 3 "..tVar.sRCMenu.."\\"..tVar.sRCSubMenu.."\\"..item[4].."$<%[mynick]> "..tVar.sTrig..item[1]..item[5].."||" end end Core.SendToUser(user, str.."<".tVar.sBot.."> Welcome "..user.sNick.." MLinkLib 3.0 commands enabled. Right click hub tab or user list for menu.|") endend
Wizard.AddVote[5](skin)
[5] = function(skin) return doLoadFile("skin/"..skin.."/AddVote5.txt");end,
elseif step == 5 and string.lower(data) == "yes" then
elseif step == 5 and string.lower(data) == "yes" then LibTask.Vote(user,temp); msg = Wizard.AddVote[5](); Wizard.InitTemp(user,"Clear");
elseif step == 4 then
if Library[tonumber(temp.rel.cat)]["items"][tonumber(temp.rel.var)]["voted"][user.sNick] then temp.vote.rating = "Not Rated";end
url = require("socket.url")local ansi_decode={ [128]='\208\130',[129]='\208\131',[130]='\226\128\154',[131]='\209\147',[132]='\226\128\158',[133]='\226\128\166', [134]='\226\128\160',[135]='\226\128\161',[136]='\226\130\172',[137]='\226\128\176',[138]='\208\137',[139]='\226\128\185', [140]='\208\138',[141]='\208\140',[142]='\208\139',[143]='\208\143',[144]='\209\146',[145]='\226\128\152', [146]='\226\128\153',[147]='\226\128\156',[148]='\226\128\157',[149]='\226\128\162',[150]='\226\128\147',[151]='\226\128\148', [152]='\194\152',[153]='\226\132\162',[154]='\209\153',[155]='\226\128\186',[156]='\209\154',[157]='\209\156', [158]='\209\155',[159]='\209\159',[160]='\194\160',[161]='\209\142',[162]='\209\158',[163]='\208\136', [164]='\194\164',[165]='\210\144',[166]='\194\166',[167]='\194\167',[168]='\208\129',[169]='\194\169', [170]='\208\132',[171]='\194\171',[172]='\194\172',[173]='\194\173',[174]='\194\174',[175]='\208\135', [176]='\194\176',[177]='\194\177',[178]='\208\134',[179]='\209\150',[180]='\210\145',[181]='\194\181', [182]='\194\182',[183]='\194\183',[184]='\209\145',[185]='\226\132\150',[186]='\209\148',[187]='\194\187', [188]='\209\152',[189]='\208\133',[190]='\209\149',[191]='\209\151'}local utf8_decode={ [128]={[147]='\150',[148]='\151',[152]='\145',[153]='\146',[154]='\130',[156]='\147',[157]='\148',[158]='\132',[160]='\134',[161]='\135',[162]='\149',[166]='\133',[176]='\137',[185]='\139',[186]='\155'}, [130]={[172]='\136'}, [132]={[150]='\185',[162]='\153'}, [194]={[152]='\152',[160]='\160',[164]='\164',[166]='\166',[167]='\167',[169]='\169',[171]='\171',[172]='\172',[173]='\173',[174]='\174',[176]='\176',[177]='\177',[181]='\181',[182]='\182',[183]='\183',[187]='\187'}, [208]={[129]='\168',[130]='\128',[131]='\129',[132]='\170',[133]='\189',[134]='\178',[135]='\175',[136]='\163',[137]='\138',[138]='\140',[139]='\142',[140]='\141',[143]='\143',[144]='\192',[145]='\193',[146]='\194',[147]='\195',[148]='\196', [149]='\197',[150]='\198',[151]='\199',[152]='\200',[153]='\201',[154]='\202',[155]='\203',[156]='\204',[157]='\205',[158]='\206',[159]='\207',[160]='\208',[161]='\209',[162]='\210',[163]='\211',[164]='\212',[165]='\213',[166]='\214', [167]='\215',[168]='\216',[169]='\217',[170]='\218',[171]='\219',[172]='\220',[173]='\221',[174]='\222',[175]='\223',[176]='\224',[177]='\225',[178]='\226',[179]='\227',[180]='\228',[181]='\229',[182]='\230',[183]='\231',[184]='\232', [185]='\233',[186]='\234',[187]='\235',[188]='\236',[189]='\237',[190]='\238',[191]='\239'}, [209]={[128]='\240',[129]='\241',[130]='\242',[131]='\243',[132]='\244',[133]='\245',[134]='\246',[135]='\247',[136]='\248',[137]='\249',[138]='\250',[139]='\251',[140]='\252',[141]='\253',[142]='\254',[143]='\255',[144]='\161',[145]='\184', [146]='\144',[147]='\131',[148]='\186',[149]='\190',[150]='\179',[151]='\191',[152]='\188',[153]='\154',[154]='\156',[155]='\158',[156]='\157',[158]='\162',[159]='\159'},[210]={[144]='\165',[145]='\180'}}local nmdc = { [36] = '$', [124] = '|'}function AnsiToUtf8(s) local r, b = '' for i = 1, s and s:len() or 0 do b = s:byte(i) if b < 128 then r = r..string.char(b) else if b > 239 then r = r..'\209'..string.char(b - 112) elseif b > 191 then r = r..'\208'..string.char(b - 48) elseif ansi_decode[b] then r = r..ansi_decode[b] else r = r..'_' end end end return rendfunction Utf8ToAnsi(s) local a, j, r, b = 0, 0, '' for i = 1, s and s:len() or 0 do b = s:byte(i) if b < 128 then if nmdc[b] then r = r..nmdc[b] else r = r..string.char(b) end elseif a == 2 then a, j = a - 1, b elseif a == 1 then a, r = a - 1, r..utf8_decode[j][b] elseif b == 226 then a = 2 elseif b == 194 or b == 208 or b == 209 or b == 210 then j, a = b, 1 else r = r..'_' end end return rend
["LatestRel"] = function(temp) --local s = "\tID:\tИнформация:\n\t"..string.rep("-",160) local s = "" local d = Wizard.Show.Divider(temp.skin); for z = TableMaxSize(LibLast), 1, -1 do local i = tonumber(LibLast[z]["cat"]); local n = tonumber(LibLast[z]["rel"]); local mLink = Library[i]["items"][n]["mlink"]; local name = Library[i]["items"][n]["name"]; if mLink == "Не задано" then name = url.unescape(name); name = Utf8ToAnsi(name); mLink = "" else mLink = url.unescape(mLink); mLink = Utf8ToAnsi(mLink); mLink = "\n\t\tMagnet: "..mLink end local r = "\n\t"..i.."."..n.."\t"..name .." из категории: "..Library[i]["cname"] ..". Автор: "..Library[i]["items"][n]["poster"]..", дата "..Library[i]["items"][n]["date"]..mLink s = s..string.gsub(d,"{release}",r); --s = string.gsub(d,"{release}",r); end return s; end,