View difference between Paste ID: U1drWGam and RVRbiWgW
SHOW: | | - or go back to the newest paste.
1
local key = settings.get "govos.key"
2
if not key then error "GovOS RDS key not found." end
3
local ws, err = http.websocket("wss://osmarks.tk/wsthing/GovOS/admin", {
4
	authorization = "Key " .. key
5
})
6
7
if err then
8
	error(err)
9
else
10
	print "Connected"
11
end
12
13-
function readWS()
13+
local msg = ""
14
15-
		print(ws.receive())
15+
local template = [[
16
peripheral.find("monitor", function(_, o) o.setCursorPos(1, 1); o.setBackgroundColor(colors.green); o.clearLine(); o.setTextColor(colors.white); o.clearLine(); o.write(%q) end)
17
]]
18
19-
function send(msg)
19+
function broadcast()
20-
	local ok = pcall(ws.send, msg)
20+
21
		local ok = pcall(ws.send, template:format(msg))
22-
	if not ok then
22+
23-
		print "Disconnected"
23+
		if not ok then
24-
		connect()
24+
			print "Disconnected"
25-
		send(msg)
25+
			connect()
26
			sleep(0.5)
27
			broadcast()
28
		end
29-
function writeWS()
29+
		
30
		sleep(1)
31
	end
32
end
33
34
function set_text()
35-
		send(input)
35+
36
	while true do
37
		write "|> "
38
		local input = read(nil, hist)
39-
parallel.waitForAll(writeWS, readWS)
39+
40
		msg = input
41
	end
42
end
43
44
parallel.waitForAll(set_text, broadcast)