From 7776481c67b3b8e0580707ca8fcb15c4bfdbcb02 Mon Sep 17 00:00:00 2001 From: "user@node5.net" Date: Sun, 28 Jun 2026 15:01:28 +0200 Subject: get program for pixel flut - wrap, line count arg --- src/get_program_for_pixel_flut.py | 34 +++++++++++++++++++--------------- src/program_parser.py | 4 ++-- 2 files changed, 21 insertions(+), 17 deletions(-) (limited to 'src') diff --git a/src/get_program_for_pixel_flut.py b/src/get_program_for_pixel_flut.py index 5320c9c..e86489c 100644 --- a/src/get_program_for_pixel_flut.py +++ b/src/get_program_for_pixel_flut.py @@ -1,19 +1,23 @@ -from program_parser import program_parser_factory, Event - +import os -program_parser = program_parser_factory() +from program_parser import program_parser_factory, Event -events_to_show: list[Event] = program_parser.get_events_to_show(program_parser.get_program(), programs_to_show_count = 1000) -#{event.title} {day} {start_time}-{end_time} {icon} -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 ''}") - if last_event and last_event.day != event.day: - # Day change - programs_formatted_list.append(f'\n\n{event.day}\n') - last_event = event +def main(): + program_parser = program_parser_factory() -program_formatted = '\n'.join(programs_formatted_list) -print(program_formatted) + lines: int = int(os.environ["LINES"]) if "LINES" in os.environ else 100 + events_to_show: list[Event] = program_parser.get_events_to_show(program_parser.get_program(), lines=lines) + #{event.title} {day} {start_time}-{end_time} {icon} + 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 ''}") + if last_event and last_event.day != event.day: + # Day change + programs_formatted_list += [f'', '', event.day,''] + last_event = event + program_formatted = '\n'.join(programs_formatted_list[:lines]) + print(program_formatted) +if __name__ == '__main__': + main() diff --git a/src/program_parser.py b/src/program_parser.py index 9ffdd52..f47a0f8 100755 --- a/src/program_parser.py +++ b/src/program_parser.py @@ -67,13 +67,13 @@ class ProgramParser: program = sorted(program, key=lambda x: x.start_date) return program - def get_events_to_show(self, program: list[Event], programs_to_show_count=4) -> list[Event]: + def get_events_to_show(self, program: list[Event], lines=4) -> 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 events_to_show = [] for event in program: - if len(events_to_show) >= programs_to_show_count: + if len(events_to_show) >= lines: break if event.end_date > current_datetime: events_to_show.append(event) -- cgit v1.3.1