Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local function ReadFile(path)
- local f = fs.open(path, "r")
- local data = f.readAll()
- f.close()
- return data
- end
- local function WriteFile(path, data)
- local f = fs.open(path, "w")
- f.write(data)
- f.close()
- end
- local function getpastebin(paste)
- local response = http.get(
- "http://pastebin.com/raw/"..textutils.urlEncode( paste )
- )
- if response then
- local sResponse = response.readAll()
- response.close()
- return true, sResponse
- else
- return false
- end
- end
- local function CheckAPI(name, pastebin, required, downloadfilename)
- local path = settings.get(name, nil)
- if path ~= nil then
- if fs.exists(path) then
- os.loadAPI(path)
- return true
- else
- if http then
- local suc, paste = getpastebin(pastebin)
- if suc then
- WriteFile(path, paste)
- os.loadAPI(path)
- return true
- else
- print("Failed to download")
- if required then error(name .. " API not found and was not able to download! specify path to " .. name .. " API in settings, do 'set " .. name .. " <path>' to set path") end
- end
- else
- print("Http disabled")
- if required then error(name .. " API not found and was not able to download! specify path to " .. name .. " API in settings, do 'set " .. name .. " <path>' to set path") end
- end
- end
- else
- print("Settings for API path not found")
- if fs.exists(name) then
- os.loadAPI(name)
- return true
- else
- if http then
- local suc, paste = getpastebin(pastebin)
- if suc then
- if downloadfilename then
- WriteFile(downloadfilename, paste)
- settings.set(name, downloadfilename)
- os.loadAPI(downloadfilename)
- else
- WriteFile(name, paste)
- os.loadAPI(name)
- end
- return true
- else
- print("Failed to download")
- if required then error(name .. " API not found and was not able to download! specify path to " .. name .. " API in settings, do 'set " .. name .. " <path>' to set path") end
- end
- else
- print("Http disabled")
- if required then error(name .. " API not found and was not able to download! specify path to " .. name .. " API in settings, do 'set " .. name .. " <path>' to set path") end
- end
- end
- end
- return false
- end
Advertisement
Add Comment
Please, Sign In to add comment