Fixed argument parsing

This commit is contained in:
Casey 2024-09-15 03:36:14 +03:00
parent 5e1d23b4bb
commit abe0b37f7d
Signed by: hkc
GPG Key ID: F0F6CFE11CDB0960
1 changed files with 12 additions and 10 deletions

View File

@ -33,11 +33,11 @@ while args[1] ~= nil and string.sub(args[1], 1, 1) == "-" do
elseif k == "J" or k == "info-json" then elseif k == "J" or k == "info-json" then
local req = assert(http.get(table.remove(args, 1))) local req = assert(http.get(table.remove(args, 1)))
local info = textutils.unserializeJSON(req.readAll()) local info = textutils.unserializeJSON(req.readAll())
delay = info.frametime delay = info.frame_time
n_frames = info.frame_count n_frames = info.frame_count
video_url = info.video video_url = info.video
audio_url_l = info.audio.l audio_url_l = info.audio.l
audio_url_l = info.audio.r audio_url_r = info.audio.r
req.close() req.close()
end end
end end
@ -52,14 +52,16 @@ if not speakers.l then
return return
end end
if #args < 3 and not n_frames and not video_url and not audio_url_l then if not n_frames and not video_url and not audio_url_l then
printError("Usage: video [-w] [-b BUFSZ] [-t THREADS] [-J URL] [-m MONITOR] [-l SPK_L] [-r SPK_R] [-d FRAME_T] <N_FRAMES> <VIDEO_TEMPLATE> <LEFT_CHANNEL> [RIGHT_CHANNEL]") if #args < 3 then
return printError("Usage: video [-w] [-b BUFSZ] [-t THREADS] [-J URL] [-m MONITOR] [-l SPK_L] [-r SPK_R] [-d FRAME_T] <N_FRAMES> <VIDEO_TEMPLATE> <LEFT_CHANNEL> [RIGHT_CHANNEL]")
else return
n_frames = tonumber(table.remove(args, 1)) else
video_url = table.remove(args, 1) n_frames = tonumber(table.remove(args, 1))
audio_url_l = table.remove(args, 1) video_url = table.remove(args, 1)
audio_url_r = #args > 0 and table.remove(args, 1) or nil audio_url_l = table.remove(args, 1)
audio_url_r = #args > 0 and table.remove(args, 1) or nil
end
end end
print(string.format("Using monitor %s", peripheral.getName(monitor))) print(string.format("Using monitor %s", peripheral.getName(monitor)))