From c4c5818496807653607352bc6bb95286dc045281 Mon Sep 17 00:00:00 2001 From: 0xb00bface <0xboobface@gmail.com> Date: Sat, 6 Nov 2021 19:38:50 +0100 Subject: [PATCH] Implement pagination for cherry.tv --- .../java/ctbrec/ui/sites/cherrytv/CherryTvTabProvider.java | 6 +++--- .../ctbrec/ui/sites/cherrytv/CherryTvUpdateService.java | 3 +++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/client/src/main/java/ctbrec/ui/sites/cherrytv/CherryTvTabProvider.java b/client/src/main/java/ctbrec/ui/sites/cherrytv/CherryTvTabProvider.java index 52a9395b..09964060 100644 --- a/client/src/main/java/ctbrec/ui/sites/cherrytv/CherryTvTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/cherrytv/CherryTvTabProvider.java @@ -23,9 +23,9 @@ public class CherryTvTabProvider implements TabProvider { @Override public List getTabs(Scene scene) { List tabs = new ArrayList<>(); - tabs.add(createTab("Female", site.getBaseUrl() + "/graphql?operationName=findBroadcastsByPage&variables={\"slug\":\"female\",\"tag\":null,\"following\":null,\"limit\":50}&extensions={\"persistedQuery\":{\"version\":1,\"sha256Hash\":\"f1e214ca901e525301fcc6966cf081ee95ef777974ec184897c4a2cf15e9ac6f\"}}")); - tabs.add(createTab("Trans", site.getBaseUrl() + "/graphql?operationName=findBroadcastsByPage&variables={\"slug\":\"trans\",\"tag\":null,\"following\":null,\"limit\":50}&extensions={\"persistedQuery\":{\"version\":1,\"sha256Hash\":\"f1e214ca901e525301fcc6966cf081ee95ef777974ec184897c4a2cf15e9ac6f\"}}")); - tabs.add(createTab("Group Show", site.getBaseUrl() + "/graphql?operationName=findBroadcastsByPage&variables={\"slug\":\"groupshow\",\"tag\":null,\"following\":null,\"limit\":50}&extensions={\"persistedQuery\":{\"version\":1,\"sha256Hash\":\"f1e214ca901e525301fcc6966cf081ee95ef777974ec184897c4a2cf15e9ac6f\"}}")); + tabs.add(createTab("Female", site.getBaseUrl() + "/graphql?operationName=findBroadcastsByPage&variables={\"slug\":\"female\",\"tag\":null,\"following\":null,\"limit\":${limit},\"cursor\":${offset}}&extensions={\"persistedQuery\":{\"version\":1,\"sha256Hash\":\"f1e214ca901e525301fcc6966cf081ee95ef777974ec184897c4a2cf15e9ac6f\"}}")); + tabs.add(createTab("Trans", site.getBaseUrl() + "/graphql?operationName=findBroadcastsByPage&variables={\"slug\":\"trans\",\"tag\":null,\"following\":null,\"limit\":${limit},\"cursor\":${offset}}&extensions={\"persistedQuery\":{\"version\":1,\"sha256Hash\":\"f1e214ca901e525301fcc6966cf081ee95ef777974ec184897c4a2cf15e9ac6f\"}}")); + tabs.add(createTab("Group Show", site.getBaseUrl() + "/graphql?operationName=findBroadcastsByPage&variables={\"slug\":\"groupshow\",\"tag\":null,\"following\":null,\"limit\":${limit},\"cursor\":${offset}}&extensions={\"persistedQuery\":{\"version\":1,\"sha256Hash\":\"f1e214ca901e525301fcc6966cf081ee95ef777974ec184897c4a2cf15e9ac6f\"}}")); return tabs; } diff --git a/client/src/main/java/ctbrec/ui/sites/cherrytv/CherryTvUpdateService.java b/client/src/main/java/ctbrec/ui/sites/cherrytv/CherryTvUpdateService.java index 0f09e075..cfe7f5ed 100644 --- a/client/src/main/java/ctbrec/ui/sites/cherrytv/CherryTvUpdateService.java +++ b/client/src/main/java/ctbrec/ui/sites/cherrytv/CherryTvUpdateService.java @@ -30,6 +30,7 @@ import static ctbrec.io.HttpConstants.USER_AGENT; public class CherryTvUpdateService extends PaginatedScheduledService { private static final Logger LOG = LoggerFactory.getLogger(CherryTvUpdateService.class); + private static final int MODELS_PER_PAGE = 100; private String url; private final CherryTv site; @@ -52,6 +53,8 @@ public class CherryTvUpdateService extends PaginatedScheduledService { @Override public List call() throws IOException { String pageUrl = CherryTvUpdateService.this.url; + pageUrl = pageUrl.replace("${limit}", String.valueOf(MODELS_PER_PAGE)); + pageUrl = pageUrl.replace("${offset}", String.valueOf((page - 1) * MODELS_PER_PAGE)); LOG.debug("Fetching page {}", pageUrl); var request = new Request.Builder()