Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- while not bStop do
- local hubs = {}
- for _,hub in ipairs(tHubs) do
- local pingaddr
- local port = hub[1]:match(":(%d+)$")
- if port then
- pingaddr = hub[1]:gsub(":%d+$","")
- port = tonumber(port)
- else
- pingaddr = hub[1]
- port = 411
- end
- table.insert(hubs,{Addr = hub[1],Info = Ping(pingaddr,port,hub[2],hub[3],hub[4]),Time = os.time(),Country = tDNS[pingaddr] and tGeoIP[tDNS[pingaddr]] or "??"})
- end
- if tCfg.XML then
- local bz,f
- if bBzip or tFtp.Enable then
- f = io.open(path.."tempfile","wb+")
- else
- f = io.open(tCfg.XMLFile,"wb+")
- end
- if f then
- f:write('<?xml version="1.0" encoding="windows-1251"?>\n<Hublist Name="'..tCfg.SiteName:xmlescape()..'">'..
- '<Hubs>\n\t<Columns>\n\t\t<Column Name="Address" Type="string"/>\n\t\t<Column Name="Country" Type="string"/>\n\t\t<Column Name="Description" Type="string"/>\n\t\t'..
- '<Column Name="Maxhubs" Type="int"/>\n\t\t<Column Name="Maxusers" Type="int"/>\n\t\t<Column Name="Minshare" Type="bytes"/>\n\t\t<Column Name="Minslots" Type="int"/>\n\t\t'..
- '<Column Name="Name" Type="string"/>\n\t\t<Column Name="Shared" Type="bytes"/>\n\t\t<Column Name="Users" Type="int"/>\n\t</Columns>\n')
- for _, hub in ipairs(hubs) do
- if tCfg.XMLFilter == 1 or (tCfg.XMLFilter == 2 and hub.Info.Online) or (tCfg.XMLFilter == 3 and hub.Info.State >= 9) then
- f:write('\t<Hub Address="',hub.Addr:xmlescape(),'" Country="',tCountryEn[hub.Country] or "Unknown",
- '" Description="',(hub.Info.Descr or ""):xmlescape(),'" Maxhubs="',hub.Info.MaxHubs or 0,'" Maxusers="',hub.Info.MaxUsers or 0,'" Minshare="',hub.Info.MinShare or 0,
- '" Minslots="',hub.Info.MinSlots or 0,'" Name="',(hub.Info.Name or hub.Addr):xmlescape(),'" Shared="',hub.Info.Share and hub.Info.Share > 0 and math.floor(hub.Info.Share*1024/1000).."000" or 0,'" Users="',hub.Info.Users or 0,'"/>\n')
- end
- end
- f:write('</Hubs></Hublist>')
- if bBzip then
- assert(f:seek("set"))
- local hublist = assert(f:read("*a"))
- f:close()
- os.remove(path.."tempfile")
- if tFtp.Enable then
- local r,e = ftp.put{host = tFtp.Host, port = tFtp.Port, user = tFtp.User, password = tFtp.Pass, path = tCfg.XMLFile, source = ltn12.source.string(bz2.encode(hublist,#hublist))}
- else
- local f2 = io.open(tCfg.XMLFile,"wb")
- if f2 then
- f2:write(bz2.encode(hublist,#hublist))
- f2:close()
- end
- end
Add Comment
Please, Sign In to add comment