thislooksfun

network

Dec 30th, 2012
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.03 KB | None | 0 0
  1. --[[tlfOS Network API]]--
  2.  
  3. function download(sCode, sFile)
  4.  
  5.   local sPath = shell.resolve( sFile )
  6.  
  7.   if fs.exists( sPath ) then
  8.     return false, "File already exists"
  9.   else
  10.     fs.makeDir(sFile)
  11.     fs.delete(sFile)
  12.   end
  13.  
  14.   local response = http.get("http://pastebin.com/raw.php?i="..textutils.urlEncode( sCode ))
  15.  
  16.   if response then
  17.     local sResponse = response.readAll()
  18.     response.close()
  19.    
  20.     local file = fs.open( sPath, "w" )
  21.     file.write( sResponse )
  22.     file.close()
  23.    
  24.     return true
  25.   else
  26.     return false, "Download Failed"
  27.   end
  28. end
  29.  
  30. function update()
  31.   shell.setDir("")
  32.   download("iCNTY7iH", "&SYS&tlf/temp")
  33.   download("DbZapvu3", "&SYS&tlf/temp2")
  34.  
  35.   term.clear()
  36.   term.setCursorPos(1,1)
  37.  
  38.   local temp = nil
  39.  
  40.   local fTemp = io.open("&SYS&tlf/temp", "r")
  41.   local fTemp2 = io.open("&SYS&tlf/temp2", "r")
  42.   local fLocal = io.open("&SYS&tlf/versions", "r")
  43.  
  44.   local tTempPBFC = {}
  45.   local tTempVersions = {}
  46.  
  47.   for line in fTemp2:lines() do
  48.     for name, pbid, filepath in string.gmatch(line, "(.+):(.+):(.+)") do
  49.       tTempPBFC[name] = {pbid, filepath}
  50.     end
  51.   end
  52.  
  53.   for line in fTemp:lines() do
  54.     for name, version in string.gmatch(line, "(.+):(.+)") do
  55.       tTempVersions[name] = version
  56.     end
  57.   end
  58.  
  59.   for line in fLocal:lines() do
  60.     for name, version in string.gmatch(line, "(.+):(.+)") do
  61.       if tonumber(tTempVersions[name]) > tonumber(version) then
  62.         print(name.." v"..tTempVersions[name].." avalible (local version: "..version..")")
  63.         print("Updating "..name)
  64.         temp = tTempPBFC[name]
  65.         pbid = temp[1]
  66.         filepath = temp[2]
  67.         temp = nil
  68.         fs.delete(filepath..name)
  69.         download(pbid, filepath..name)
  70.         print(name.." has been updated to version "..tTempVersions[name])
  71.       end
  72.     end
  73.   end
  74.  
  75.   fs.delete("&SYS&tlf/versions")
  76.   download("iCNTY7iH", "&SYS&tlf/versions")
  77.  
  78.   sleep(5)
  79.  
  80.   fTemp:close()
  81.   fTemp2:close()
  82.   fLocal:close()
  83.  
  84.   fs.delete("&SYS&tlf/temp")
  85. end
Advertisement
Add Comment
Please, Sign In to add comment