iteration

This commit is contained in:
Layla 2023-10-07 22:57:23 -04:00
commit c2cef57703
4 changed files with 129 additions and 0 deletions

19
lupdate.lua Normal file
View File

@ -0,0 +1,19 @@
local args = { ... }
local program_name = args[1]
if program_name == nil then
print("Usage: lupdate <program_name>")
return
end
http.get("https://raw.githubusercontent.com/justync7/cc-programs/master/" .. program_name .. ".lua", nil, function(response)
if response.getResponseCode() == 200 then
local file = fs.open(program_name .. ".lua", "w")
file.write(response.readAll())
file.close()
print("Updated " .. program_name .. ".lua")
else
print("Failed to update " .. program_name .. ".lua")
end
end

11
messageboard/server.lua Normal file
View File

@ -0,0 +1,11 @@
rednet
rednet.open("back")
while true do
id, msg = rednet.receive()
if msg == "get" then
rednet.send(id, message)
elseif msg == "set" then
id, msg = rednet.receive()
message = msg
end

65
name_sever/lns.lua Normal file
View File

@ -0,0 +1,65 @@
modem_location = "back"
rednet.host("lns", "default")
rednet.open(modem_location)
local data = {}
function save_data()
db = fs.open("lns.db", "w")
db.write(textutils.serialize(data))
db.close()
end
function load_data()
if fs.exists("lns.db") then
db = fs.open("lns.db", "r")
db_contents = db.readAll()
db.close()
data = textutils.unserialize(db_contents)
end
end
function split (inputstr, sep)
if sep == nil then
sep = "%s"
end
local t={}
for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
table.insert(t, str)
end
return t
end
load_data()
while true do
client_id, msg = rednet.receive()
-- split string msg into action and hostname with ':' as a delimiter using string.unpack
local action, hostname = split(msg, ":")
if action == "lookup" then
-- check if hostname in data
if data[hostname] == nil then
rednet.send(client_id, "not found")
else
rednet.send(client_id, data[hostname])
end
end
if action == "reload" then
load_data()
rednet.send(client_id, "ok")
end
if action == "register" then
data[hostname] = client_id
save_data()
rednet.send(client_id, "ok")
end
end

View File

@ -0,0 +1,34 @@
io.write("Enter the hostname: ")
hostname = io.read()
io.write("Enter the modem location: ")
modem_location = io.read()
io.write("Use default LNS Server? (y/n): ")
use_default = io.read()
lns_server = "default"
if use_default == "n" then
io.write("Enter the LNS Server Rednet Hostname: ")
lns_server = io.read()
end
rednet.open(modem_location)
receiverID = rednet.lookup("lns", lns_server)
current_time = os.time()
rednet.send(receiverID, "register:" .. hostname)
while true do
id, msg = rednet.receive()
if msg == "ok" then
print("Registered with LNS Server Successfully!")
break
end
-- timeout after 5 seconds
if os.time() - current_time > 5 then
print("Failed to register with LNS Server! Timeout!")
break
end
end