mirror of
https://github.com/Djeeberjr/fw-anwesenheit.git
synced 2025-10-13 23:16:37 +00:00
62 lines
1.3 KiB
Lua
62 lines
1.3 KiB
Lua
local used_ids = {}
|
|
local id_file_path = "used_ids.txt"
|
|
|
|
local function load_ids()
|
|
local file = io.open(id_file_path, "r")
|
|
if not file then return end
|
|
for line in file:lines() do
|
|
used_ids[line:lower()] = true
|
|
end
|
|
file:close()
|
|
end
|
|
|
|
local function save_id(id)
|
|
local file = io.open(id_file_path, "a")
|
|
if file then
|
|
file:write(id:lower() .. "\n")
|
|
file:close()
|
|
end
|
|
end
|
|
|
|
local function gen_id()
|
|
local id = ""
|
|
for i = 1, 10 do
|
|
id = id .. string.format("%x", math.random(0, 15))
|
|
end
|
|
return id
|
|
end
|
|
|
|
local function get_new_id()
|
|
local tries = 0
|
|
while tries < 10000 do
|
|
local id = gen_id()
|
|
if not used_ids[id:lower()] then
|
|
return id
|
|
end
|
|
tries = tries + 1
|
|
end
|
|
error("Could not generate a new unused ID after 10000 tries")
|
|
end
|
|
|
|
local function write_new_card()
|
|
local id = get_new_id()
|
|
local cmd = string.format("lf em 410x clone --id %s", id)
|
|
core.console(cmd)
|
|
used_ids[id:lower()] = true
|
|
save_id(id)
|
|
print("Wrote new EM4100 card with ID:", id)
|
|
end
|
|
|
|
local function write_new_card(id)
|
|
local cmd = string.format("lf em 410x clone --id %s", id)
|
|
core.console(cmd)
|
|
used_ids[id:lower()] = true
|
|
save_id(id)
|
|
print("Wrote new EM4100 card with ID:", id)
|
|
end
|
|
|
|
math.randomseed(os.time())
|
|
load_ids()
|
|
local id = get_new_id()
|
|
write_new_card(id)
|