update
This commit is contained in:
+32
-9
@@ -389,15 +389,38 @@ class RadarrClient:
|
||||
return None
|
||||
|
||||
def earliest_import_event(self, movie_id: int) -> Optional[str]:
|
||||
data = self._get("/api/v3/history/movie", {
|
||||
"movieId": movie_id, "page": 1, "pageSize": 1000,
|
||||
"sortKey": "date", "sortDirection": "ascending"
|
||||
})
|
||||
if not data:
|
||||
_log("DEBUG", f"No history data returned for movie_id {movie_id}")
|
||||
return None
|
||||
items = data if isinstance(data, list) else data.get("records") or []
|
||||
_log("DEBUG", f"Found {len(items)} history items for movie_id {movie_id}")
|
||||
# Collect all history pages to ensure we don't miss early import events
|
||||
all_items = []
|
||||
page = 1
|
||||
page_size = 1000
|
||||
|
||||
while True:
|
||||
data = self._get("/api/v3/history/movie", {
|
||||
"movieId": movie_id, "page": page, "pageSize": page_size,
|
||||
"sortKey": "date", "sortDirection": "ascending"
|
||||
})
|
||||
if not data:
|
||||
break
|
||||
|
||||
items = data if isinstance(data, list) else data.get("records") or []
|
||||
if not items:
|
||||
break
|
||||
|
||||
all_items.extend(items)
|
||||
_log("DEBUG", f"Page {page}: Found {len(items)} history items for movie_id {movie_id}")
|
||||
|
||||
# If we got less than pageSize, we've reached the end
|
||||
if len(items) < page_size:
|
||||
break
|
||||
|
||||
page += 1
|
||||
# Safety valve - don't go crazy with pagination
|
||||
if page > 10:
|
||||
_log("WARNING", f"Stopped pagination at page 10 for movie_id {movie_id} - may have missed some history")
|
||||
break
|
||||
|
||||
_log("DEBUG", f"Found {len(all_items)} total history items across {page} pages for movie_id {movie_id}")
|
||||
items = all_items
|
||||
|
||||
first_grab = None
|
||||
for it in items:
|
||||
|
||||
Reference in New Issue
Block a user