diff --git a/VERSION b/VERSION index 43b2961..9789c4c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.13 +0.0.14 diff --git a/webhook_server.py b/webhook_server.py index f96d229..8124251 100644 --- a/webhook_server.py +++ b/webhook_server.py @@ -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: