feat: extract duplicated pagination logic into a helper private method

This commit is contained in:
2025-11-18 21:04:07 +01:00
parent e018ea6160
commit 333b40c339

42
main.py
View File

@@ -161,10 +161,7 @@ class Auditui:
print("-" * 80) print("-" * 80)
print(f"Total: {len(items)} books") print(f"Total: {len(items)} books")
def list_library(self): def _fetch_all_pages(self, response_groups):
try:
print("\nFetching your library...")
all_items = [] all_items = []
page = 1 page = 1
page_size = 50 page_size = 50
@@ -174,7 +171,7 @@ class Auditui:
path="library", path="library",
num_results=page_size, num_results=page_size,
page=page, page=page,
response_groups="contributors,media,product_attrs,product_desc,product_details,rating" response_groups=response_groups
) )
items = library.get("items", []) items = library.get("items", [])
@@ -190,6 +187,16 @@ class Auditui:
page += 1 page += 1
return all_items
def list_library(self):
try:
print("\nFetching your library...")
all_items = self._fetch_all_pages(
"contributors,media,product_attrs,product_desc,product_details,rating"
)
print(f"\nFetched {len(all_items)} books total.\n") print(f"\nFetched {len(all_items)} books total.\n")
if not all_items: if not all_items:
@@ -205,31 +212,10 @@ class Auditui:
try: try:
print("\nFetching your library...") print("\nFetching your library...")
all_items = [] all_items = self._fetch_all_pages(
page = 1 "contributors,media,product_attrs,product_desc,product_details,rating,is_finished,listening_status,percent_complete"
page_size = 50
while True:
library = self.client.get(
path="library",
num_results=page_size,
page=page,
response_groups="contributors,media,product_attrs,product_desc,product_details,rating,is_finished,listening_status,percent_complete"
) )
items = library.get("items", [])
if not items:
break
all_items.extend(items)
print(f"Fetched page {page} ({len(items)} items)...", end="\r")
if len(items) < page_size:
break
page += 1
print(f"\nFetched {len(all_items)} books total.\n") print(f"\nFetched {len(all_items)} books total.\n")
unfinished_items = [] unfinished_items = []