grimmory auth

This commit is contained in:
2026-05-14 21:54:46 +02:00
parent e029da895b
commit cd950c29a6
+13 -11
View File
@@ -21,7 +21,7 @@ def _is_in_grimmory(filename: str, url: str, user: str, password: str) -> bool:
stem = Path(filename).stem
try:
r = requests.get(
url.rstrip("/") + "/api/v1/books",
url.rstrip("/") + "/komga/api/v1/books",
params={"search": stem},
auth=(user, password),
timeout=10,
@@ -72,18 +72,20 @@ def place_book(
def test_connection(url: str, user: str, password: str) -> tuple[bool, str]:
base = url.rstrip("/")
try:
r = requests.get(
url.rstrip("/") + "/api/v1/books",
params={"size": 1},
auth=(user, password),
timeout=10,
)
if r.status_code == 200:
# Health check (no auth required)
r = requests.get(base + "/api/v1/healthcheck", timeout=10)
if r.status_code != 200:
return False, f"Grimmory not reachable (HTTP {r.status_code})"
# Verify credentials against Komga-compatible API
r2 = requests.get(base + "/komga/api/v1/books", params={"size": 1},
auth=(user, password), timeout=10)
if r2.status_code == 200:
return True, "Connected to Grimmory successfully"
if r.status_code == 401:
return False, "Authentication failed — check username and password"
return False, f"HTTP {r.status_code}"
if r2.status_code == 401:
return False, "Grimmory reachable but credentials rejected — check username and password"
return True, f"Grimmory reachable (API returned HTTP {r2.status_code})"
except requests.exceptions.ConnectionError:
return False, "Could not connect — check the URL"
except Exception as e: