feat: extract duplicated pagination logic into a helper private method
This commit is contained in:
42
main.py
42
main.py
@@ -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 = []
|
||||||
|
|||||||
Reference in New Issue
Block a user