From 8e42b509a485307b18686f14ca693eedceb51f6d Mon Sep 17 00:00:00 2001 From: "user@node5.net" Date: Sun, 28 Jun 2026 16:30:25 +0200 Subject: flake: rename binaries, code comments --- src/get_program_for_pixel_flut.py | 23 -------------------- src/program.py | 26 ++++++++++++++++++++++ src/program_parser.py | 4 +++- src/text_tv.py | 46 +++++++++++++++++++++++++++++++++++++++ src/text_tv_bornhack.py | 46 --------------------------------------- 5 files changed, 75 insertions(+), 70 deletions(-) delete mode 100644 src/get_program_for_pixel_flut.py create mode 100644 src/program.py create mode 100644 src/text_tv.py delete mode 100644 src/text_tv_bornhack.py (limited to 'src') diff --git a/src/get_program_for_pixel_flut.py b/src/get_program_for_pixel_flut.py deleted file mode 100644 index e86489c..0000000 --- a/src/get_program_for_pixel_flut.py +++ /dev/null @@ -1,23 +0,0 @@ -import os - -from program_parser import program_parser_factory, Event - -def main(): - program_parser = program_parser_factory() - - 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.py b/src/program.py new file mode 100644 index 0000000..b70e501 --- /dev/null +++ b/src/program.py @@ -0,0 +1,26 @@ +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 + 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 f47a0f8..7233c49 100755 --- a/src/program_parser.py +++ b/src/program_parser.py @@ -3,7 +3,6 @@ import json import datetime import dataclasses import logging -import pathlib logger = logging.getLogger(__name__) # Set the logger name, to the name of the module @@ -23,6 +22,9 @@ class Event: class ProgramParser: + ''' + Parse the JSON program into dataformat for easy processing + ''' def __init__(self, program_path:os.PathLike=None, title_max_length:int=34, override_date:datetime.datetime|None=None): self.program_path = program_path self.title_max_length = title_max_length diff --git a/src/text_tv.py b/src/text_tv.py new file mode 100644 index 0000000..1a5a290 --- /dev/null +++ b/src/text_tv.py @@ -0,0 +1,46 @@ +import datetime +import os + +import flask + +from program_parser import program_parser_factory + + +program_parser = program_parser_factory() + +app = flask.Flask(__name__, template_folder='templates', static_folder='static', static_url_path='') + +debug = 'PROD' not in os.environ + + +@app.route('/top') +def top(): + now = datetime.datetime.now() if not program_parser.override_date else program_parser.override_date + return f'BornHack S105 {now.strftime("%a %d %b %R:%S")} ' + + +@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) + #{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 + + +@app.route('/text') +def text() -> dict[str, str]: + return {part: eval(part)() for part in ['top', 'program']} + + +@app.route('/') +def index(): + return flask.render_template('index.html', parts=text()) + + +def main(): + global app + app.run(debug=debug, host='0.0.0.0', port=1337) + + +if __name__ == '__main__': + main() diff --git a/src/text_tv_bornhack.py b/src/text_tv_bornhack.py deleted file mode 100644 index 1a5a290..0000000 --- a/src/text_tv_bornhack.py +++ /dev/null @@ -1,46 +0,0 @@ -import datetime -import os - -import flask - -from program_parser import program_parser_factory - - -program_parser = program_parser_factory() - -app = flask.Flask(__name__, template_folder='templates', static_folder='static', static_url_path='') - -debug = 'PROD' not in os.environ - - -@app.route('/top') -def top(): - now = datetime.datetime.now() if not program_parser.override_date else program_parser.override_date - return f'BornHack S105 {now.strftime("%a %d %b %R:%S")} ' - - -@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) - #{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 - - -@app.route('/text') -def text() -> dict[str, str]: - return {part: eval(part)() for part in ['top', 'program']} - - -@app.route('/') -def index(): - return flask.render_template('index.html', parts=text()) - - -def main(): - global app - app.run(debug=debug, host='0.0.0.0', port=1337) - - -if __name__ == '__main__': - main() -- cgit v1.3.1