diff options
| author | Christophe Besson <cbesson@gmail.com> | 2026-09-24 02:09:03 +0200 |
|---|---|---|
| committer | Christophe Besson <cbesson@gmail.com> | 2026-09-24 16:45:37 +0200 |
| commit | 1ba95852f4365d166411f8e6db175db84ec06ec1 (patch) | |
| tree | 726fe2a1b1f98b71522ad4b45adf8cd1cc8a7476 /packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py | |
| parent | 57737c05fbf7c482ba436ca8001e7a4b3097b434 (diff) | |
| download | meshbay-1ba95852f4365d166411f8e6db175db84ec06ec1.tar.gz | |
refactor(node): move the MusicBrainz switch to the Music mixin
An operator op that exists for one app lives with that app.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py')
| -rw-r--r-- | packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py b/packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py index 5c4d76f..9afb06c 100644 --- a/packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py +++ b/packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py @@ -2734,44 +2734,6 @@ class WebRTCPeerSession(MusicMixin, SubtitlesMixin): except Exception: pass - def _do_musicbrainz_enabled(self, msg: dict) -> None: - """ - Whether MusicBrainz lookups run for this group at all. Per-group - from the start (docs/MESHBAY_DESIGN.md §9.8) — signed like - tmdb_enabled: it decides whether this group's members' - Music tab ever makes outbound MusicBrainz traffic. - """ - enabled = msg.get("enabled") - if not isinstance(enabled, bool): - self._send({"type": "error", "detail": "Missing or invalid 'enabled'"}) - return - if not self._has_admin_authority(): - self._send({"type": "error", "detail": "No authorized key for this"}) - return - self._issue_admin_challenge(OP_MUSICBRAINZ_ENABLED, str(enabled)) - - async def _admin_exec_musicbrainz_enabled( - self, pending: dict, transcript: bytes, sig: bytes, - ) -> None: - enabled = pending["subject"] == "True" - if not await self._verify_admin_sig(transcript, sig): - self._send({"type": "error", "detail": "Signature verification failed"}) - self._audit("admin_auth_failed", f"musicbrainz_enabled:{pending['subject']}") - return - try: - await self._run_op(ops.set_musicbrainz_enabled, self._group_id or "", enabled) - except ops.OpError as e: - self._send({"type": "error", "detail": e.message}) - return - self._audit("musicbrainz_enabled", pending["subject"]) - - notice = {"type": MNP.MUSICBRAINZ_ENABLED_ACK, "v": MNP_VERSION, "enabled": enabled} - for uid, session in list(self._peer_registry().items()): - try: - session._send(notice) - except Exception: - pass - # Reconcile's backstop and the watchdog debounce (indexer.py # DirectoryIndexer) — how hard the node works on the operator's own # disk, not a member-facing permission. Signed for the same reason as |