70 lines
2.3 KiB
Java
70 lines
2.3 KiB
Java
package ctbrec.ui.sites.xlovecam;
|
|
|
|
import ctbrec.sites.xlovecam.XloveCam;
|
|
import ctbrec.ui.settings.Sites;
|
|
import ctbrec.ui.settings.TabUtils;
|
|
import ctbrec.ui.sites.AbstractTabProvider;
|
|
import ctbrec.ui.tabs.PaginatedScheduledService;
|
|
import ctbrec.ui.tabs.ThumbOverviewTab;
|
|
import javafx.scene.Scene;
|
|
import javafx.scene.control.Tab;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Collections;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
public class XloveCamTabProvider extends AbstractTabProvider {
|
|
|
|
private final XloveCam xloveCam;
|
|
|
|
private static final String FILTER_PARAM = "config[filter][10][]";
|
|
private static final String FILTER_PARAM_NEW = "config[filter][100522][]";
|
|
|
|
public XloveCamTabProvider(XloveCam xloveCam) {
|
|
super(xloveCam);
|
|
this.xloveCam = xloveCam;
|
|
}
|
|
|
|
@Override
|
|
protected List<Tab> getSiteTabs(Scene scene) {
|
|
List<Tab> tabs = new ArrayList<>();
|
|
|
|
// New ... it's here so as to declare updateService before use
|
|
var updateService = new XloveCamUpdateService(xloveCam, Map.of(FILTER_PARAM_NEW, "3"));
|
|
tabs.add(createTab("New", updateService));
|
|
|
|
Map<String, String> tabMap = new HashMap<>();
|
|
tabMap.put("1", "Young Women");
|
|
tabMap.put("13", "Ladies");
|
|
tabMap.put("6", "Mature Female");
|
|
tabMap.put("2", "Couples");
|
|
tabMap.put("3", "Lesbian");
|
|
tabMap.put("7", "Male");
|
|
tabMap.put("5", "Trans");
|
|
tabMap.put("all", "All");
|
|
List<String> enabledTabs = TabUtils.getEnabledTabs(Sites.XLOVECAM);
|
|
for (String tab : enabledTabs) {
|
|
String title = tabMap.getOrDefault(tab, tab);
|
|
switch (tab) {
|
|
case "all":
|
|
updateService = new XloveCamUpdateService(xloveCam, Collections.emptyMap());
|
|
break;
|
|
default:
|
|
updateService = new XloveCamUpdateService(xloveCam, Map.of(FILTER_PARAM, tab));
|
|
break;
|
|
}
|
|
tabs.add(createTab(title, updateService));
|
|
}
|
|
|
|
return tabs;
|
|
}
|
|
|
|
private Tab createTab(String title, PaginatedScheduledService updateService) {
|
|
var tab = new ThumbOverviewTab(title, updateService, xloveCam);
|
|
tab.setRecorder(recorder);
|
|
return tab;
|
|
}
|
|
}
|