change web stuff, and add a skip counter instead of skip_next

This commit is contained in:
2026-04-11 14:10:55 +02:00
parent 6bda4aec00
commit db446ef972
6 changed files with 78 additions and 33 deletions
+33 -1
View File
@@ -6,6 +6,8 @@ import asyncio
import websockets
from websockets import ServerConnection, Request, Response, Headers
from modules import InterModuleCommunication
from . import Track, PlayerModule, Path, BaseIMCModule
MAIN_PATH_DIR = Path("/home/user/mixes")
@@ -141,7 +143,7 @@ def websocket_server_process(shared_data: dict, imc_q: multiprocessing.Queue, ws
await websocket.close(1001, "")
clients.discard(websocket)
async def process_request(websocket: ServerConnection, request: Request):
if request.path == "/web.html" and (file := Path(__file__, "..", "web.html").resolve()).exists():
if request.path == "/" and (file := Path(__file__, "..", "web.html").resolve()).exists():
data = file.read_bytes()
return Response(
200,
@@ -239,6 +241,10 @@ class Module(PlayerModule):
def imc_data(self, source: BaseIMCModule, source_name: str | None, data: object, broadcast: bool) -> object:
try: self.ws_q.put({"event": "imc", "data": {"name": source_name, "data": data, "broadcast": broadcast}})
except Exception: pass
def imc(self, imc: InterModuleCommunication) -> None:
self._imc = imc
imc.register(self, "web")
def shutdown(self):
self.ipc_thread_running = False
@@ -261,3 +267,29 @@ class Module(PlayerModule):
self.ws_process.join(timeout=1)
module = Module()
# This is free and unencumbered software released into the public domain.
# Anyone is free to copy, modify, publish, use, compile, sell, or
# distribute this software, either in source code form or as a compiled
# binary, for any purpose, commercial or non-commercial, and by any
# means.
# In jurisdictions that recognize copyright laws, the author or authors
# of this software dedicate any and all copyright interest in the
# software to the public domain. We make this dedication for the benefit
# of the public at large and to the detriment of our heirs and
# successors. We intend this dedication to be an overt act of
# relinquishment in perpetuity of all present and future rights to this
# software under copyright law.
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
# For more information, please refer to <https://unlicense.org>