update to database only

This commit is contained in:
2025-09-08 17:56:43 -04:00
parent 6f47df201d
commit 935307a74d
2 changed files with 56 additions and 86 deletions
+14 -9
View File
@@ -175,26 +175,28 @@ class RadarrDbClient:
Returns:
(date_iso, source_description)
"""
# Query for earliest import event (EventType = 3)
# Query for earliest import event - handle both numeric (3) and string ('downloadFolderImported') formats
import_query = """
SELECT
h."Date" as event_date,
h."Data" as event_data
h."Data" as event_data,
h."EventType" as event_type
FROM "History" h
WHERE h."MovieId" = %s
AND h."EventType" = 3
AND (h."EventType" = 3 OR h."EventType" = 'downloadFolderImported' OR h."EventType" = 'movieFileImported')
ORDER BY h."Date" ASC
LIMIT 1
"""
# Fallback: earliest grab event (EventType = 1) with download info
# Fallback: earliest grab event - handle both numeric (1) and string ('grabbed') formats
grab_query = """
SELECT
h."Date" as event_date,
h."Data" as event_data
h."Data" as event_data,
h."EventType" as event_type
FROM "History" h
WHERE h."MovieId" = %s
AND h."EventType" = 1
AND (h."EventType" = 1 OR h."EventType" = 'grabbed')
AND h."Data" IS NOT NULL
ORDER BY h."Date" ASC
LIMIT 1
@@ -217,13 +219,14 @@ class RadarrDbClient:
if row:
event_date = row['event_date'] if self.db_type == "postgresql" else row[0]
event_type = row['event_type'] if self.db_type == "postgresql" else row[2]
if isinstance(event_date, str):
dt = datetime.fromisoformat(event_date.replace("Z", "+00:00"))
else:
dt = event_date.replace(tzinfo=timezone.utc)
date_iso = dt.astimezone(timezone.utc).isoformat(timespec="seconds")
_log("INFO", f"Found import event for movie {movie_id} at {date_iso}")
_log("INFO", f"Found import event ({event_type}) for movie {movie_id} at {date_iso}")
return date_iso, "radarr:db.history.import"
# Fallback to grab events
@@ -232,13 +235,14 @@ class RadarrDbClient:
if row:
event_date = row['event_date'] if self.db_type == "postgresql" else row[0]
event_type = row['event_type'] if self.db_type == "postgresql" else row[2]
if isinstance(event_date, str):
dt = datetime.fromisoformat(event_date.replace("Z", "+00:00"))
else:
dt = event_date.replace(tzinfo=timezone.utc)
date_iso = dt.astimezone(timezone.utc).isoformat(timespec="seconds")
_log("WARNING", f"Using grab event for movie {movie_id} at {date_iso}")
_log("WARNING", f"⚠️ Using grab event ({event_type}) for movie {movie_id} at {date_iso}")
return date_iso, "radarr:db.history.grab"
except Exception as e:
@@ -342,7 +346,8 @@ class RadarrDbClient:
MIN(h."Date") as earliest_import
FROM "Movies" m
JOIN "MovieMetadata" mm ON m."MovieMetadataId" = mm."Id"
LEFT JOIN "History" h ON m."Id" = h."MovieId" AND h."EventType" = 3
LEFT JOIN "History" h ON m."Id" = h."MovieId"
AND (h."EventType" = 3 OR h."EventType" = 'downloadFolderImported' OR h."EventType" = 'movieFileImported')
WHERE mm."ImdbId" IN ({placeholders})
GROUP BY mm."ImdbId", m."Id"
"""