import os from flask import Flask, Response import threading from watchdog.events import FileSystemEventHandler from watchdog.observers import Observer # -------------- VARIABLES -------------- html_file_path = r"PATH" host = "0.0.0.0" port = 80 is_oe11 = True # if using OE11 set it to True, for OE12 set it to False (encoding) scroll_pixels = 100 scroll_interval = 3 # seconds bottom_wait_time = 3 # seconds top_wait_time = 3 # seconds # -------------- END VARIABLES -------------- app = Flask(__name__) file_change_event = threading.Event() class FileChangeHandler(FileSystemEventHandler): def on_modified(self, event): if event.src_path == html_file_path: file_change_event.set() @app.route("/_file_change") def file_change_stream(): def stream(): while True: file_change_event.wait() yield "data: reload\n\n" file_change_event.clear() return Response(stream(), content_type="text/event-stream") @app.route("/") def serve_html(): with open(html_file_path, "r", encoding=("cp1252" if is_oe11 else "utf-8")) as file: content = file.read() content += f""" """ return content if __name__ == "__main__": event_handler = FileChangeHandler() observer = Observer() observer.schedule( event_handler, path=os.path.dirname(html_file_path), recursive=False ) observer.start() try: app.run(host=host, port=port) except KeyboardInterrupt: observer.stop() observer.join()