summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoruser@node5.net <user@node5.net>2026-06-28 21:25:56 +0200
committeruser@node5.net <user@node5.net>2026-06-28 21:25:56 +0200
commit50ab73d694f474ecb7e61db0d56a9f1ef769e70c (patch)
tree0160033753e48d729509b034e5f8628ab7daf411
parent8e42b509a485307b18686f14ca693eedceb51f6d (diff)
pixel flut, move progress to start of line for more stable parsing
-rw-r--r--src/program.py5
-rwxr-xr-xsrc/program_parser.py8
-rw-r--r--src/text_tv.py2
3 files changed, 7 insertions, 8 deletions
diff --git a/src/program.py b/src/program.py
index b70e501..16634ce 100644
--- a/src/program.py
+++ b/src/program.py
@@ -3,9 +3,6 @@ import os
from program_parser import program_parser_factory, Event
def main():
- '''
- Get program in text for, for pixel flut client
- '''
program_parser = program_parser_factory()
lines: int = int(os.environ["LINES"]) if "LINES" in os.environ else 100
@@ -14,7 +11,7 @@ def main():
programs_formatted_list = []
last_event = None
for event in events_to_show:
- programs_formatted_list.append(f"{event.title} {event.time} {event.icon} {event.progress if event.progress > 0 else ''}")
+ programs_formatted_list.append(f"{f"{int(event.progress):03d}"} {event.title} {event.time} {event.icon}")
if last_event and last_event.day != event.day:
# Day change
programs_formatted_list += [f'', '', event.day,'']
diff --git a/src/program_parser.py b/src/program_parser.py
index 7233c49..54c5a9b 100755
--- a/src/program_parser.py
+++ b/src/program_parser.py
@@ -18,7 +18,7 @@ class Event:
time: str = None
duration: datetime.timedelta = None
pretty: str = None
- progress: int = None
+ progress: float = 0
class ProgramParser:
@@ -69,7 +69,7 @@ class ProgramParser:
program = sorted(program, key=lambda x: x.start_date)
return program
- def get_events_to_show(self, program: list[Event], lines=4) -> list[Event]:
+ def get_events_to_show(self, program: list[Event], lines=1000) -> list[Event]:
current_datetime = datetime.datetime.now() if not self.override_date else self.override_date
#current_datetime = datetime.datetime(year=2025, month=7, day=18, hour=15, minute=30) # DEBUG
# Get events to show
@@ -100,7 +100,9 @@ class ProgramParser:
event_to_show.pretty = format_program(event_to_show)
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()
- event_to_show.progress = 100 + (progress_sec / duration_sec) * 100
+ progress = 100 + (progress_sec / duration_sec) * 100
+ if progress > 0:
+ event_to_show.progress = progress
return events_to_show
diff --git a/src/text_tv.py b/src/text_tv.py
index 1a5a290..c0baf90 100644
--- a/src/text_tv.py
+++ b/src/text_tv.py
@@ -21,7 +21,7 @@ def top():
@app.route('/program.json')
def program():
- events_to_show: list[Event] = program_parser.get_events_to_show(program_parser.get_program(), programs_to_show_count = 1000)
+ 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