[gfycat] update pagination logic (#4479)

Some searches do not use cursor based pagination
but an offset based one.
This commit is contained in:
Mike Fährmann
2023-08-30 18:35:03 +02:00
parent a783c4f0fe
commit 28798594e8

View File

@@ -248,7 +248,7 @@ class GfycatAPI():
def search(self, query):
endpoint = "/v1/gfycats/search"
params = {"search_text": query, "count": 150}
params = {"search_text": query, "count": 100}
return self._pagination(endpoint, params)
def user(self, user):
@@ -301,6 +301,12 @@ class GfycatAPI():
data = self._call(endpoint, params)
yield from data[key]
if not data["cursor"]:
if data["cursor"]:
params["cursor"] = data["cursor"]
elif "cursor" in params:
return
params["cursor"] = data["cursor"]
else:
start = params.get("start", 0)
if start + len(data[key]) >= data.get("found", 0):
return
params["start"] = start + params["count"]