pagination fix
This commit is contained in:
@@ -230,6 +230,7 @@ def get_all_gcal_events(service, from_now=False):
|
||||
Retrieves all gcal events with custom property blechreizEvent=True.
|
||||
|
||||
These are all events that have been created by this script.
|
||||
Handles pagination so all events are returned regardless of count.
|
||||
"""
|
||||
if from_now:
|
||||
now = datetime.datetime.now()
|
||||
@@ -237,21 +238,32 @@ def get_all_gcal_events(service, from_now=False):
|
||||
else:
|
||||
min_time = "2000-01-01T00:00:00-00:00"
|
||||
|
||||
all_items = []
|
||||
page_token = None
|
||||
|
||||
try:
|
||||
events = (
|
||||
service.events()
|
||||
.list(
|
||||
while True:
|
||||
kwargs = dict(
|
||||
calendarId="primary",
|
||||
singleEvents=True,
|
||||
maxResults=1000,
|
||||
maxResults=250, # max allowed per page by the API
|
||||
orderBy="startTime",
|
||||
timeMin=min_time,
|
||||
timeMax="2100-01-01T00:00:00-00:00",
|
||||
privateExtendedProperty="blechreizEvent=true",
|
||||
)
|
||||
.execute()
|
||||
)
|
||||
return events.get("items", [])
|
||||
if page_token:
|
||||
kwargs["pageToken"] = page_token
|
||||
|
||||
response = service.events().list(**kwargs).execute()
|
||||
all_items.extend(response.get("items", []))
|
||||
|
||||
page_token = response.get("nextPageToken")
|
||||
if not page_token:
|
||||
break
|
||||
|
||||
logger.info(f"Fetched {len(all_items)} GCal events (all pages)")
|
||||
return all_items
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to retrieve GCal events: {e}")
|
||||
return []
|
||||
|
||||
Reference in New Issue
Block a user