0
1
mirror of https://github.com/radio95-rnt/RadioPlayer.git synced 2026-02-26 21:53:54 +01:00
Files
RadioPlayer/modules/web.py
2025-12-06 17:59:53 +01:00

34 lines
937 B
Python

import multiprocessing
from . import PlayerModule, Track
from http.server import HTTPServer, BaseHTTPRequestHandler
manager = multiprocessing.Manager()
data = manager.dict()
data_lock = manager.Lock()
class Handler(BaseHTTPRequestHandler):
def do_GET(self):
global data
if self.path == "/":
rdata = repr(data["playlist"]).encode()
self.send_response(200)
self.send_header("Content-Length", str(len(data["playlist"])))
self.end_headers()
self.wfile.write(rdata)
def web():
HTTPServer(("0.0.0.0", 3001), Handler).serve_forever()
p = multiprocessing.Process(target=web)
class Module(PlayerModule):
def on_new_playlist(self, playlist: list[Track]) -> None:
global data, data_lock
with data_lock: data["playlist"] = playlist
def shutdown(self):
global p
p.terminate()
p.join()
module = Module()
p.start()