jafea7-ctbrec-v5.3.2-based/client/src/main/java/ctbrec/ui/sites/cherrytv/CherryTvTabProvider.java

54 lines
2.4 KiB
Java

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<Tab> getTabs(Scene scene) {
List<Tab> 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;
}
}