hide "day X" in standalone mode for single-day events

This commit is contained in:
Franzi 2024-01-16 09:04:45 +01:00
parent 677f042ec6
commit 1859015bb0
2 changed files with 25 additions and 3 deletions

View file

@ -24,6 +24,7 @@ local tracks = {}
local all_next_talks = {} local all_next_talks = {}
local show_language = true local show_language = true
local show_track = true local show_track = true
local is_single_day = false
local hide_talks_older_than_minutes = 25 local hide_talks_older_than_minutes = 25
gl.setup(NATIVE_WIDTH, NATIVE_HEIGHT) gl.setup(NATIVE_WIDTH, NATIVE_HEIGHT)
@ -63,6 +64,12 @@ util.data_mapper{
clock = data clock = data
elseif path == "time" then elseif path == "time" then
time = tonumber(data) time = tonumber(data)
elseif path == "single_day" then
if tostring(data) == "1" then
is_single_day = true
else
is_single_day = false
end
end end
end, end,
} }
@ -126,7 +133,9 @@ function node.render()
gl.clear(0, 0, 0, 1) gl.clear(0, 0, 0, 1)
y = PADDING y = PADDING
if not is_single_day then
font_day:write(PADDING, y, string.format("Day %d", day), TOPBAR_FONT_SIZE, 1, 1, 1, 1) font_day:write(PADDING, y, string.format("Day %d", day), TOPBAR_FONT_SIZE, 1, 1, 1, 1)
end
local clock_width = font_clock:width(clock, TOPBAR_FONT_SIZE) local clock_width = font_clock:width(clock, TOPBAR_FONT_SIZE)
font_clock:write(NATIVE_WIDTH-PADDING-clock_width, y, clock, TOPBAR_FONT_SIZE, 1, 1, 1, 1) font_clock:write(NATIVE_WIDTH-PADDING-clock_width, y, clock, TOPBAR_FONT_SIZE, 1, 1, 1, 1)

17
service
View file

@ -20,7 +20,7 @@ def log(msg):
sys.stderr.write("[pretalx] {}\n".format(msg)) sys.stderr.write("[pretalx] {}\n".format(msg))
def idle(seconds, event_start, event_tz): def idle(seconds, event_start, event_end, event_tz):
end = time.time() + seconds end = time.time() + seconds
log("sleeping for {} seconds".format(seconds)) log("sleeping for {} seconds".format(seconds))
while time.time() < end: while time.time() < end:
@ -45,6 +45,14 @@ def idle(seconds, event_start, event_tz):
send_data["clock"] = event_now.strftime(config["clock_format"]) send_data["clock"] = event_now.strftime(config["clock_format"])
send_data["day"] = day_info.days send_data["day"] = day_info.days
# "single day" is only used in standalone mode to hide the
# the day information
if event_end is not None:
if event_start == event_end:
send_data["single_day"] = 1
else:
send_data["single_day"] = 0
for k, v in send_data.items(): for k, v in send_data.items():
node.send_raw("{}/{}:{}".format(SEND_PREFIX, k, v)) node.send_raw("{}/{}:{}".format(SEND_PREFIX, k, v))
time.sleep(1) time.sleep(1)
@ -53,6 +61,7 @@ def idle(seconds, event_start, event_tz):
def main(): def main():
event_info = None event_info = None
event_start = None event_start = None
event_end = None
schedule = None schedule = None
event_tz = pytz.utc event_tz = pytz.utc
@ -84,6 +93,7 @@ def main():
if event_info is not None: if event_info is not None:
event_start = datetime.strptime(event_info["start"], "%Y-%m-%d") event_start = datetime.strptime(event_info["start"], "%Y-%m-%d")
event_end = datetime.strptime(event_info["end"], "%Y-%m-%d")
event_tz = pytz.timezone(event_info["timezone"]) event_tz = pytz.timezone(event_info["timezone"])
try: try:
@ -135,6 +145,9 @@ def main():
event_start = datetime.strptime( event_start = datetime.strptime(
raw_schedule["conference"]["start"][:10], "%Y-%m-%d" raw_schedule["conference"]["start"][:10], "%Y-%m-%d"
) )
event_end = datetime.strptime(
raw_schedule["conference"]["end"][:10], "%Y-%m-%d"
)
event_tz = pytz.timezone(raw_schedule["conference"]["time_zone_name"]) event_tz = pytz.timezone(raw_schedule["conference"]["time_zone_name"])
for day in raw_schedule["conference"]["days"]: for day in raw_schedule["conference"]["days"]:
@ -181,7 +194,7 @@ def main():
else: else:
log("unknown json flavour, something is very wrong") log("unknown json flavour, something is very wrong")
idle(30, event_start, event_tz) idle(30, event_start, event_end, event_tz)
if __name__ == "__main__": if __name__ == "__main__":