Advertisement
Fronun11

inet.lua

Mar 1st, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.00 KB | None | 0 0
  1. local component = require("component")
  2. local event = require("event")
  3. local term = require("term")
  4. local ver = "0.0.5"
  5.  
  6. -- Config (you can change this)
  7.  
  8. local dns_addr = "47b05608-29f3-4189-bbac-9731208143df"
  9.  
  10. local modem = component.modem
  11. print("Версия: "..ver)
  12. print("Введите URL адрес, например: quantum.info.ru")
  13. local url = io.read()
  14.  
  15. function string.starts(String,Starts)
  16.   return string.sub(String,1,String.len(Starts))==Starts
  17. end
  18.  
  19. function lines(str)
  20.   local t = {}
  21.   local function helper(line) table.insert(t, line) return "" end
  22.   helper((str:gsub("(.-)\n", helper)))
  23.   return t
  24. end
  25.  
  26. function parseColor(tln)
  27.   if tln == "RED" then return 0xFF0000
  28.   elseif tln == "ORA" then return 0xFF6600 -- оранжевый
  29.   elseif tln == "YEL" then return 0xFFFF00 -- жёлтый
  30.   elseif tln == "GRE" then return 0x00FF00 --
  31.   elseif tln == "BLU" then return 0x0000FF -- синий
  32.   elseif tln == "PUR" then return 0xFF00FF -- пурпурный
  33.   elseif tln == "WHI" then return 0xFFFFFF -- белый
  34.   elseif tln == "GRA" then return 0xC3C3C3 -- серый
  35.   elseif tln == "DAI" then return 0x00A3FF -- алмазный
  36.   elseif tln == "BLA" then return 0x000000 end
  37. end
  38. local gpu = component.gpu
  39. function parseOnml(onml)
  40.   local lns = lines(onml)
  41.   for i,line in ipairs(lns) do
  42.     if string.starts(line, "BACK") then
  43.       gpu.setBackground(parseColor(string.sub(line, 6)))
  44.       local w,h= gpu.getResolution()
  45.       gpu.fill(1, 1, w, h, " ")
  46.     else
  47.       gpu.setForeground(parseColor(string.sub(line, 1, 3)))
  48.       term.write(string.sub(line,4).."\n")
  49.     end
  50.   end
  51.   gpu.setForeground(0xFFFFFF)
  52. end
  53.  
  54. modem.open(55)
  55. modem.send(dns_addr, 55, "FIND " .. url)
  56. local _, _, _, _, _, resp = event.pull("modem_message")
  57. print("Pinging server at " .. url .. "...")
  58. modem.close(55)
  59. modem.open(80)
  60. term.clear()
  61. term.setCursor(1,1)
  62. modem.send(resp, 80, "GET")
  63. local _, _, _, _, _, resp2 = event.pull("modem_message")
  64. parseOnml(resp2)
  65. modem.close(80)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement