Guest User

Untitled

a guest
Oct 22nd, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.38 KB | None | 0 0
  1. while not bStop do
  2. local hubs = {}
  3. for _,hub in ipairs(tHubs) do
  4. local pingaddr
  5. local port = hub[1]:match(":(%d+)$")
  6. if port then
  7. pingaddr = hub[1]:gsub(":%d+$","")
  8. port = tonumber(port)
  9. else
  10. pingaddr = hub[1]
  11. port = 411
  12. end
  13.  
  14. 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 "??"})
  15. end
  16.  
  17. if tCfg.XML then
  18. local bz,f
  19. if bBzip or tFtp.Enable then
  20. f = io.open(path.."tempfile","wb+")
  21. else
  22. f = io.open(tCfg.XMLFile,"wb+")
  23. end
  24. if f then
  25. f:write('<?xml version="1.0" encoding="windows-1251"?>\n<Hublist Name="'..tCfg.SiteName:xmlescape()..'">'..
  26. '<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'..
  27. '<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'..
  28. '<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')
  29.  
  30. for _, hub in ipairs(hubs) do
  31. if tCfg.XMLFilter == 1 or (tCfg.XMLFilter == 2 and hub.Info.Online) or (tCfg.XMLFilter == 3 and hub.Info.State >= 9) then
  32. f:write('\t<Hub Address="',hub.Addr:xmlescape(),'" Country="',tCountryEn[hub.Country] or "Unknown",
  33. '" Description="',(hub.Info.Descr or ""):xmlescape(),'" Maxhubs="',hub.Info.MaxHubs or 0,'" Maxusers="',hub.Info.MaxUsers or 0,'" Minshare="',hub.Info.MinShare or 0,
  34. '" 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')
  35. end
  36. end
  37.  
  38. f:write('</Hubs></Hublist>')
  39.  
  40. if bBzip then
  41. assert(f:seek("set"))
  42. local hublist = assert(f:read("*a"))
  43. f:close()
  44. os.remove(path.."tempfile")
  45. if tFtp.Enable then
  46. 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))}
  47. else
  48. local f2 = io.open(tCfg.XMLFile,"wb")
  49. if f2 then
  50. f2:write(bz2.encode(hublist,#hublist))
  51. f2:close()
  52. end
  53. end
Add Comment
Please, Sign In to add comment