From a85d93511a5632dafb8a6396129c141f504141d1 Mon Sep 17 00:00:00 2001 From: KubaPro010 Date: Sat, 6 Dec 2025 18:27:19 +0100 Subject: [PATCH] imc in web --- modules/web.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/modules/web.py b/modules/web.py index 94c84f0..aee14e3 100644 --- a/modules/web.py +++ b/modules/web.py @@ -6,6 +6,7 @@ from http.server import HTTPServer, BaseHTTPRequestHandler manager = multiprocessing.Manager() data = manager.dict() data_lock = manager.Lock() +imc_q = manager.Queue() class Handler(BaseHTTPRequestHandler): def do_GET(self): @@ -19,6 +20,15 @@ class Handler(BaseHTTPRequestHandler): self.send_header("Content-Length", str(len(rdata))) self.end_headers() self.wfile.write(rdata) + def send_response(self, code, message=None): + self.send_response_only(code, message) + self.send_header('Server', self.version_string()) + self.send_header('Date', self.date_time_string()) + def do_POST(self): + global imc_q + if self.path == "/api/skip": imc_q.put({"name": "procman", "data": {"op": 2}}) + self.send_response(200) + self.end_headers() def web(): HTTPServer(("0.0.0.0", 3001), Handler).serve_forever() p = multiprocessing.Process(target=web) @@ -37,6 +47,11 @@ class Module(PlayerModule): if next_track: next_track_data = {"path": str(next_track.path), "fade_out": next_track.fade_out, "fade_in": next_track.fade_in, "official": next_track.official, "args": next_track.args, "offset": next_track.offset} else: next_track_data = None data["track"] = json.dumps({"index": index, "track": track_data, "next_track": next_track_data}) + def progress(self, index: int, track: Track, elapsed: float, total: float, real_total: float) -> None: + try: data = imc_q.get(False) + except Exception: return + + self._imc.send(self, data["name"], data["data"]) def shutdown(self): global p p.terminate()