Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Import APIs
- local component = require("component")
- local fs = require("filesystem")
- local shell = require("shell")
- local ser = require("serialization")
- --Check for internet card
- if not component.isAvailable("internet") then
- print("Need an internet card!")
- return
- end
- local internet = require("internet")
- --Begin internal code
- local baseUrl = "http://shaunkeys.com/ccfiles"
- local rootFolder = "/oc"
- local download = baseUrl .. "/download"
- local list = "/recursiveList" .. rootFolder
- local args = {"/bin"}
- if type(args[1])~="string" then
- args[1]=""
- end
- function dl(url)
- local res = internet.request(url)
- local string = ""
- for blob in res do
- string = string..blob
- end
- return string
- end
- --Build download table
- --print(baseUrl .. fs.concat(list,( string.sub(args[1],1,1)=="/" and "" or shell.getWorkingDirectory() ),args[1]))
- local fileUrls = ser.unserialize(dl(baseUrl .. fs.concat(list,( string.sub(args[1],1,1)=="/" and "" or shell.getWorkingDirectory() ),args[1])))
- --print(ser.serialize(fileUrls))
- for k,v in pairs(fileUrls) do
- local remoteSegments = fs.segments(v)
- table.remove(remoteSegments,1) --Remove oc folder
- local segments = fs.segments(fs.concat(table.unpack(remoteSegments)))
- completedDirs = ""
- for i = 1, #segments-1 do
- completedDirs = completedDirs .. "/" .. segments[i]
- if not fs.exists(completedDirs) then
- fs.makeDirectory(completedDirs)
- end
- end
- if v ~= "" then
- local path = "/"..fs.concat(table.unpack(segments))
- print(path)
- local fileh = fs.open(path,"w")
- fileh:write(dl(download.."/"..v))
- fileh:close()
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement