mirror of
https://github.com/ShadowKatStudios/OC-Minitel.git
synced 2024-11-14 22:38:05 +11:00
42 lines
934 B
Lua
42 lines
934 B
Lua
local net = require "net"
|
|
local event = require "event"
|
|
local shell = require "shell"
|
|
|
|
local function parseURL(url)
|
|
local proto,addr = url:match("(.-)://(.+)")
|
|
addr = addr or url
|
|
local hp, path = addr:match("(.-)(/.*)")
|
|
hp, path = hp or addr, path or "/"
|
|
local host, port = hp:match("(.+):(.+)")
|
|
host = host or hp
|
|
return proto, host, port, path
|
|
end
|
|
|
|
local tArgs, tFlags = shell.parse(...)
|
|
local proto, host, port, path = parseURL(tArgs[1])
|
|
port = tonumber(port) or 70
|
|
|
|
local socket = net.open(host,port)
|
|
if tFlags.s then
|
|
socket:write("s"..path.."\n")
|
|
else
|
|
socket:write("t"..path.."\n")
|
|
end
|
|
local c = socket:read(1)
|
|
repeat
|
|
c = socket:read(1)
|
|
os.sleep(0.5)
|
|
until c ~= ""
|
|
if c == "n" then
|
|
print(path..": Not found.")
|
|
elseif c == "f" then
|
|
print("Failure: ")
|
|
elseif c == "d" then
|
|
print("Directory listing for "..path)
|
|
end
|
|
repeat
|
|
l = socket:read(1024)
|
|
io.write(l)
|
|
os.sleep(0.5)
|
|
until socket.state == "closed" and l == ""
|