You've already forked RadioPlayer
mirror of
https://github.com/radio95-rnt/RadioPlayer.git
synced 2026-02-26 21:53:54 +01:00
34 lines
937 B
Python
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() |