From 8c462278b07a3907d2832eec31a2137e26ea6017 Mon Sep 17 00:00:00 2001 From: Carl Kittelberger Date: Mon, 28 Apr 2025 14:43:52 +0200 Subject: [PATCH] Fix types on stream API response. --- icedreammusic/liquidsoap/stream_api.liq | 28 ++++++++++++++++++------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/icedreammusic/liquidsoap/stream_api.liq b/icedreammusic/liquidsoap/stream_api.liq index b74022a..bd1179e 100644 --- a/icedreammusic/liquidsoap/stream_api.liq +++ b/icedreammusic/liquidsoap/stream_api.liq @@ -30,15 +30,27 @@ def setup_harbor_stream_api(s) = ], data=json.stringify([])) end + def normalize_float(f) = + if float.is_infinite(f) or float.is_nan(f) then + 0. + else + f + end + end + def on_info(_) = - data = [ - ("id", s.id()), - ("last_metadata", json.stringify(s.last_metadata())), - ("is_up", json.stringify(s.is_up())), - ("is_started", json.stringify(s.is_started())), - ("is_ready", json.stringify(s.is_ready())), - ("is_active", json.stringify(s.is_active())), - ] + data = { + duration = normalize_float(s.duration()), + elapsed = normalize_float(s.elapsed()), + id = s.id(), + is_active = s.is_active(), + is_ready = s.is_ready(), + is_started = s.is_started(), + is_up = s.is_up(), + last_metadata = s.last_metadata(), + remaining = normalize_float(s.remaining()), + time = normalize_float(s.time()), + } http.response(status_code=200, headers=[ ("content-type","application/json"), ], data=json.stringify(data))