Alexyz21
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Публикатор магнитов в общем чате хаба. Магниты формируются из файллиста, предварительно выгруженного в файл 1.dcls. Настраивается время старта, время окончания, периодичность публикации, а также количество магнитов и их скважность в одном блоке. Генератор links.txt, запускается единоразово после выгрузки файллиста в 1.dcls. [links.lua] dcpp={} -- Input File fin = "Z:\\Temp\\1.dcls" -- Output File = Input File in Startup.lua fout = "Z:\\Temp\\links.txt" sline = "\t-<File Name=\"(.-)\" Size=\"(.-)\" TTH=\"(.-)\"/>" sline1 = "\t-<Directory Name=\".-\">%c" sline2 = "\t-</Directory>%c" sline3 = "<FileListing .-\">%c" sline4 = "</FileListing>" sline5 = "<%?xml .-%?>%c" rline = "magnet:%?xt=urn:tree:tiger:%3&xl=%2&dn=%1" fout2 = os.getenv("TEMP").."/greyxxxx.txt" os.execute("bzip2.exe -dc \""..fin.."\" > \""..fout2.."\"") fh = io.input(fout2) links = io.read("*all") io.close(fh) links = string.gsub(links, sline1, "") links = string.gsub(links, sline2, "") links = string.gsub(links, sline3, "") links = string.gsub(links, sline4, "") links = string.gsub(links, sline5, "") links = string.gsub(links, sline, rline) links = string.gsub(links, " ", "%+") links = string.gsub(links, "([\128-\255])", function (c) return string.format("%%%02X", string.byte(c)) end) fh = io.output(io.open(fout,"w")) io.write(links) io.close(fh) -- restart startup.lua dofile(DC():GetAppPath().."Scripts/startup.lua") [startup.lua] dcpp={} T0=2 --Period (Hour) T1=8 --Start (Hour) T2=0 --End (Hour) WT=2 --Links (Second) MM=10 --Max magnet for one times H2=tonumber(string.sub(os.date(time), -8,-7))-T0 S2=os.time()-5 fl=1 iMM=0 fin="Z:\\Temp\\links.txt" --mHub=dc_huburl mHub="dchub://xxxxx.xx" DC():RunTimer(1) function dcpp.OnTimer() H1=tonumber(string.sub(os.date(time), -8,-7)) if (H1>=T1 or H1<=T2) and math.mod(H1,T0)==0 then if (H1>H2 and H1-H2>=T0) or (H2>H1 and 24-H2+H1>=T0) then S1=os.time() if S1-S2>=WT then S2=S1 if fl==1 then f,s,line=io.lines(fin); fl=0 end if iMM<MM then line=f(s,line) if line then if line~="" then if string.sub(line,1,1)~=";" then DC():SendPublicMessage(mHub,DC():ToUtf8(line)) iMM=iMM+1 end else H2=H1; iMM=0 end else fl=1 end else H2=H1; iMM=0 end end end end return nil end DC():PrintDebug("startup.lua started") | Всего записей: 3486 | Зарегистр. 16-06-2007 | Отправлено: 20:23 11-05-2012 | Исправлено: Alexyz21, 20:35 11-05-2012 |
|