diff --git a/src/engine.liq b/src/engine.liq index 43c3e94b7915616f1c8a00ace49d9872d4d53ebe..c8ce6d28f70cffbc89f368cc636c94e6b1455c68 100644 --- a/src/engine.liq +++ b/src/engine.liq @@ -44,12 +44,12 @@ def on_metadata_notification(meta) = timeslot_id = list.assoc(default="-1", "timeslot_id", meta) playlist_id = list.assoc(default="-1", "playlist_id", meta) playlist_track_num = list.assoc(default="", "playlist_item", meta) - track_duration = int_of_float(request.duration(meta["filename"])) - track_type = (eval_track_type(meta["track_type"], meta["source"])) - track_start = meta["on_air"] - track_artist = meta["artist"] - track_album = meta["album"] - track_title = meta["title"] + track_start = list.assoc(default=meta["track_start"], "on_air", meta) + track_duration = get_meta_track_duration(meta) + track_type = eval_track_type(meta["track_type"], meta["source"]) + track_artist = list.assoc(default=meta["track_artist"], "artist", meta) + track_album = list.assoc(default=meta["track_album"], "album", meta) + track_title = list.assoc(default=meta["track_title"], "title", meta) source_type = eval_source_type(meta["source"]) if source_type == "fallback" then @@ -121,6 +121,7 @@ stripped_stream = blank.strip( ) output_source = attach_fallback_source(stripped_stream) +output_source.on_metadata(on_metadata_notification) ##################################### diff --git a/src/functions.liq b/src/functions.liq index 6696da87319fa0a7ad7daff40c155109bbcfda95..15d8e6d771b069d2a438793809c3e4a678c733ae 100644 --- a/src/functions.liq +++ b/src/functions.liq @@ -18,6 +18,22 @@ +# Reads the track duration +# a.) when available from the file +# b.) as a fallback from the meta field "track_duration" +# +# Returns +# (int) duration in seconds +def get_meta_track_duration(meta) = + track_duration = int_of_float(request.duration(meta["filename"])) + if track_duration != -1 then + track_duration + else + int_of_string(meta["track_duration"]) + end +end + + # Posts a playlog to the Engine API def post_playlog(api_url, data) = json_data = json()