Release: v3.1.0
Build Release Docker Image / build-amd64 (release) Successful in 6s
Build Release Docker Image / build-arm64 (release) Successful in 10s
Build Release Docker Image / publish-release-manifest (release) Successful in 6s

This commit is contained in:
Patrick Asmus
2026-09-16 20:22:34 +02:00
parent ce1ccb91bb
commit a9a9a89cba
26 changed files with 552 additions and 332 deletions
+2 -27
View File
@@ -65,21 +65,11 @@ class RecordingManager:
self._processes: dict[int, subprocess.Popen] = {}
self._stop_events: dict[int, threading.Event] = {}
self._threads: dict[int, threading.Thread] = {}
self._metadata_monitor = None
self._ntfy = None
self._plik = None
self._rec_options: dict[int, dict] = {}
self._output_files: dict[int, list[str]] = {}
def _get_metadata_monitor(self):
if self._metadata_monitor is None:
from plugins.euer_radio import MetadataMonitor
self._metadata_monitor = MetadataMonitor(
log_fn=self._log,
stop_fn=self.stop_recording,
)
return self._metadata_monitor
def _get_ntfy(self):
if self._ntfy is None:
from plugins.ntfy import NtfyNotifier
@@ -126,10 +116,6 @@ class RecordingManager:
segment_duration: Optional[int] = None,
is_scheduled: bool = False,
description: str = "",
metadata_monitor_enabled: bool = False,
metadata_pattern: str = "",
metadata_grace_period: int = 300,
metadata_poll_interval: int = 30,
ntfy_enabled: bool = False,
plik_enabled: bool = False,
delete_after_upload: bool = False,
@@ -199,16 +185,6 @@ class RecordingManager:
self._log("INFO", f"Aufnahme gestartet: {name}", name)
self._notify("start", "Aufnahme gestartet", name, rec_id)
if metadata_monitor_enabled and metadata_pattern:
self._get_metadata_monitor().start_monitoring(
rec_id=rec_id,
stream_url=stream_url,
pattern=metadata_pattern,
grace_period=metadata_grace_period,
poll_interval=metadata_poll_interval,
job_name=name,
)
return {"recording_id": rec_id, "output_dir": output_dir, "output_file": output_file}
def _recording_loop(
@@ -331,9 +307,6 @@ class RecordingManager:
return cmd
def stop_recording(self, rec_id: int) -> bool:
if self._metadata_monitor:
self._metadata_monitor.stop_monitoring(rec_id)
stop_event = self._stop_events.get(rec_id)
if stop_event:
stop_event.set()
@@ -487,6 +460,7 @@ class RecordingManager:
"segment_count": segment_count if rec.segment_mode else None,
"remaining": remaining,
"remaining_display": format_elapsed(remaining) if remaining is not None else None,
"plik_url": rec.plik_url,
}
def _calc_recording_size(self, output_files: list[str], segment_mode: bool) -> tuple[int, int]:
@@ -536,6 +510,7 @@ class RecordingManager:
segment_mode=segment_mode,
delete_after=opts.get("delete_after_upload", False),
ntfy_enabled=opts.get("ntfy_enabled", False),
save_url_fn=lambda url: self._update_recording(rec_id, plik_url=url),
)
def _cleanup(self, rec_id: int):