feat(playout): allow updating message_offline value

This commit is contained in:
jo 2022-08-17 15:09:57 +02:00 committed by Kyle Robbertze
parent 314c70a208
commit f5a83dbabb
10 changed files with 42 additions and 15 deletions

View File

@ -358,6 +358,11 @@ class Application_Model_Preference
public static function setOffAirMeta($offAirMeta)
{
self::setValue('off_air_meta', $offAirMeta);
Application_Model_RabbitMq::SendMessageToPypo(
'update_message_offline',
['message_offline' => $offAirMeta]
);
}
public static function GetStationName()

View File

@ -106,6 +106,9 @@ server.register(namespace="vars",
server.register(namespace="vars",
"station_name",
fun (s) -> begin log("vars.station_name") station_name := s s end)
server.register(namespace="vars",
"off_air_meta",
fun (s) -> begin log("vars.off_air_meta") off_air_meta := s s end)
server.register(namespace="vars",
"bootup_time",
fun (s) -> begin log("vars.bootup_time") time := s s end)
@ -159,11 +162,10 @@ server.register(namespace="dynamic_source",
# fun (s) -> begin log("dynamic_source.read_stop") destroy_dynamic_source_all() end)
default = amplify(id="silence_src", 0.00001, noise())
ref_off_air_meta = ref off_air_meta
if !ref_off_air_meta == "" then
ref_off_air_meta := "LibreTime - offline"
if !off_air_meta == "" then
off_air_meta := "LibreTime - offline"
end
default = rewrite_metadata([("title", !ref_off_air_meta)], default)
default = rewrite_metadata([("title", !off_air_meta)], default)
ignore(output.dummy(default, fallible=true))
master_dj_enabled = ref false

View File

@ -106,6 +106,9 @@ server.register(namespace="vars",
server.register(namespace="vars",
"station_name",
fun (s) -> begin log("vars.station_name") station_name := s s end)
server.register(namespace="vars",
"off_air_meta",
fun (s) -> begin log("vars.off_air_meta") off_air_meta := s s end)
server.register(namespace="vars",
"bootup_time",
fun (s) -> begin log("vars.bootup_time") time := s s end)
@ -159,11 +162,10 @@ server.register(namespace="dynamic_source",
# fun (s) -> begin log("dynamic_source.read_stop") destroy_dynamic_source_all() end)
default = amplify(id="silence_src", 0.00001, noise())
ref_off_air_meta = ref off_air_meta
if !ref_off_air_meta == "" then
ref_off_air_meta := "LibreTime - offline"
if !off_air_meta == "" then
off_air_meta := "LibreTime - offline"
end
default = rewrite_metadata([("title", !ref_off_air_meta)], default)
default = rewrite_metadata([("title", !off_air_meta)], default)
ignore(output.dummy(default, fallible=true))
master_dj_enabled = ref false

View File

@ -106,6 +106,9 @@ server.register(namespace="vars",
server.register(namespace="vars",
"station_name",
fun (s) -> begin log("vars.station_name") station_name := s s end)
server.register(namespace="vars",
"off_air_meta",
fun (s) -> begin log("vars.off_air_meta") off_air_meta := s s end)
server.register(namespace="vars",
"bootup_time",
fun (s) -> begin log("vars.bootup_time") time := s s end)
@ -159,12 +162,11 @@ server.register(namespace="dynamic_source",
# fun (s) -> begin log("dynamic_source.read_stop") destroy_dynamic_source_all() end)
default = amplify(id="silence_src", 0.00001, noise())
ref_off_air_meta = ref off_air_meta
if !ref_off_air_meta == "" then
ref_off_air_meta := "LibreTime - offline"
if !off_air_meta == "" then
off_air_meta := "LibreTime - offline"
end
def map_off_air_meta(m) =
[("title", !ref_off_air_meta)]
[("title", !off_air_meta)]
end
default = map_metadata(map_off_air_meta, default)
ignore(output.dummy(default, fallible=true))

View File

@ -120,6 +120,7 @@ class LiquidsoapClient:
*,
station_name: Optional[str] = None,
message_format: Optional[int] = None,
message_offline: Optional[str] = None,
input_fade_transition: Optional[float] = None,
):
with self.conn:
@ -127,6 +128,8 @@ class LiquidsoapClient:
self._set_var("station_name", station_name)
if message_format is not None:
self._set_var("stream_metadata_type", message_format)
if message_offline is not None:
self._set_var("off_air_meta", message_offline)
if input_fade_transition is not None:
self._set_var("default_dj_fade", input_fade_transition)

View File

@ -54,7 +54,7 @@ set("harbor.bind_addr", "0.0.0.0")
station_name = ref "{{ info.station_name }}"
off_air_meta = "{{ preferences.message_offline }}"
off_air_meta = ref "{{ preferences.message_offline }}"
stream_metadata_type = ref {{ preferences.message_format.value }}
default_dj_fade = ref {{ preferences.input_fade_transition }}

View File

@ -86,6 +86,9 @@ class PypoMessageHandler(Thread):
elif command == "update_stream_format":
logger.info("Updating stream format...")
self.pypo_queue.put(message)
elif command == "update_message_offline":
logger.info("Updating message offline...")
self.pypo_queue.put(message)
elif command == "update_station_name":
logger.info("Updating station name...")
self.pypo_queue.put(message)

View File

@ -92,6 +92,9 @@ class PypoFetch(Thread):
elif command == "update_stream_format":
logger.info("Updating stream format...")
self.update_liquidsoap_stream_format(m["stream_format"])
elif command == "update_message_offline":
logger.info("Updating message offline...")
self.update_liquidsoap_message_offline(m["message_offline"])
elif command == "update_station_name":
logger.info("Updating station name...")
self.update_liquidsoap_station_name(m["station_name"])
@ -207,6 +210,13 @@ class PypoFetch(Thread):
except (ConnectionError, TimeoutError) as exception:
logger.exception(exception)
@ls_timeout
def update_liquidsoap_message_offline(self, message_offline: str):
try:
self.liq_client.settings_update(message_offline=message_offline)
except (ConnectionError, TimeoutError) as exception:
logger.exception(exception)
@ls_timeout
def update_liquidsoap_transition_fade(self, fade):
try:

View File

@ -98,7 +98,7 @@ set("harbor.bind_addr", "0.0.0.0")
station_name = ref "LibreTime"
off_air_meta = "LibreTime - offline"
off_air_meta = ref "LibreTime - offline"
stream_metadata_type = ref 0
default_dj_fade = ref 0.0

View File

@ -98,7 +98,7 @@ set("harbor.bind_addrs", ["0.0.0.0"])
station_name = ref "LibreTime"
off_air_meta = "LibreTime - offline"
off_air_meta = ref "LibreTime - offline"
stream_metadata_type = ref 0
default_dj_fade = ref 0.0