package ctbrec.ui.sites.cherrytv; import ctbrec.recorder.Recorder; import ctbrec.sites.cherrytv.CherryTv; import ctbrec.ui.tabs.TabProvider; import ctbrec.ui.tabs.ThumbOverviewTab; import javafx.scene.Scene; import javafx.scene.control.Tab; import java.util.ArrayList; import java.util.List; public class CherryTvTabProvider implements TabProvider { private final CherryTv site; private final Recorder recorder; private final CherryTvFollowedTab followedTab; public CherryTvTabProvider(CherryTv cherryTv) { this.site = cherryTv; this.recorder = cherryTv.getRecorder(); followedTab = new CherryTvFollowedTab("Following", site); followedTab.setImageAspectRatio(9.0 / 16.0); followedTab.preserveAspectRatioProperty().set(false); followedTab.setRecorder(recorder); } @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\":${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\"}}")); tabs.add(followedTab); return tabs; } @Override public Tab getFollowedTab() { return followedTab; } private Tab createTab(String name, String url) { var updateService = new CherryTvUpdateService(url, site, false); var tab = new ThumbOverviewTab(name, updateService, site); tab.setImageAspectRatio(9.0 / 16.0); tab.preserveAspectRatioProperty().set(false); tab.setRecorder(recorder); return tab; } }