Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if not http then
- error( "Needs the http API" )
- end
- local url = "https://raw.github.com/awsumben13/Network/master/"
- local function download( file, path )
- local u = url..file
- local response = http.get( u )
- if response then
- local content = response.readAll( )
- response.close( )
- local h = fs.open( path, "w" )
- h.write( content )
- h.close( )
- end
- end
- local files = {
- "network";
- "gui";
- "script";
- }
- local programs = {
- "server";
- "router";
- "send";
- "receive";
- "DNS";
- "FTP";
- "webserver";
- "browser";
- }
- local selected = 1
- local function draw( )
- term.setBackgroundColour( 32768 )
- term.clear( )
- term.setCursorPos( 1, 1 )
- term.write( "NovaNet download page." )
- term.setCursorPos( 1, 3 )
- term.write( "Files:" )
- for i = 1,#files do
- term.setCursorPos( 3, i + 3 )
- term.write( files[i] )
- end
- term.setCursorPos( 1, 5 + #files )
- term.write( "Programs:" )
- for i = 1,#programs do
- term.setCursorPos( 3, i + 5 + #files )
- term.write( programs[i] )
- end
- term.setCursorPos( 3, #programs + #files + 7 )
- term.write( "Exit" )
- local pos = selected + 3
- if selected > 3 then
- pos = pos + 2
- end
- if selected > #files + #programs then
- pos = pos + 1
- end
- term.setCursorPos( 1, pos )
- term.write( ">" )
- end
- draw( )
- while true do
- local ev = { os.pullEvent( ) }
- if ev[1] == "key" then
- if ev[2] == keys.up and selected > 1 then
- selected = selected - 1
- elseif ev[2] == keys.down and selected < #files + #programs + 1 then
- selected = selected + 1
- elseif ev[2] == keys.enter then
- if selected == #files + #programs + 1 then
- break
- elseif selected <= #files then
- download( files[selected], files[selected] )
- else
- fs.makeDir( "programs" )
- download( "programs/"..programs[selected - #files], "programs/"..programs[selected - #files] )
- end
- end
- end
- draw( )
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement