summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoruser@node5.net <user@node5.net>2026-06-26 18:25:22 +0200
committeruser@node5.net <user@node5.net>2026-06-26 18:32:08 +0200
commitc65dae22ca65d4c53d02596699be99d0b0c2a058 (patch)
treeab9a869b92e1af01b25237ea5d847ce5781c7618 /src
parentf5ff82d7293b50ec412231e65b4480d6bf206fcc (diff)
fix: program parser after nixify refactor
Diffstat (limited to 'src')
-rw-r--r--src/get_program_for_pixel_flut.py40
-rwxr-xr-xsrc/program_parser.py9
-rw-r--r--src/text_tv_bornhack.py11
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__':