discoverylidarr/lidarr_helpers.py

51 lines
1.6 KiB
Python

import requests
from config import (
LIDARR_URL,
LIDARR_API_KEY,
ROOT_FOLDER_PATH,
QUALITY_PROFILE_ID,
MONITORED,
MONITOR_NEW_ITEMS,
SEARCH_FOR_MISSING_ALBUMS,
DEBUG_PRINT,
)
def lidarr_add_artist(artist):
payload = {
"artistName": artist["artistName"],
"foreignArtistId": artist["foreignArtistId"],
"rootFolderPath": ROOT_FOLDER_PATH,
"qualityProfileId": QUALITY_PROFILE_ID,
"metadataProfileId": 1,
"monitored": MONITORED,
"monitorNewItems": MONITOR_NEW_ITEMS,
"addOptions": {
"monitor": MONITOR_NEW_ITEMS,
"searchForMissingAlbums": SEARCH_FOR_MISSING_ALBUMS
},
"artistType": artist.get("artistType", "Group"),
"disambiguation": artist.get("disambiguation", ""),
"overview": artist.get("overview", ""),
"images": artist.get("images", []),
"links": artist.get("links", []),
"folder": artist["folder"]
}
if DEBUG_PRINT:
print(f"[LIDARR DEBUG] Artist hittad: {artist['artistName']} (MBID: {artist['foreignArtistId']})")
print(f"[LIDARR DEBUG] Payload: {payload}")
try:
response = requests.post(
f"{LIDARR_URL}/api/v1/artist",
headers={"X-Api-Key": LIDARR_API_KEY},
json=payload
)
response.raise_for_status()
return response.json()
except requests.exceptions.HTTPError as e:
print(f"[LIDARR ERROR] HTTP-fel vid tillägg av MBID {artist['foreignArtistId']}: {e}")
if e.response is not None:
print(f"[LIDARR ERROR] Svar från servern: {e.response.json()}")
return None