From 7b4a27f55498d11ba727e4dc55ec1f6ac433b793 Mon Sep 17 00:00:00 2001 From: "user@node5.net" Date: Sun, 5 Jul 2026 12:50:00 +0200 Subject: web - grey dots as spacers for your eyes to follow the line --- src/program_parser.py | 13 +++++++++---- src/static/main.css | 13 ++++++++++--- src/templates/program.html | 7 ++++++- src/text_tv.py | 3 +-- 4 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/program_parser.py b/src/program_parser.py index c88a255..1fae528 100755 --- a/src/program_parser.py +++ b/src/program_parser.py @@ -10,6 +10,8 @@ logger = logging.getLogger(__name__) # Set the logger name, to the name of the m @dataclasses.dataclass class Event: title: str = None + short: str = None + spacer: str = '' room: str = None day: str = None start_date: datetime.datetime = None @@ -83,12 +85,13 @@ class ProgramParser: if event.end_date > current_datetime: events_to_show.append(event) - def format_program(event: Event, cli=False) -> str: + def format_program(event: Event) -> str: if len(event.title) > self.title_max_length: # Truncate title by deleting was 1-3 chars and putting ... - event.title = f'{event.title[:self.title_max_length - 3]}...' + event.short = f'{event.title[:self.title_max_length - 3]}...' else: - event.title += " " * (self.title_max_length - len(event.title)) # Pad title + event.short = event.title + event.spacer = "." * (self.title_max_length - len(event.title)) # Pad title event.day = event.start_date.strftime('%a') start_time = event.start_date.strftime('%H:%M') end_time = event.end_date.strftime('%H:%M') @@ -97,10 +100,12 @@ class ProgramParser: event.icon = '?' logger.warning(f"NEW ICON NEEDED!!! for {event.room}") event.time = f"{start_time}-{end_time}" - return f"{event.title} {event.day} {start_time}-{end_time} {event.icon}" + return f"{event.short}{event.spacer} {event.day} {start_time}-{end_time} {event.icon}" for event_to_show in events_to_show: event_to_show.pretty = format_program(event_to_show) + + # Get progress duration_sec = (event_to_show.end_date - event_to_show.start_date).total_seconds() progress_sec = (current_datetime - event_to_show.end_date).total_seconds() progress = 100 + (progress_sec / duration_sec) * 100 diff --git a/src/static/main.css b/src/static/main.css index 927e678..2db37ed 100644 --- a/src/static/main.css +++ b/src/static/main.css @@ -19,7 +19,7 @@ body { } img { - width: 102%; /* Make location icon line up */ + width: 100%; } hr { @@ -36,6 +36,7 @@ hr { .program-entry { position: relative; + margin-bottom:0.4em; } .program-progress { @@ -51,10 +52,16 @@ hr { position: absolute; top: 0px; left: 0px; + width: 100%; } -.program-divider { - margin-bottom: 0.4em; +.program-text > * { + float: left; + white-space: preserve-spaces; +} + +.program-spacer { + color: #1a4047; } .rainbow { diff --git a/src/templates/program.html b/src/templates/program.html index c02689d..67b37c8 100644 --- a/src/templates/program.html +++ b/src/templates/program.html @@ -10,7 +10,12 @@ {% if 'hacker jeopardy' in event.title | lower %} rainbow {% elif 'æg' in event.title | lower %} egg{% endif %}" style="width: {{event.progress}}%"> -
{{ event.title }} {{ event.time}} {{ event.icon }}
+
+ {{ event.short }} + {{ event.spacer }} + {{ event.time}} + {{ event.icon }} +

{% endfor %} diff --git a/src/text_tv.py b/src/text_tv.py index 0aeb684..21ff2e8 100644 --- a/src/text_tv.py +++ b/src/text_tv.py @@ -27,8 +27,7 @@ def update(): def program(): events_to_show: list[Event] = program_parser.get_events_to_show(program_parser.get_program()) #{event.title} {day} {start_time}-{end_time} {icon} - json = [{'title': a.title, 'day': a.day, 'time': a.time, 'progress': a.progress, 'icon': a.icon} for a in events_to_show] - return json + return events_to_show @app.route('/text') -- cgit v1.3.1