Remove private deployment details

This commit is contained in:
2026-07-29 14:13:22 +02:00
parent 67335a37b9
commit 2f996600c6
10 changed files with 63 additions and 212 deletions
+21 -24
View File
@@ -1,10 +1,5 @@
#!/usr/bin/env python3
"""Import manual SABnzbd downloads into Jellyfin movie/TV library roots.
Run on dgsserver1. Intended live install path:
`/usr/local/sbin/manual-media-import.py`, managed by
`manual-media-import.timer`.
"""
"""Import manual SABnzbd downloads into Jellyfin movie/TV library roots."""
from __future__ import annotations
@@ -25,38 +20,38 @@ from collections import Counter
from datetime import datetime
from pathlib import Path
MANUAL_DOWNLOADS = Path("/srv/scrypted/sabnzbd-data/downloads/manual")
LEGACY_DANISH_DOWNLOADS = Path("/srv/scrypted/sabnzbd-data/downloads/danish")
MANUAL_DOWNLOADS = Path(os.getenv("IMPORTARR_DOWNLOAD_ROOT", "/data/downloads/manual"))
LEGACY_DANISH_DOWNLOADS = Path(os.getenv("IMPORTARR_LEGACY_DOWNLOAD_ROOT", "/data/downloads/legacy"))
DOWNLOAD_ROOTS = [MANUAL_DOWNLOADS, LEGACY_DANISH_DOWNLOADS]
SAB_TRANSIENT_PREFIXES = ("_UNPACK_", "__UNPACK__", "_FAILED_", "_ADMIN_")
HOST_MEDIA_PREFIX = "/srv/media"
MOVIES_ROOT = Path("/srv/media/movies")
TV_ROOT = Path("/srv/media/tv")
HOST_MEDIA_PREFIX = os.getenv("IMPORTARR_HOST_MEDIA_PREFIX", "/data")
MOVIES_ROOT = Path(os.getenv("IMPORTARR_MOVIES_ROOT", "/data/movies"))
TV_ROOT = Path(os.getenv("IMPORTARR_TV_ROOT", "/data/tv"))
LOG = Path("/var/log/manual-media-import.log")
LOCK = Path("/run/manual-media-import.lock")
STATUS = Path("/run/manual-media-import/status.json")
MANUAL_BATCHES = Path("/var/lib/importarr/manual-batches.json")
HOME_ASSISTANT_WEBHOOK = "https://hass.delphas.dk/api/webhook/jellyfin_event"
HOME_ASSISTANT_WEBHOOK = os.getenv("IMPORTARR_HOME_ASSISTANT_WEBHOOK", "")
RADARR_CONFIG = Path("/opt/stacks/media-transform/radarr/config/config.xml")
RADARR_URL = "http://127.0.0.1:7878"
RADARR_DB = Path("/opt/stacks/media-transform/radarr/config/radarr.db")
SONARR_CONFIG = Path("/opt/stacks/media-transform/sonarr/config/config.xml")
SONARR_URL = "http://127.0.0.1:8989"
SONARR_DB = Path("/opt/stacks/media-transform/sonarr/config/sonarr.db")
SABNZBD_CONFIG = Path("/opt/stacks/media-transform/sabnzbd/config/sabnzbd.ini")
SABNZBD_URL = "http://127.0.0.1:8080/api"
RADARR_CONFIG = Path(os.getenv("IMPORTARR_RADARR_CONFIG", "/config/radarr/config.xml"))
RADARR_URL = os.getenv("IMPORTARR_RADARR_URL", "http://radarr:7878")
RADARR_DB = Path(os.getenv("IMPORTARR_RADARR_DB", "/config/radarr/radarr.db"))
SONARR_CONFIG = Path(os.getenv("IMPORTARR_SONARR_CONFIG", "/config/sonarr/config.xml"))
SONARR_URL = os.getenv("IMPORTARR_SONARR_URL", "http://sonarr:8989")
SONARR_DB = Path(os.getenv("IMPORTARR_SONARR_DB", "/config/sonarr/sonarr.db"))
SABNZBD_CONFIG = Path(os.getenv("IMPORTARR_SABNZBD_CONFIG", "/config/sabnzbd/sabnzbd.ini"))
SABNZBD_URL = os.getenv("IMPORTARR_SABNZBD_URL", "http://sabnzbd:8080/api")
ARR_API_TIMEOUT = 10
VIDEO_EXT = {".mkv", ".mp4", ".m4v", ".avi", ".mov", ".wmv", ".mpg", ".mpeg", ".ts", ".m2ts", ".webm"}
SIDECAR_EXT = {".srt", ".ass", ".sub", ".idx", ".nfo"}
MIN_SIZE = 100 * 1024 * 1024
IMDB_DATASET_CANDIDATES = [
Path("/srv/media/imdb"),
Path("/srv/media/imdb-datasets"),
Path("/srv/media/.cache/imdb"),
Path("/data/imdb"),
Path("/data/imdb-datasets"),
Path("/data/.cache/imdb"),
Path("/var/lib/imdb"),
Path("/opt/imdb"),
]
@@ -869,6 +864,8 @@ def copy_then_remove(src: Path, dest: Path, *, media_type: str | None = None, so
def notify_home_assistant(item: dict[str, object], dest: Path, source_tag: str) -> None:
if not HOME_ASSISTANT_WEBHOOK:
return
item_type = str(item.get("item_type") or "Movie")
name = item.get("title") or dest.parent.name
payload_body: dict[str, object] = {
@@ -906,7 +903,7 @@ def source_tag_for(path: Path) -> str:
for root in DOWNLOAD_ROOTS:
try:
path.relative_to(root)
return "manual" if root == MANUAL_DOWNLOADS else "danish-legacy"
return "manual" if root == MANUAL_DOWNLOADS else "legacy"
except ValueError:
continue
return "manual"