diff options
| author | user@node5.net <user@node5.net> | 2026-06-26 18:25:22 +0200 |
|---|---|---|
| committer | user@node5.net <user@node5.net> | 2026-06-26 18:32:08 +0200 |
| commit | c65dae22ca65d4c53d02596699be99d0b0c2a058 (patch) | |
| tree | ab9a869b92e1af01b25237ea5d847ce5781c7618 | |
| parent | f5ff82d7293b50ec412231e65b4480d6bf206fcc (diff) | |
fix: program parser after nixify refactor
| -rw-r--r-- | src/get_program_for_pixel_flut.py | 40 | ||||
| -rwxr-xr-x | src/program_parser.py | 9 | ||||
| -rw-r--r-- | src/text_tv_bornhack.py | 11 |
3 files changed, 16 insertions, 44 deletions
diff --git a/src/get_program_for_pixel_flut.py b/src/get_program_for_pixel_flut.py index 5557184..5320c9c 100644 --- a/src/get_program_for_pixel_flut.py +++ b/src/get_program_for_pixel_flut.py @@ -1,40 +1,7 @@ -import logging -import os +from program_parser import program_parser_factory, Event -import program_parser -from program_parser import Event -class CustomFormatter(logging.Formatter): - grey = "\x1b[90;20m" - blue = "\x1b[34;20m" - yellow = "\x1b[33;20m" - red = "\x1b[31;20m" - bold_red = "\x1b[31;1m" - reset = "\x1b[0m" - format = "%(asctime)s,%(msecs)03d %(levelname)-8s [%(filename)s:%(lineno)d] %(message)s" - - FORMATS = { - logging.DEBUG: grey + format + reset, - logging.INFO: blue + format + reset, - logging.WARNING: yellow + format + reset, - logging.ERROR: red + format + reset, - logging.CRITICAL: bold_red + format + reset - } - - def format(self, record): - log_fmt = self.FORMATS.get(record.levelno) - formatter = logging.Formatter(log_fmt) - return formatter.format(record) - -logger = logging.getLogger(__name__) -if os.environ.get('FLASK_DEBUG') == '1': # Local development - logger.root.setLevel(logging.DEBUG) -else: # Production - logger.root.setLevel(logging.INFO) - -stream_handler = logging.StreamHandler() -stream_handler.setFormatter(CustomFormatter()) -logger.root.addHandler(stream_handler) +program_parser = program_parser_factory() 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} @@ -46,8 +13,7 @@ for event in events_to_show: # Day change programs_formatted_list.append(f'\n\n{event.day}\n') last_event = event - -program_formatted = '\n'.join([f"" for a in events_to_show ]) + program_formatted = '\n'.join(programs_formatted_list) print(program_formatted) diff --git a/src/program_parser.py b/src/program_parser.py index 66c0858..c1e4237 100755 --- a/src/program_parser.py +++ b/src/program_parser.py @@ -4,6 +4,7 @@ import datetime import dataclasses import logging + logger = logging.getLogger(__name__) # Set the logger name, to the name of the module @dataclasses.dataclass @@ -19,8 +20,9 @@ class Event: pretty: str = None progress: int = None + class ProgramParser: - def __init__(self, program_path:os.PathLike, title_max_length:int=34, override_date:datetime.datetime|None=None): + 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 self.override_date = override_date @@ -99,3 +101,8 @@ class ProgramParser: return events_to_show +def program_parser_factory(): + program_path = os.environ["PROGRAM_PATH"] if "PROGRAM_PATH" in os.environ else './programs/current.json' + override_date = datetime.datetime.fromisoformat(os.environ["OVERRIDE_DATE"]) if "OVERRIDE_DATE" in os.environ else None + return ProgramParser(program_path=program_path, override_date=override_date) + diff --git a/src/text_tv_bornhack.py b/src/text_tv_bornhack.py index 9514da2..1a5a290 100644 --- a/src/text_tv_bornhack.py +++ b/src/text_tv_bornhack.py @@ -3,20 +3,19 @@ import os import flask -from program_parser import ProgramParser +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='') -program_path = os.environ["PROGRAM_PATH"] if "PROGRAM_PATH" in os.environ else './programs/current.json' -override_date = datetime.datetime.fromisoformat(os.environ["OVERRIDE_DATE"]) if "OVERRIDE_DATE" in os.environ else None -program_parser = ProgramParser(program_path=program_path, override_date=override_date) debug = 'PROD' not in os.environ @app.route('/top') def top(): - now = datetime.datetime.now() if not override_date else override_date + 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")} ' @@ -40,7 +39,7 @@ def index(): def main(): global app - app.run(debug=debug) + app.run(debug=debug, host='0.0.0.0', port=1337) if __name__ == '__main__': |
