feat(wavelog): push station frequency/mode to Wavelog per operator

Add a CAT integration so the station's current frequency and mode are
reported to each operator's personal Wavelog logbook via Wavelog's radio
API (POST <baseUrl>/index.php/api/radio).

- New plugin rms.wavelog.cat (capability logging.cat.publish): posts
  {key, radio, frequency, mode}. Base URL / radio name come from plugin
  settings or env (WAVELOG_BASE_URL, WAVELOG_RADIO_NAME); no secrets in repo.
- Core hook in the OpenWebRX band-select flow pushes centerFreqHz + startMod
  for the active operator, best-effort (never breaks the band change).
- Per-user Wavelog API key stored on the user record; PUT /v1/me/wavelog-key
  to set it, returned by GET /v1/me and the OpenWebRX session issue response.
- UI: Wavelog API key field in the OpenWebRX panel (visible when generating
  the session link), with i18n (de/en).
- Docs, .env.example entries, and a unit test for the mode mapping.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
ARCG Admin (Claude)
2026-10-22 20:47:58 +02:00
parent 2bcf6ab1e5
commit 0488f6e25d
11 changed files with 308 additions and 2 deletions

View File

@@ -166,6 +166,15 @@
<div id="openwebrxSessionAccess" class="stack" hidden>
<p class="muted">Session Key (Ticket): <code id="openwebrxSessionTicket">-</code></p>
</div>
<div id="wavelogKeyBox" class="stack">
<label for="wavelogKeyInput">Wavelog API Key (Rig-Key)</label>
<input id="wavelogKeyInput" type="text" autocomplete="off" spellcheck="false" placeholder="Wavelog API Key" />
<div class="actions">
<button id="wavelogKeySaveBtn" type="button" class="ghost-btn">Key speichern</button>
</div>
<p id="wavelogKeyMessage" class="message"></p>
<p class="muted">Frequenz und Mode der Station werden beim Bandwechsel an dein Wavelog-Logbuch gesendet.</p>
</div>
</section>
<section id="reservationPanel" class="links-wrap" hidden>