Advertisement
dracoix

tapeWrite2

Feb 27th, 2019
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local args = { ... }
  2. local tape = peripheral.find("tape_drive")
  3. local function writeTape(url)
  4. local file
  5. local bytery = 0
  6.   tape.stop()
  7.   tape.seek(-tape.getPosition()) --Rewind to start
  8.   tape.stop() --Just making sure
  9.  
  10. tape.stop()
  11.   tape.seek(-tape.getPosition()) --Rewind to start
  12. tape.stop() --Just making sure
  13.  
  14.   print("Writing...")
  15.  
  16. file = http.get(url, nil, true) -- THIS IS IMPORTANT
  17. -- tape.write(response.readAll())
  18. --  file = http.get(url)
  19. --
  20.   repeat
  21.   local bytes = {}
  22.       for i = 1, (8192) do
  23.       local byte = file.read()
  24.    
  25.       if not byte then break end
  26.         byte = bit.band(255, byte)
  27.       bytes[#bytes + 1] = byte
  28.     end
  29.       for i = 1, #bytes do
  30.         tape.write(bytes[i])
  31.       end
  32. bytery = bytery + #bytes
  33. print("Read " .. bytery .. " bytes...\n")
  34. sleep(0)
  35.   until not bytes or #bytes <= 0
  36.  
  37. print("Removing trailing garbage...")
  38. for k = 1, 128 do
  39. for i = 1, 8192 do
  40. tape.write(0)
  41. end
  42. end
  43.  
  44.   file.close()
  45.   tape.stop()
  46.   tape.seek(-tape.getPosition()) --Rewind to start
  47.   tape.stop() --Just making sure
  48.   print("\nDone.")
  49. end
  50.  
  51. writeTape(args[1])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement