discoverylidarr/lidarr_helpers.py

81 lines
2.6 KiB
Python
Raw Normal View History

2025-06-23 10:31:25 +02:00
from config import *
import requests
2025-06-23 12:27:49 +00:00
import json
2025-06-23 10:31:25 +02:00
2025-06-23 14:09:29 +02:00
# def lidarr_api_add_artist(mbid):
# lookup_url = f"{LIDARR_URL}/api/v1/artist/lookup?term=mbid:{mbid}"
# headers = {"X-Api-Key": LIDARR_API_KEY, "Content-Type": "application/json"}
# res = requests.get(lookup_url, headers=headers)
# if not res.ok or not res.json():
# return False
# artist = res.json()[0]
# payload = {
# "foreignArtistId": artist['foreignArtistId'],
# "artistName": artist['artistName'],
# "monitored": True,
# "qualityProfileId": QUALITY_PROFILE_ID,
# "metadataProfileId": 1,
# "rootFolderPath": ROOT_FOLDER,
# "addOptions": {
# "monitor": "all",
# "searchForMissingAlbums": True
# }
# }
# add_url = f"{LIDARR_URL}/api/v1/artist"
# post_res = requests.post(add_url, headers=headers, json=payload)
# return post_res.ok
2025-06-23 12:27:49 +00:00
import requests
import json
from config import *
2025-06-23 10:31:25 +02:00
def lidarr_api_add_artist(mbid):
lookup_url = f"{LIDARR_URL}/api/v1/artist/lookup?term=mbid:{mbid}"
2025-06-23 12:27:49 +00:00
headers = {"X-Api-Key": LIDARR_API_KEY, "Content-Type": "application/json"}
2025-06-23 14:09:29 +02:00
try:
res = requests.get(lookup_url, headers=headers)
res.raise_for_status()
2025-06-23 12:27:49 +00:00
artists = res.json()
2025-06-23 10:31:25 +02:00
2025-06-23 12:27:49 +00:00
if not artists:
2025-06-23 14:09:29 +02:00
print(f"[LIDARR DEBUG] Ingen artist hittades för MBID {mbid}")
return False
2025-06-23 10:31:25 +02:00
2025-06-23 12:27:49 +00:00
artist = artists[0]
2025-06-23 14:09:29 +02:00
print(f"[LIDARR DEBUG] Artist hittad: {artist['artistName']} (MBID: {mbid})")
2025-06-23 12:27:49 +00:00
# Bygg payload från lookup-objektet
payload = artist.copy()
payload.update({
2025-06-23 14:09:29 +02:00
"monitored": True,
2025-06-23 12:27:49 +00:00
"qualityProfileId": QUALITY_PROFILE_ID,
2025-06-23 14:09:29 +02:00
"metadataProfileId": 1,
"rootFolderPath": ROOT_FOLDER_PATH,
"addOptions": {
2025-06-23 12:27:49 +00:00
"monitor": "all", # Bevakning av alla album
2025-06-23 14:09:29 +02:00
"searchForMissingAlbums": True
}
2025-06-23 12:27:49 +00:00
})
2025-06-23 10:31:25 +02:00
2025-06-23 14:09:29 +02:00
add_url = f"{LIDARR_URL}/api/v1/artist"
2025-06-23 12:27:49 +00:00
print(f"[LIDARR DEBUG] Payload: {json.dumps(payload, indent=2)}")
post_res = requests.post(add_url, headers=headers, json=payload)
post_res.raise_for_status()
2025-06-23 14:09:29 +02:00
print(f"[LIDARR DEBUG] Lyckades lägga till: {artist['artistName']}")
return True
2025-06-23 12:27:49 +00:00
except requests.exceptions.HTTPError as http_err:
print(f"[LIDARR ERROR] HTTP-fel vid tillägg av MBID {mbid}: {http_err}")
if http_err.response is not None:
print(f"[LIDARR ERROR] Svar från servern: {http_err.response.text}")
return False
2025-06-23 14:09:29 +02:00
except Exception as e:
2025-06-23 12:27:49 +00:00
print(f"[LIDARR ERROR] Annat fel vid tillägg av MBID {mbid}: {e}")
2025-06-23 14:09:29 +02:00
return False
2025-06-23 12:27:49 +00:00