Add optional tabs
This commit is contained in:
parent
6718dd394c
commit
d502f65910
|
@ -15,7 +15,7 @@ import javafx.scene.control.Label;
|
||||||
import javafx.scene.control.PasswordField;
|
import javafx.scene.control.PasswordField;
|
||||||
import javafx.scene.control.TextField;
|
import javafx.scene.control.TextField;
|
||||||
import javafx.scene.layout.GridPane;
|
import javafx.scene.layout.GridPane;
|
||||||
import javafx.scene.layout.HBox;
|
// import javafx.scene.layout.HBox;
|
||||||
import javafx.scene.layout.Priority;
|
import javafx.scene.layout.Priority;
|
||||||
|
|
||||||
public class BongaCamsConfigUI extends AbstractConfigUI {
|
public class BongaCamsConfigUI extends AbstractConfigUI {
|
||||||
|
@ -90,33 +90,45 @@ public class BongaCamsConfigUI extends AbstractConfigUI {
|
||||||
|
|
||||||
Label tabsLabel = new Label("Tabs");
|
Label tabsLabel = new Label("Tabs");
|
||||||
layout.add(tabsLabel, 0, row);
|
layout.add(tabsLabel, 0, row);
|
||||||
List<String> bcTabs = getBongaTabs();
|
List<String> tabs = getBongaTabs();
|
||||||
|
|
||||||
HBox checkboxContainer = new HBox(10);
|
GridPane checkboxGrid = new GridPane();
|
||||||
|
checkboxGrid.setHgap(10);
|
||||||
|
checkboxGrid.setVgap(5);
|
||||||
|
checkboxGrid.setPadding(new Insets(0, 0, 0, 7));
|
||||||
|
|
||||||
CheckBox bcFemale = new CheckBox("Female");
|
CheckBox female = new CheckBox("Female");
|
||||||
bcFemale.setSelected(bcTabs.contains("female"));
|
female.setSelected(tabs.contains("female"));
|
||||||
bcFemale.setOnAction(e -> toggleTabs("female", bcFemale.isSelected()));
|
female.setOnAction(e -> toggleTabs("female", female.isSelected()));
|
||||||
HBox.setMargin(bcFemale, new Insets(0, 0, 0, 7));
|
checkboxGrid.add(female, 0, 0);
|
||||||
checkboxContainer.getChildren().add(bcFemale);
|
|
||||||
|
|
||||||
CheckBox bcMale = new CheckBox("Male");
|
CheckBox male = new CheckBox("Male");
|
||||||
bcMale.setSelected(bcTabs.contains("male"));
|
male.setSelected(tabs.contains("male"));
|
||||||
bcMale.setOnAction(e -> toggleTabs("male", bcMale.isSelected()));
|
male.setOnAction(e -> toggleTabs("male", male.isSelected()));
|
||||||
checkboxContainer.getChildren().add(bcMale);
|
checkboxGrid.add(male, 1, 0);
|
||||||
|
|
||||||
CheckBox bcCouples = new CheckBox("Couples");
|
CheckBox couples = new CheckBox("Couples");
|
||||||
bcCouples.setSelected(bcTabs.contains("couples"));
|
couples.setSelected(tabs.contains("couples"));
|
||||||
bcCouples.setOnAction(e -> toggleTabs("couples", bcCouples.isSelected()));
|
couples.setOnAction(e -> toggleTabs("couples", couples.isSelected()));
|
||||||
checkboxContainer.getChildren().add(bcCouples);
|
checkboxGrid.add(couples, 2, 0);
|
||||||
|
|
||||||
CheckBox bcTrans = new CheckBox("Trans");
|
CheckBox trans = new CheckBox("Trans");
|
||||||
bcTrans.setSelected(bcTabs.contains("trans"));
|
trans.setSelected(tabs.contains("trans"));
|
||||||
bcTrans.setOnAction(e -> toggleTabs("trans", bcTrans.isSelected()));
|
trans.setOnAction(e -> toggleTabs("trans", trans.isSelected()));
|
||||||
checkboxContainer.getChildren().add(bcTrans);
|
checkboxGrid.add(trans, 0, 1);
|
||||||
|
|
||||||
layout.add(checkboxContainer, 1, row, 4, 1);
|
CheckBox newModels = new CheckBox("New");
|
||||||
row++;
|
newModels.setSelected(tabs.contains("new"));
|
||||||
|
newModels.setOnAction(e -> toggleTabs("new", newModels.isSelected()));
|
||||||
|
checkboxGrid.add(newModels, 1, 1);
|
||||||
|
|
||||||
|
CheckBox mobile = new CheckBox("Mobile");
|
||||||
|
mobile.setSelected(tabs.contains("mobile"));
|
||||||
|
mobile.setOnAction(e -> toggleTabs("mobile", mobile.isSelected()));
|
||||||
|
checkboxGrid.add(mobile, 2, 1);
|
||||||
|
|
||||||
|
layout.add(checkboxGrid, 1, row, 3, 2);
|
||||||
|
row += 2;
|
||||||
|
|
||||||
var createAccount = new Button("Create new Account");
|
var createAccount = new Button("Create new Account");
|
||||||
createAccount.setOnAction(e -> DesktopIntegration.open(bongaCams.getAffiliateLink()));
|
createAccount.setOnAction(e -> DesktopIntegration.open(bongaCams.getAffiliateLink()));
|
||||||
|
|
|
@ -28,28 +28,34 @@ public class BongaCamsTabProvider extends AbstractTabProvider {
|
||||||
List<Tab> tabs = new ArrayList<>();
|
List<Tab> tabs = new ArrayList<>();
|
||||||
|
|
||||||
Map<String, String> tabMap = new HashMap<>();
|
Map<String, String> tabMap = new HashMap<>();
|
||||||
|
tabMap.put("mobile", "Mobile");
|
||||||
|
tabMap.put("new", "New");
|
||||||
tabMap.put("female", "Female");
|
tabMap.put("female", "Female");
|
||||||
tabMap.put("male", "Male");
|
tabMap.put("male", "Male");
|
||||||
tabMap.put("couple", "Couple");
|
tabMap.put("couple", "Couple");
|
||||||
tabMap.put("trans", "Trans");
|
tabMap.put("trans", "Trans");
|
||||||
List<String> enabledTabs = getBongaTabs();
|
List<String> enabledTabs = getBongaTabs();
|
||||||
for (String tab : enabledTabs) {
|
for (String tab : enabledTabs) {
|
||||||
String url = site.getBaseUrl() + "/tools/listing_v3.php?livetab=" + tab + "&online_only=true&is_mobile=true&limit=72&offset=";
|
switch (tab) {
|
||||||
|
case "female":
|
||||||
|
case "male":
|
||||||
|
case "couple":
|
||||||
|
case "trans":
|
||||||
|
url = site.getBaseUrl() + "/tools/listing_v3.php?livetab=" + tab + "&online_only=true&is_mobile=true&limit=72&offset=";
|
||||||
|
break;
|
||||||
|
case "new":
|
||||||
|
url = site.getBaseUrl() + "/tools/listing_v3.php?livetab=new&online_only=true&is_mobile=true&limit=72&offset=";
|
||||||
|
break;
|
||||||
|
case "mobile":
|
||||||
|
url = site.getBaseUrl() + "/tools/listing_v3.php?livetab=all&online_only=true&tag=mobile-live&limit=72&offset=";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
}
|
||||||
updateService = new BongaCamsUpdateService((BongaCams) site, url);
|
updateService = new BongaCamsUpdateService((BongaCams) site, url);
|
||||||
String title = tabMap.getOrDefault(tab, tab);
|
String title = tabMap.getOrDefault(tab, tab);
|
||||||
tabs.add(createTab(title, updateService));
|
tabs.add(createTab(title, updateService));
|
||||||
}
|
}
|
||||||
|
|
||||||
// mobile
|
|
||||||
url = site.getBaseUrl() + "/tools/listing_v3.php?livetab=all&online_only=true&tag=mobile-live&limit=72&offset=";
|
|
||||||
updateService = new BongaCamsUpdateService((BongaCams) site, url);
|
|
||||||
tabs.add(createTab("Mobile", updateService));
|
|
||||||
|
|
||||||
// new
|
|
||||||
url = site.getBaseUrl() + "/tools/listing_v3.php?livetab=new&online_only=true&is_mobile=true&limit=72&offset=";
|
|
||||||
updateService = new BongaCamsUpdateService((BongaCams) site, url);
|
|
||||||
tabs.add(createTab("New", updateService));
|
|
||||||
|
|
||||||
// friends
|
// friends
|
||||||
url = site.getBaseUrl() + "/tools/listing_v3.php?livetab=friends&online_only=true&limit=72&offset=";
|
url = site.getBaseUrl() + "/tools/listing_v3.php?livetab=friends&online_only=true&limit=72&offset=";
|
||||||
updateService = new BongaCamsUpdateService((BongaCams) site, url, true);
|
updateService = new BongaCamsUpdateService((BongaCams) site, url, true);
|
||||||
|
|
|
@ -16,7 +16,7 @@ import javafx.scene.control.Label;
|
||||||
import javafx.scene.control.PasswordField;
|
import javafx.scene.control.PasswordField;
|
||||||
import javafx.scene.control.TextField;
|
import javafx.scene.control.TextField;
|
||||||
import javafx.scene.layout.GridPane;
|
import javafx.scene.layout.GridPane;
|
||||||
import javafx.scene.layout.HBox;
|
// import javafx.scene.layout.HBox;
|
||||||
import javafx.scene.layout.Priority;
|
import javafx.scene.layout.Priority;
|
||||||
|
|
||||||
public class Cam4ConfigUI extends AbstractConfigUI {
|
public class Cam4ConfigUI extends AbstractConfigUI {
|
||||||
|
@ -80,26 +80,43 @@ public class Cam4ConfigUI extends AbstractConfigUI {
|
||||||
layout.add(tabsLabel, 0, row);
|
layout.add(tabsLabel, 0, row);
|
||||||
List<String> tabs = getCam4Tabs();
|
List<String> tabs = getCam4Tabs();
|
||||||
|
|
||||||
HBox checkboxContainer = new HBox(10);
|
GridPane checkboxGrid = new GridPane();
|
||||||
|
checkboxGrid.setHgap(10);
|
||||||
CheckBox male = new CheckBox("Male");
|
checkboxGrid.setVgap(5);
|
||||||
male.setSelected(tabs.contains("male"));
|
checkboxGrid.setPadding(new Insets(0, 0, 0, 7));
|
||||||
male.setOnAction(e -> toggleTab("male", male.isSelected()));
|
|
||||||
HBox.setMargin(male, new Insets(0, 0, 0, 7));
|
|
||||||
checkboxContainer.getChildren().add(male);
|
|
||||||
|
|
||||||
CheckBox female = new CheckBox("Female");
|
CheckBox female = new CheckBox("Female");
|
||||||
female.setSelected(tabs.contains("female"));
|
female.setSelected(tabs.contains("female"));
|
||||||
female.setOnAction(e -> toggleTab("female", female.isSelected()));
|
female.setOnAction(e -> toggleTab("female", female.isSelected()));
|
||||||
checkboxContainer.getChildren().add(female);
|
checkboxGrid.add(female, 0, 0);
|
||||||
|
|
||||||
CheckBox shemale = new CheckBox("Trans");
|
CheckBox male = new CheckBox("Male");
|
||||||
shemale.setSelected(tabs.contains("shemale"));
|
male.setSelected(tabs.contains("male"));
|
||||||
shemale.setOnAction(e -> toggleTab("shemale", shemale.isSelected()));
|
male.setOnAction(e -> toggleTab("male", male.isSelected()));
|
||||||
checkboxContainer.getChildren().add(shemale);
|
checkboxGrid.add(male, 1, 0);
|
||||||
|
|
||||||
layout.add(checkboxContainer, 1, row, 4, 1);
|
CheckBox couples = new CheckBox("Couples");
|
||||||
row++;
|
couples.setSelected(tabs.contains("couples"));
|
||||||
|
couples.setOnAction(e -> toggleTab("couples", couples.isSelected()));
|
||||||
|
checkboxGrid.add(couples, 2, 0);
|
||||||
|
|
||||||
|
CheckBox trans = new CheckBox("Trans");
|
||||||
|
trans.setSelected(tabs.contains("shemale"));
|
||||||
|
trans.setOnAction(e -> toggleTab("shemale", trans.isSelected()));
|
||||||
|
checkboxGrid.add(trans, 0, 1);
|
||||||
|
|
||||||
|
CheckBox hdModels = new CheckBox("HD");
|
||||||
|
hdModels.setSelected(tabs.contains("hd"));
|
||||||
|
hdModels.setOnAction(e -> toggleTab("hd", hdModels.isSelected()));
|
||||||
|
checkboxGrid.add(hdModels, 1, 1);
|
||||||
|
|
||||||
|
CheckBox mobile = new CheckBox("Mobile");
|
||||||
|
mobile.setSelected(tabs.contains("mobile"));
|
||||||
|
mobile.setOnAction(e -> toggleTab("mobile", mobile.isSelected()));
|
||||||
|
checkboxGrid.add(mobile, 2, 1);
|
||||||
|
|
||||||
|
layout.add(checkboxGrid, 1, row, 3, 2);
|
||||||
|
row += 2;
|
||||||
|
|
||||||
var createAccount = new Button("Create new Account");
|
var createAccount = new Button("Create new Account");
|
||||||
createAccount.setOnAction(e -> DesktopIntegration.open(Cam4.AFFILIATE_LINK));
|
createAccount.setOnAction(e -> DesktopIntegration.open(Cam4.AFFILIATE_LINK));
|
||||||
|
|
|
@ -28,15 +28,31 @@ public class Cam4TabProvider extends AbstractTabProvider {
|
||||||
tabMap.put("male", "Male");
|
tabMap.put("male", "Male");
|
||||||
tabMap.put("female", "Female");
|
tabMap.put("female", "Female");
|
||||||
tabMap.put("shemale", "Trans");
|
tabMap.put("shemale", "Trans");
|
||||||
|
tabMap.put("couples", "Couples");
|
||||||
|
tabMap.put("hd", "HD");
|
||||||
|
tabMap.put("mobile", "Mobile");
|
||||||
List<String> enabledTabs = getCam4Tabs();
|
List<String> enabledTabs = getCam4Tabs();
|
||||||
for (String tab : enabledTabs) {
|
for (String tab : enabledTabs) {
|
||||||
String title = tabMap.getOrDefault(tab, tab);
|
String title = tabMap.getOrDefault(tab, tab);
|
||||||
tabs.add(createTab(title, site.getBaseUrl() + "/directoryCams?directoryJson=true&online=true&url=true&orderBy=MOST_VIEWERS&gender=" + tab));
|
switch (tab) {
|
||||||
|
case "female":
|
||||||
|
case "male":
|
||||||
|
case "shemale":
|
||||||
|
tabs.add(createTab(title, site.getBaseUrl() + "/directoryCams?directoryJson=true&online=true&url=true&orderBy=MOST_VIEWERS&gender=" + tab));
|
||||||
|
break;
|
||||||
|
case "couples":
|
||||||
|
tabs.add(createTab("Couples", site.getBaseUrl() + "/directoryCams?directoryJson=true&online=true&url=true&orderBy=MOST_VIEWERS&broadcastType=male_group&broadcastType=female_group&broadcastType=male_female_group"));
|
||||||
|
break;
|
||||||
|
case "hd":
|
||||||
|
tabs.add(createTab("HD", site.getBaseUrl() + "/directoryCams?directoryJson=true&online=true&url=true&orderBy=VIDEO_QUALITY&gender=female&broadcastType=female_group&broadcastType=solo&broadcastType=male_female_group&hd=true"));
|
||||||
|
break;
|
||||||
|
case "mobile":
|
||||||
|
tabs.add(createTab("Mobile", site.getBaseUrl() + "/directoryCams?directoryJson=true&online=true&url=true&orderBy=MOST_VIEWERS&gender=female&broadcastType=female_group&broadcastType=solo&broadcastType=male_female_group&source=mobile"));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tabs.add(createTab("Couples", site.getBaseUrl() + "/directoryCams?directoryJson=true&online=true&url=true&orderBy=MOST_VIEWERS&broadcastType=male_group&broadcastType=female_group&broadcastType=male_female_group"));
|
|
||||||
tabs.add(createTab("HD", site.getBaseUrl() + "/directoryCams?directoryJson=true&online=true&url=true&orderBy=VIDEO_QUALITY&gender=female&broadcastType=female_group&broadcastType=solo&broadcastType=male_female_group&hd=true"));
|
|
||||||
tabs.add(createTab("Mobile", site.getBaseUrl() + "/directoryCams?directoryJson=true&online=true&url=true&orderBy=MOST_VIEWERS&gender=female&broadcastType=female_group&broadcastType=solo&broadcastType=male_female_group&source=mobile"));
|
|
||||||
tabs.add(createTab("New", site.getBaseUrl() + "/directoryCams?directoryJson=true&online=true&url=true&orderBy=MOST_VIEWERS&gender=female&broadcastType=female_group&broadcastType=solo&broadcastType=male_female_group&newPerformer=true"));
|
tabs.add(createTab("New", site.getBaseUrl() + "/directoryCams?directoryJson=true&online=true&url=true&orderBy=MOST_VIEWERS&gender=female&broadcastType=female_group&broadcastType=solo&broadcastType=male_female_group&newPerformer=true"));
|
||||||
|
|
||||||
followed = new Cam4FollowedTab((Cam4) site);
|
followed = new Cam4FollowedTab((Cam4) site);
|
||||||
|
|
|
@ -16,7 +16,7 @@ import javafx.scene.control.Label;
|
||||||
import javafx.scene.control.PasswordField;
|
import javafx.scene.control.PasswordField;
|
||||||
import javafx.scene.control.TextField;
|
import javafx.scene.control.TextField;
|
||||||
import javafx.scene.layout.GridPane;
|
import javafx.scene.layout.GridPane;
|
||||||
import javafx.scene.layout.HBox;
|
// import javafx.scene.layout.HBox;
|
||||||
import javafx.scene.layout.Priority;
|
import javafx.scene.layout.Priority;
|
||||||
|
|
||||||
public class CamsodaConfigUI extends AbstractConfigUI {
|
public class CamsodaConfigUI extends AbstractConfigUI {
|
||||||
|
@ -80,31 +80,43 @@ public class CamsodaConfigUI extends AbstractConfigUI {
|
||||||
layout.add(tabsLabel, 0, row);
|
layout.add(tabsLabel, 0, row);
|
||||||
List<String> tabs = getCamsodaTabs();
|
List<String> tabs = getCamsodaTabs();
|
||||||
|
|
||||||
HBox checkboxContainer = new HBox(10);
|
GridPane checkboxGrid = new GridPane();
|
||||||
|
checkboxGrid.setHgap(10);
|
||||||
CheckBox male = new CheckBox("Male");
|
checkboxGrid.setVgap(5);
|
||||||
male.setSelected(tabs.contains("m"));
|
checkboxGrid.setPadding(new Insets(0, 0, 0, 7));
|
||||||
male.setOnAction(e -> toggleTab("m", male.isSelected()));
|
|
||||||
HBox.setMargin(male, new Insets(0, 0, 0, 7));
|
|
||||||
checkboxContainer.getChildren().add(male);
|
|
||||||
|
|
||||||
CheckBox female = new CheckBox("Female");
|
CheckBox female = new CheckBox("Female");
|
||||||
female.setSelected(tabs.contains("f"));
|
female.setSelected(tabs.contains("f"));
|
||||||
female.setOnAction(e -> toggleTab("f", female.isSelected()));
|
female.setOnAction(e -> toggleTab("f", female.isSelected()));
|
||||||
checkboxContainer.getChildren().add(female);
|
checkboxGrid.add(female, 0, 0);
|
||||||
|
|
||||||
|
CheckBox male = new CheckBox("Male");
|
||||||
|
male.setSelected(tabs.contains("m"));
|
||||||
|
male.setOnAction(e -> toggleTab("m", male.isSelected()));
|
||||||
|
checkboxGrid.add(male, 1, 0);
|
||||||
|
|
||||||
CheckBox trans = new CheckBox("Trans");
|
CheckBox trans = new CheckBox("Trans");
|
||||||
trans.setSelected(tabs.contains("t"));
|
trans.setSelected(tabs.contains("t"));
|
||||||
trans.setOnAction(e -> toggleTab("t", trans.isSelected()));
|
trans.setOnAction(e -> toggleTab("t", trans.isSelected()));
|
||||||
checkboxContainer.getChildren().add(trans);
|
checkboxGrid.add(trans, 2, 0);
|
||||||
|
|
||||||
CheckBox couples = new CheckBox("Couples");
|
CheckBox couples = new CheckBox("Couples");
|
||||||
couples.setSelected(tabs.contains("c"));
|
couples.setSelected(tabs.contains("c"));
|
||||||
couples.setOnAction(e -> toggleTab("c", couples.isSelected()));
|
couples.setOnAction(e -> toggleTab("c", couples.isSelected()));
|
||||||
checkboxContainer.getChildren().add(couples);
|
checkboxGrid.add(couples, 0, 1);
|
||||||
|
|
||||||
layout.add(checkboxContainer, 1, row, 4, 1);
|
CheckBox isNew = new CheckBox("New");
|
||||||
row++;
|
isNew.setSelected(tabs.contains("isNew"));
|
||||||
|
isNew.setOnAction(e -> toggleTab("isNew", isNew.isSelected()));
|
||||||
|
checkboxGrid.add(isNew, 1, 1);
|
||||||
|
|
||||||
|
CheckBox voyeur = new CheckBox("Voyeur");
|
||||||
|
voyeur.setSelected(tabs.contains("isVoyeur"));
|
||||||
|
voyeur.setOnAction(e -> toggleTab("isVoyeur", voyeur.isSelected()));
|
||||||
|
checkboxGrid.add(voyeur, 2, 1);
|
||||||
|
|
||||||
|
layout.add(checkboxGrid, 1, row, 3, 2);
|
||||||
|
row += 2;
|
||||||
|
|
||||||
var createAccount = new Button("Create new Account");
|
var createAccount = new Button("Create new Account");
|
||||||
createAccount.setOnAction(e -> DesktopIntegration.open(camsoda.getAffiliateLink()));
|
createAccount.setOnAction(e -> DesktopIntegration.open(camsoda.getAffiliateLink()));
|
||||||
|
|
|
@ -30,21 +30,39 @@ public class CamsodaTabProvider extends AbstractTabProvider {
|
||||||
@Override
|
@Override
|
||||||
protected List<Tab> getSiteTabs(Scene scene) {
|
protected List<Tab> getSiteTabs(Scene scene) {
|
||||||
List<Tab> tabs = new ArrayList<>();
|
List<Tab> tabs = new ArrayList<>();
|
||||||
|
Map<String, Predicate<CamsodaModel>> methodMap = new HashMap<>();
|
||||||
|
methodMap.put("isNew", CamsodaModel::isNew);
|
||||||
|
methodMap.put("isVoyeur", CamsodaModel::isVoyeur);
|
||||||
|
|
||||||
Map<String, String> tabMap = new HashMap<>();
|
Map<String, String> tabMap = new HashMap<>();
|
||||||
|
tabMap.put("a", "All");
|
||||||
tabMap.put("m", "Male");
|
tabMap.put("m", "Male");
|
||||||
tabMap.put("f", "Female");
|
tabMap.put("f", "Female");
|
||||||
tabMap.put("c", "Couples");
|
tabMap.put("c", "Couples");
|
||||||
tabMap.put("t", "Trans");
|
tabMap.put("t", "Trans");
|
||||||
|
tabMap.put("isNew", "New");
|
||||||
|
tabMap.put("isVoyeur", "Voyeur");
|
||||||
List<String> enabledTabs = getCamsodaTabs();
|
List<String> enabledTabs = getCamsodaTabs();
|
||||||
for (String tab : enabledTabs) {
|
for (String tab : enabledTabs) {
|
||||||
String title = tabMap.getOrDefault(tab, tab);
|
String title = tabMap.getOrDefault(tab, tab);
|
||||||
tabs.add(createTab(title, API_URL, m -> Objects.equals(tab, m.getGender())));
|
switch (tab) {
|
||||||
|
case "a":
|
||||||
|
tabs.add(createTab("All", API_URL, m -> true));
|
||||||
|
break;
|
||||||
|
case "m":
|
||||||
|
case "f":
|
||||||
|
case "c":
|
||||||
|
case "t":
|
||||||
|
tabs.add(createTab(title, API_URL, m -> Objects.equals(tab, m.getGender())));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (tab.contains("is")) {
|
||||||
|
tabs.add(createTab(title, API_URL, methodMap.get(tab)));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tabs.add(createTab("All", API_URL, m -> true));
|
|
||||||
tabs.add(createTab("New", API_URL, CamsodaModel::isNew));
|
|
||||||
tabs.add(createTab("Voyeur", API_URL, CamsodaModel::isVoyeur));
|
|
||||||
followedTab.setRecorder(recorder);
|
followedTab.setRecorder(recorder);
|
||||||
followedTab.setScene(scene);
|
followedTab.setScene(scene);
|
||||||
tabs.add(followedTab);
|
tabs.add(followedTab);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package ctbrec.ui.sites.chaturbate;
|
package ctbrec.ui.sites.chaturbate;
|
||||||
|
|
||||||
import ctbrec.Config;
|
// import ctbrec.Config;
|
||||||
import ctbrec.Model;
|
import ctbrec.Model;
|
||||||
import ctbrec.StringUtil;
|
import ctbrec.StringUtil;
|
||||||
import ctbrec.io.HtmlParser;
|
import ctbrec.io.HtmlParser;
|
||||||
|
|
|
@ -12,7 +12,7 @@ import javafx.geometry.Insets;
|
||||||
import javafx.scene.Parent;
|
import javafx.scene.Parent;
|
||||||
import javafx.scene.control.*;
|
import javafx.scene.control.*;
|
||||||
import javafx.scene.layout.GridPane;
|
import javafx.scene.layout.GridPane;
|
||||||
import javafx.scene.layout.HBox;
|
// import javafx.scene.layout.HBox;
|
||||||
import javafx.scene.layout.Priority;
|
import javafx.scene.layout.Priority;
|
||||||
|
|
||||||
public class ChaturbateConfigUi extends AbstractConfigUI {
|
public class ChaturbateConfigUi extends AbstractConfigUI {
|
||||||
|
@ -104,35 +104,97 @@ public class ChaturbateConfigUi extends AbstractConfigUI {
|
||||||
GridPane.setColumnSpan(requestThrottle, 2);
|
GridPane.setColumnSpan(requestThrottle, 2);
|
||||||
layout.add(requestThrottle, 1, row++);
|
layout.add(requestThrottle, 1, row++);
|
||||||
|
|
||||||
Label regionsLabel = new Label("Region Tabs");
|
Label tabsLabel = new Label("Tabs");
|
||||||
layout.add(regionsLabel, 0, row);
|
layout.add(tabsLabel, 0, row);
|
||||||
List<String> regions = getChaturbateRegions();
|
List<String> tabs = getChaturbateTabs();
|
||||||
|
|
||||||
HBox checkboxContainer = new HBox(10);
|
GridPane checkboxGrid = new GridPane();
|
||||||
|
checkboxGrid.setHgap(10);
|
||||||
|
checkboxGrid.setVgap(5);
|
||||||
|
checkboxGrid.setPadding(new Insets(0, 0, 0, 7));
|
||||||
|
|
||||||
|
CheckBox female = new CheckBox("Female");
|
||||||
|
female.setSelected(tabs.contains("f"));
|
||||||
|
female.setOnAction(e -> toggleTab("f", female.isSelected()));
|
||||||
|
checkboxGrid.add(female, 0, 0);
|
||||||
|
|
||||||
|
CheckBox newFemale = new CheckBox("New Female");
|
||||||
|
newFemale.setSelected(tabs.contains("nf"));
|
||||||
|
newFemale.setOnAction(e -> toggleTab("nf", newFemale.isSelected()));
|
||||||
|
checkboxGrid.add(newFemale, 1, 0);
|
||||||
|
|
||||||
|
CheckBox male = new CheckBox("Male");
|
||||||
|
male.setSelected(tabs.contains("m"));
|
||||||
|
male.setOnAction(e -> toggleTab("m", male.isSelected()));
|
||||||
|
checkboxGrid.add(male, 2, 0);
|
||||||
|
|
||||||
|
CheckBox newMale = new CheckBox("New Male");
|
||||||
|
newMale.setSelected(tabs.contains("nm"));
|
||||||
|
newMale.setOnAction(e -> toggleTab("nm", newMale.isSelected()));
|
||||||
|
checkboxGrid.add(newMale, 3, 0);
|
||||||
|
|
||||||
|
CheckBox couples = new CheckBox("Couples");
|
||||||
|
couples.setSelected(tabs.contains("c"));
|
||||||
|
couples.setOnAction(e -> toggleTab("c", couples.isSelected()));
|
||||||
|
checkboxGrid.add(couples, 0, 1);
|
||||||
|
|
||||||
|
CheckBox trans = new CheckBox("Trans");
|
||||||
|
trans.setSelected(tabs.contains("t"));
|
||||||
|
trans.setOnAction(e -> toggleTab("t", trans.isSelected()));
|
||||||
|
checkboxGrid.add(trans, 1, 1);
|
||||||
|
|
||||||
|
CheckBox pvt = new CheckBox("Private");
|
||||||
|
pvt.setSelected(tabs.contains("xp"));
|
||||||
|
pvt.setOnAction(e -> toggleTab("xp", pvt.isSelected()));
|
||||||
|
checkboxGrid.add(pvt, 2, 1);
|
||||||
|
|
||||||
|
CheckBox hidden = new CheckBox("Hidden");
|
||||||
|
hidden.setSelected(tabs.contains("xh"));
|
||||||
|
hidden.setOnAction(e -> toggleTab("xh", hidden.isSelected()));
|
||||||
|
checkboxGrid.add(hidden, 3, 1);
|
||||||
|
|
||||||
|
CheckBox gaming = new CheckBox("Gaming");
|
||||||
|
gaming.setSelected(tabs.contains("xg"));
|
||||||
|
gaming.setOnAction(e -> toggleTab("xg", gaming.isSelected()));
|
||||||
|
checkboxGrid.add(gaming, 0, 2);
|
||||||
|
|
||||||
|
CheckBox feat = new CheckBox("Featured");
|
||||||
|
feat.setSelected(tabs.contains("ft"));
|
||||||
|
feat.setOnAction(e -> toggleTab("ft", feat.isSelected()));
|
||||||
|
checkboxGrid.add(feat, 1, 2);
|
||||||
|
|
||||||
|
CheckBox top = new CheckBox("Top Rated");
|
||||||
|
top.setSelected(tabs.contains("ar"));
|
||||||
|
top.setOnAction(e -> toggleTab("ar", top.isSelected()));
|
||||||
|
checkboxGrid.add(top, 2, 2);
|
||||||
|
|
||||||
|
CheckBox trend = new CheckBox("Trending");
|
||||||
|
trend.setSelected(tabs.contains("at"));
|
||||||
|
trend.setOnAction(e -> toggleTab("at", trend.isSelected()));
|
||||||
|
checkboxGrid.add(trend, 3, 2);
|
||||||
|
|
||||||
CheckBox asiaOther = new CheckBox("Asia/Oth");
|
CheckBox asiaOther = new CheckBox("Asia/Oth");
|
||||||
asiaOther.setSelected(regions.contains("AS,O"));
|
asiaOther.setSelected(tabs.contains("AS,O"));
|
||||||
asiaOther.setOnAction(e -> toggleRegion("AS,O", asiaOther.isSelected()));
|
asiaOther.setOnAction(e -> toggleTab("AS,O", asiaOther.isSelected()));
|
||||||
HBox.setMargin(asiaOther, new Insets(0, 0, 0, 7));
|
checkboxGrid.add(asiaOther, 0, 3);
|
||||||
checkboxContainer.getChildren().add(asiaOther);
|
|
||||||
|
|
||||||
CheckBox euRu = new CheckBox("Eu/Ru");
|
CheckBox euRu = new CheckBox("Eu/Ru");
|
||||||
euRu.setSelected(regions.contains("ER"));
|
euRu.setSelected(tabs.contains("ER"));
|
||||||
euRu.setOnAction(e -> toggleRegion("ER", euRu.isSelected()));
|
euRu.setOnAction(e -> toggleTab("ER", euRu.isSelected()));
|
||||||
checkboxContainer.getChildren().add(euRu);
|
checkboxGrid.add(euRu, 1, 3);
|
||||||
|
|
||||||
CheckBox nthAm = new CheckBox("Nth Am");
|
CheckBox nthAm = new CheckBox("Nth Am");
|
||||||
nthAm.setSelected(regions.contains("NA"));
|
nthAm.setSelected(tabs.contains("NA"));
|
||||||
nthAm.setOnAction(e -> toggleRegion("NA", nthAm.isSelected()));
|
nthAm.setOnAction(e -> toggleTab("NA", nthAm.isSelected()));
|
||||||
checkboxContainer.getChildren().add(nthAm);
|
checkboxGrid.add(nthAm, 2, 3);
|
||||||
|
|
||||||
CheckBox sthAm = new CheckBox("Sth Am");
|
CheckBox sthAm = new CheckBox("Sth Am");
|
||||||
sthAm.setSelected(regions.contains("SA"));
|
sthAm.setSelected(tabs.contains("SA"));
|
||||||
sthAm.setOnAction(e -> toggleRegion("SA", sthAm.isSelected()));
|
sthAm.setOnAction(e -> toggleTab("SA", sthAm.isSelected()));
|
||||||
checkboxContainer.getChildren().add(sthAm);
|
checkboxGrid.add(sthAm, 3, 3);
|
||||||
|
|
||||||
layout.add(checkboxContainer, 1, row, 4, 1);
|
layout.add(checkboxGrid, 1, row, 4, 4);
|
||||||
row++;
|
row += 4;
|
||||||
|
|
||||||
var createAccount = new Button("Create new Account");
|
var createAccount = new Button("Create new Account");
|
||||||
createAccount.setOnAction(e -> DesktopIntegration.open(Chaturbate.REGISTRATION_LINK));
|
createAccount.setOnAction(e -> DesktopIntegration.open(Chaturbate.REGISTRATION_LINK));
|
||||||
|
@ -155,17 +217,17 @@ public class ChaturbateConfigUi extends AbstractConfigUI {
|
||||||
|
|
||||||
return layout;
|
return layout;
|
||||||
}
|
}
|
||||||
private void toggleRegion(String region, boolean selected) {
|
private void toggleTab(String region, boolean selected) {
|
||||||
var settings = Config.getInstance().getSettings();
|
var settings = Config.getInstance().getSettings();
|
||||||
if (selected) {
|
if (selected) {
|
||||||
settings.chaturbateRegions.add(region);
|
settings.chaturbateTabs.add(region);
|
||||||
} else {
|
} else {
|
||||||
settings.chaturbateRegions.remove(region);
|
settings.chaturbateTabs.remove(region);
|
||||||
}
|
}
|
||||||
save();
|
save();
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<String> getChaturbateRegions() {
|
private List<String> getChaturbateTabs() {
|
||||||
return new ArrayList<>(Config.getInstance().getSettings().chaturbateRegions);
|
return new ArrayList<>(Config.getInstance().getSettings().chaturbateTabs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,9 +9,10 @@ import javafx.scene.Scene;
|
||||||
import javafx.scene.control.Tab;
|
import javafx.scene.control.Tab;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
// import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
// import java.util.Map;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
public class ChaturbateTabProvider extends AbstractTabProvider {
|
public class ChaturbateTabProvider extends AbstractTabProvider {
|
||||||
|
|
||||||
|
@ -27,35 +28,75 @@ public class ChaturbateTabProvider extends AbstractTabProvider {
|
||||||
@Override
|
@Override
|
||||||
protected List<Tab> getSiteTabs(Scene scene) {
|
protected List<Tab> getSiteTabs(Scene scene) {
|
||||||
List<Tab> tabs = new ArrayList<>();
|
List<Tab> tabs = new ArrayList<>();
|
||||||
tabs.add(createTab("Featured", apiUrl + "/roomlist/room-list/?enable_recommendations=false"));
|
|
||||||
tabs.add(createTab("Female", apiUrl + "/roomlist/room-list/?enable_recommendations=false&genders=f"));
|
for (String tab : getChaturbateTabs()) {
|
||||||
tabs.add(createTab("New Female", apiUrl + "/roomlist/room-list/?enable_recommendations=false&genders=f&new_cams=true"));
|
switch (tab) {
|
||||||
tabs.add(createTab("Male", apiUrl + "/roomlist/room-list/?enable_recommendations=false&genders=m"));
|
case "ft":
|
||||||
tabs.add(createTab("New Male", apiUrl + "/roomlist/room-list/?enable_recommendations=false&genders=m&new_cams=true"));
|
tabs.add(createTab("Featured", apiUrl + "/roomlist/room-list/?enable_recommendations=false"));
|
||||||
tabs.add(createTab("Couples", apiUrl + "/roomlist/room-list/?enable_recommendations=false&genders=c"));
|
break;
|
||||||
tabs.add(createTab("Trans", apiUrl + "/roomlist/room-list/?enable_recommendations=false&genders=t"));
|
case "f":
|
||||||
tabs.add(createTab("Private", apiUrl + "/roomlist/room-list/?enable_recommendations=false&private=true"));
|
case "m":
|
||||||
tabs.add(createTab("Hidden", apiUrl + "/roomlist/room-list/?enable_recommendations=false&hidden=true"));
|
case "c":
|
||||||
// tabs.add(createTab("Gaming", apiUrl + "/roomlist/room-list/?enable_recommendations=false&gaming=true"));
|
case "t":
|
||||||
Map<String, String> regionMap = new HashMap<>();
|
tabs.add(createTab("Female", apiUrl + "/roomlist/room-list/?enable_recommendations=false&genders=" + tab));
|
||||||
regionMap.put("AS,O", "Asia/Oth");
|
break;
|
||||||
regionMap.put("ER", "Eu/Ru");
|
case "nf":
|
||||||
regionMap.put("NA", "Nth Amer");
|
addNewCamsTab(tabs, "New Female", "f");
|
||||||
regionMap.put("SA", "Sth Amer");
|
break;
|
||||||
List<String> enabledRegions = getChaturbateRegions();
|
case "nm":
|
||||||
for (String region : enabledRegions) {
|
addNewCamsTab(tabs, "New Male", "m");
|
||||||
String url = apiUrl + "/roomlist/room-list/?regions=" + region;
|
break;
|
||||||
String title = regionMap.getOrDefault(region, region);
|
case "xp":
|
||||||
tabs.add(createTab(title, url));
|
tabs.add(createTab("Private", apiUrl + "/roomlist/room-list/?enable_recommendations=false&private=true"));
|
||||||
|
break;
|
||||||
|
case "xh":
|
||||||
|
tabs.add(createTab("Hidden", apiUrl + "/roomlist/room-list/?enable_recommendations=false&hidden=true"));
|
||||||
|
break;
|
||||||
|
case "xg":
|
||||||
|
tabs.add(createTab("Gaming", apiUrl + "/roomlist/room-list/?enable_recommendations=false&gaming=true"));
|
||||||
|
break;
|
||||||
|
case "ar":
|
||||||
|
tabs.add(createApiTab("Top Rated", apiUrl + "/discover/carousels/top-rated/"));
|
||||||
|
break;
|
||||||
|
case "at":
|
||||||
|
tabs.add(createApiTab("Trending", apiUrl + "/discover/carousels/trending/"));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (Pattern.matches("^[A-Z].+", tab)) {
|
||||||
|
addRegionBasedTab(tabs, tab);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
followedTab.setScene(scene);
|
|
||||||
followedTab.setRecorder(recorder);
|
|
||||||
followedTab.setImageAspectRatio(9.0 / 16.0);
|
|
||||||
tabs.add(followedTab);
|
|
||||||
// tabs.add(createApiTab("Top Rated", apiUrl + "/discover/carousels/top-rated/"));
|
|
||||||
// tabs.add(createApiTab("Trending", apiUrl + "/discover/carousels/trending/"));
|
|
||||||
return tabs;
|
return tabs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void addNewCamsTab(List<Tab> tabs, String title, String gender) {
|
||||||
|
tabs.add(createTab(title, apiUrl + "/roomlist/room-list/?enable_recommendations=false&genders=" + gender + "&new_cams=true"));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addRegionBasedTab(List<Tab> tabs, String regionCode) {
|
||||||
|
String regions = getRegionTitle(regionCode);
|
||||||
|
if (regions != null) {
|
||||||
|
tabs.add(createTab(regions, apiUrl + "/roomlist/room-list/?enable_recommendations=false®ions=" + regionCode));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getRegionTitle(String regionCode) {
|
||||||
|
switch (regionCode) {
|
||||||
|
case "AS,O":
|
||||||
|
return "Asia/Oth";
|
||||||
|
case "ER":
|
||||||
|
return "Eu/Ru";
|
||||||
|
case "NA":
|
||||||
|
return "Nth Amer";
|
||||||
|
case "SA":
|
||||||
|
return "Sth Amer";
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Tab getFollowedTab() {
|
public Tab getFollowedTab() {
|
||||||
|
@ -74,12 +115,12 @@ public class ChaturbateTabProvider extends AbstractTabProvider {
|
||||||
return tab;
|
return tab;
|
||||||
}
|
}
|
||||||
|
|
||||||
// private Tab createApiTab(String title, String apiUrl) {
|
private Tab createApiTab(String title, String apiUrl) {
|
||||||
// var updateService = new ChaturbateApiUpdateService(apiUrl, (Chaturbate) site);
|
var updateService = new ChaturbateApiUpdateService(apiUrl, (Chaturbate) site);
|
||||||
// return createTab(title, updateService);
|
return createTab(title, updateService);
|
||||||
// }
|
}
|
||||||
|
|
||||||
private List<String> getChaturbateRegions() {
|
private List<String> getChaturbateTabs() {
|
||||||
return new ArrayList<>(Config.getInstance().getSettings().chaturbateRegions);
|
return new ArrayList<>(Config.getInstance().getSettings().chaturbateTabs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package ctbrec.ui.sites.chaturbate;
|
package ctbrec.ui.sites.chaturbate;
|
||||||
|
|
||||||
import ctbrec.Config;
|
// import ctbrec.Config;
|
||||||
import ctbrec.Model;
|
import ctbrec.Model;
|
||||||
import ctbrec.sites.chaturbate.Chaturbate;
|
import ctbrec.sites.chaturbate.Chaturbate;
|
||||||
import ctbrec.sites.chaturbate.ChaturbateModel;
|
import ctbrec.sites.chaturbate.ChaturbateModel;
|
||||||
|
|
|
@ -63,17 +63,17 @@ public class DreamcamConfigUI extends AbstractConfigUI {
|
||||||
|
|
||||||
HBox checkboxContainer = new HBox(10);
|
HBox checkboxContainer = new HBox(10);
|
||||||
|
|
||||||
CheckBox male = new CheckBox("Boys");
|
|
||||||
male.setSelected(tabs.contains("men"));
|
|
||||||
male.setOnAction(e -> toggleTab("men", male.isSelected()));
|
|
||||||
HBox.setMargin(male, new Insets(0, 0, 0, 7));
|
|
||||||
checkboxContainer.getChildren().add(male);
|
|
||||||
|
|
||||||
CheckBox female = new CheckBox("Girls");
|
CheckBox female = new CheckBox("Girls");
|
||||||
female.setSelected(tabs.contains("girls"));
|
female.setSelected(tabs.contains("girls"));
|
||||||
female.setOnAction(e -> toggleTab("girls", female.isSelected()));
|
female.setOnAction(e -> toggleTab("girls", female.isSelected()));
|
||||||
|
HBox.setMargin(female, new Insets(0, 0, 0, 7));
|
||||||
checkboxContainer.getChildren().add(female);
|
checkboxContainer.getChildren().add(female);
|
||||||
|
|
||||||
|
CheckBox male = new CheckBox("Boys");
|
||||||
|
male.setSelected(tabs.contains("men"));
|
||||||
|
male.setOnAction(e -> toggleTab("men", male.isSelected()));
|
||||||
|
checkboxContainer.getChildren().add(male);
|
||||||
|
|
||||||
CheckBox couples = new CheckBox("Couples");
|
CheckBox couples = new CheckBox("Couples");
|
||||||
couples.setSelected(tabs.contains("couples"));
|
couples.setSelected(tabs.contains("couples"));
|
||||||
couples.setOnAction(e -> toggleTab("couples", couples.isSelected()));
|
couples.setOnAction(e -> toggleTab("couples", couples.isSelected()));
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
package ctbrec.ui.sites.showup;
|
package ctbrec.ui.sites.showup;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import ctbrec.Config;
|
import ctbrec.Config;
|
||||||
import ctbrec.sites.showup.Showup;
|
import ctbrec.sites.showup.Showup;
|
||||||
import ctbrec.ui.DesktopIntegration;
|
import ctbrec.ui.DesktopIntegration;
|
||||||
|
@ -13,6 +16,7 @@ import javafx.scene.control.Label;
|
||||||
import javafx.scene.control.PasswordField;
|
import javafx.scene.control.PasswordField;
|
||||||
import javafx.scene.control.TextField;
|
import javafx.scene.control.TextField;
|
||||||
import javafx.scene.layout.GridPane;
|
import javafx.scene.layout.GridPane;
|
||||||
|
import javafx.scene.layout.HBox;
|
||||||
import javafx.scene.layout.Priority;
|
import javafx.scene.layout.Priority;
|
||||||
|
|
||||||
public class ShowupConfigUI extends AbstractConfigUI {
|
public class ShowupConfigUI extends AbstractConfigUI {
|
||||||
|
@ -72,6 +76,31 @@ public class ShowupConfigUI extends AbstractConfigUI {
|
||||||
GridPane.setColumnSpan(password, 2);
|
GridPane.setColumnSpan(password, 2);
|
||||||
layout.add(password, 1, row++);
|
layout.add(password, 1, row++);
|
||||||
|
|
||||||
|
Label tabsLabel = new Label("Tabs");
|
||||||
|
layout.add(tabsLabel, 0, row);
|
||||||
|
List<String> tabs = getShowupTabs();
|
||||||
|
|
||||||
|
HBox checkboxContainer = new HBox(10);
|
||||||
|
|
||||||
|
CheckBox female = new CheckBox("Female");
|
||||||
|
female.setSelected(tabs.contains("female"));
|
||||||
|
female.setOnAction(e -> toggleTab("female", female.isSelected()));
|
||||||
|
HBox.setMargin(female, new Insets(0, 0, 0, 8));
|
||||||
|
checkboxContainer.getChildren().add(female);
|
||||||
|
|
||||||
|
CheckBox male = new CheckBox("Male");
|
||||||
|
male.setSelected(tabs.contains("m"));
|
||||||
|
male.setOnAction(e -> toggleTab("m", male.isSelected()));
|
||||||
|
checkboxContainer.getChildren().add(male);
|
||||||
|
|
||||||
|
CheckBox all = new CheckBox("All");
|
||||||
|
all.setSelected(tabs.contains("all"));
|
||||||
|
all.setOnAction(e -> toggleTab("all", all.isSelected()));
|
||||||
|
checkboxContainer.getChildren().add(all);
|
||||||
|
|
||||||
|
layout.add(checkboxContainer, 1, row, 3, 1);
|
||||||
|
row++;
|
||||||
|
|
||||||
var createAccount = new Button("Create new Account");
|
var createAccount = new Button("Create new Account");
|
||||||
createAccount.setOnAction(e -> DesktopIntegration.open(site.getAffiliateLink()));
|
createAccount.setOnAction(e -> DesktopIntegration.open(site.getAffiliateLink()));
|
||||||
layout.add(createAccount, 1, row++);
|
layout.add(createAccount, 1, row++);
|
||||||
|
@ -89,4 +118,18 @@ public class ShowupConfigUI extends AbstractConfigUI {
|
||||||
return layout;
|
return layout;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void toggleTab(String tab, boolean selected) {
|
||||||
|
var settings = Config.getInstance().getSettings();
|
||||||
|
if (selected) {
|
||||||
|
settings.showupTabs.add(tab);
|
||||||
|
} else {
|
||||||
|
settings.showupTabs.remove(tab);
|
||||||
|
}
|
||||||
|
save();
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<String> getShowupTabs() {
|
||||||
|
return new ArrayList<>(Config.getInstance().getSettings().showupTabs);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package ctbrec.ui.sites.showup;
|
package ctbrec.ui.sites.showup;
|
||||||
|
|
||||||
|
import ctbrec.Config;
|
||||||
import ctbrec.sites.showup.Showup;
|
import ctbrec.sites.showup.Showup;
|
||||||
import ctbrec.ui.sites.AbstractTabProvider;
|
import ctbrec.ui.sites.AbstractTabProvider;
|
||||||
import ctbrec.ui.tabs.ThumbOverviewTab;
|
import ctbrec.ui.tabs.ThumbOverviewTab;
|
||||||
|
@ -7,7 +8,10 @@ import javafx.scene.Scene;
|
||||||
import javafx.scene.control.Tab;
|
import javafx.scene.control.Tab;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
// import java.util.Objects;
|
||||||
|
|
||||||
public class ShowupTabProvider extends AbstractTabProvider {
|
public class ShowupTabProvider extends AbstractTabProvider {
|
||||||
|
|
||||||
|
@ -18,9 +22,17 @@ public class ShowupTabProvider extends AbstractTabProvider {
|
||||||
@Override
|
@Override
|
||||||
protected List<Tab> getSiteTabs(Scene scene) {
|
protected List<Tab> getSiteTabs(Scene scene) {
|
||||||
List<Tab> tabs = new ArrayList<>();
|
List<Tab> tabs = new ArrayList<>();
|
||||||
tabs.add(createTab("Women", "female"));
|
|
||||||
tabs.add(createTab("Men", "male"));
|
Map<String, String> tabMap = new HashMap<>();
|
||||||
tabs.add(createTab("All", "all"));
|
tabMap.put("female", "Women");
|
||||||
|
tabMap.put("male", "Men");
|
||||||
|
tabMap.put("all", "All");
|
||||||
|
List<String> enabledTabs = getShowupTabs();
|
||||||
|
for (String tab : enabledTabs) {
|
||||||
|
String title = tabMap.getOrDefault(tab, tab);
|
||||||
|
tabs.add(createTab(title, tab));
|
||||||
|
}
|
||||||
|
|
||||||
var showupFollowedTab = new ShowupFollowedTab("Favorites", (Showup) site);
|
var showupFollowedTab = new ShowupFollowedTab("Favorites", (Showup) site);
|
||||||
showupFollowedTab.setRecorder(site.getRecorder());
|
showupFollowedTab.setRecorder(site.getRecorder());
|
||||||
tabs.add(showupFollowedTab);
|
tabs.add(showupFollowedTab);
|
||||||
|
@ -38,4 +50,8 @@ public class ShowupTabProvider extends AbstractTabProvider {
|
||||||
tab.setRecorder(site.getRecorder());
|
tab.setRecorder(site.getRecorder());
|
||||||
return tab;
|
return tab;
|
||||||
}
|
}
|
||||||
|
private List<String> getShowupTabs() {
|
||||||
|
return new ArrayList<>(Config.getInstance().getSettings().showupTabs);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
package ctbrec.ui.sites.streamate;
|
package ctbrec.ui.sites.streamate;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import ctbrec.Config;
|
import ctbrec.Config;
|
||||||
import ctbrec.sites.streamate.Streamate;
|
import ctbrec.sites.streamate.Streamate;
|
||||||
import ctbrec.ui.DesktopIntegration;
|
import ctbrec.ui.DesktopIntegration;
|
||||||
|
@ -13,6 +16,7 @@ import javafx.scene.control.Label;
|
||||||
import javafx.scene.control.PasswordField;
|
import javafx.scene.control.PasswordField;
|
||||||
import javafx.scene.control.TextField;
|
import javafx.scene.control.TextField;
|
||||||
import javafx.scene.layout.GridPane;
|
import javafx.scene.layout.GridPane;
|
||||||
|
// import javafx.scene.layout.HBox;
|
||||||
import javafx.scene.layout.Priority;
|
import javafx.scene.layout.Priority;
|
||||||
|
|
||||||
public class StreamateConfigUI extends AbstractConfigUI {
|
public class StreamateConfigUI extends AbstractConfigUI {
|
||||||
|
@ -72,6 +76,48 @@ public class StreamateConfigUI extends AbstractConfigUI {
|
||||||
GridPane.setColumnSpan(password, 2);
|
GridPane.setColumnSpan(password, 2);
|
||||||
layout.add(password, 1, row++);
|
layout.add(password, 1, row++);
|
||||||
|
|
||||||
|
Label tabsLabel = new Label("Tabs");
|
||||||
|
layout.add(tabsLabel, 0, row);
|
||||||
|
List<String> tabs = getStreamateTabs();
|
||||||
|
|
||||||
|
GridPane checkboxGrid = new GridPane();
|
||||||
|
checkboxGrid.setHgap(10);
|
||||||
|
checkboxGrid.setVgap(5);
|
||||||
|
checkboxGrid.setPadding(new Insets(0, 0, 0, 7));
|
||||||
|
|
||||||
|
CheckBox female = new CheckBox("Girls");
|
||||||
|
female.setSelected(tabs.contains("f,ff"));
|
||||||
|
female.setOnAction(e -> toggleTab("f,ff", female.isSelected()));
|
||||||
|
checkboxGrid.add(female, 0, 0);
|
||||||
|
|
||||||
|
CheckBox male = new CheckBox("Guys");
|
||||||
|
male.setSelected(tabs.contains("m"));
|
||||||
|
male.setOnAction(e -> toggleTab("m", male.isSelected()));
|
||||||
|
checkboxGrid.add(male, 1, 0);
|
||||||
|
|
||||||
|
CheckBox couples = new CheckBox("Couples");
|
||||||
|
couples.setSelected(tabs.contains("mf,mm"));
|
||||||
|
couples.setOnAction(e -> toggleTab("mf,mm", couples.isSelected()));
|
||||||
|
checkboxGrid.add(couples, 2, 0);
|
||||||
|
|
||||||
|
CheckBox trans = new CheckBox("Trans");
|
||||||
|
trans.setSelected(tabs.contains("tm2f,tf2m"));
|
||||||
|
trans.setOnAction(e -> toggleTab("tm2f,tf2m", trans.isSelected()));
|
||||||
|
checkboxGrid.add(trans, 0, 1);
|
||||||
|
|
||||||
|
CheckBox newGirls = new CheckBox("Girls New");
|
||||||
|
newGirls.setSelected(tabs.contains("fn"));
|
||||||
|
newGirls.setOnAction(e -> toggleTab("fn", newGirls.isSelected()));
|
||||||
|
checkboxGrid.add(newGirls, 1, 1);
|
||||||
|
|
||||||
|
CheckBox newModels = new CheckBox("New");
|
||||||
|
newModels.setSelected(tabs.contains("new"));
|
||||||
|
newModels.setOnAction(e -> toggleTab("new", newModels.isSelected()));
|
||||||
|
checkboxGrid.add(newModels, 2, 1);
|
||||||
|
|
||||||
|
layout.add(checkboxGrid, 1, row, 3, 2);
|
||||||
|
row += 2;
|
||||||
|
|
||||||
var createAccount = new Button("Create new Account");
|
var createAccount = new Button("Create new Account");
|
||||||
createAccount.setOnAction(e -> DesktopIntegration.open(streamate.getAffiliateLink()));
|
createAccount.setOnAction(e -> DesktopIntegration.open(streamate.getAffiliateLink()));
|
||||||
layout.add(createAccount, 1, row++);
|
layout.add(createAccount, 1, row++);
|
||||||
|
@ -89,4 +135,18 @@ public class StreamateConfigUI extends AbstractConfigUI {
|
||||||
return layout;
|
return layout;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void toggleTab(String tab, boolean selected) {
|
||||||
|
var settings = Config.getInstance().getSettings();
|
||||||
|
if (selected) {
|
||||||
|
settings.streamateTabs.add(tab);
|
||||||
|
} else {
|
||||||
|
settings.streamateTabs.remove(tab);
|
||||||
|
}
|
||||||
|
save();
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<String> getStreamateTabs() {
|
||||||
|
return new ArrayList<>(Config.getInstance().getSettings().streamateTabs);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package ctbrec.ui.sites.streamate;
|
package ctbrec.ui.sites.streamate;
|
||||||
|
|
||||||
|
import ctbrec.Config;
|
||||||
import ctbrec.sites.streamate.Streamate;
|
import ctbrec.sites.streamate.Streamate;
|
||||||
import ctbrec.ui.sites.AbstractTabProvider;
|
import ctbrec.ui.sites.AbstractTabProvider;
|
||||||
import ctbrec.ui.tabs.ThumbOverviewTab;
|
import ctbrec.ui.tabs.ThumbOverviewTab;
|
||||||
|
@ -7,7 +8,9 @@ import javafx.scene.Scene;
|
||||||
import javafx.scene.control.Tab;
|
import javafx.scene.control.Tab;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public class StreamateTabProvider extends AbstractTabProvider {
|
public class StreamateTabProvider extends AbstractTabProvider {
|
||||||
private ThumbOverviewTab followedTab;
|
private ThumbOverviewTab followedTab;
|
||||||
|
@ -19,12 +22,35 @@ public class StreamateTabProvider extends AbstractTabProvider {
|
||||||
@Override
|
@Override
|
||||||
protected List<Tab> getSiteTabs(Scene scene) {
|
protected List<Tab> getSiteTabs(Scene scene) {
|
||||||
List<Tab> tabs = new ArrayList<>();
|
List<Tab> tabs = new ArrayList<>();
|
||||||
tabs.add(createTab("Girls", Streamate.NAIAD_URL + "/performers?domain=streamate.com&loggedInRec=1&boostedFilters=&country=US&language=en&index=default&filters=gender:f,ff%3Bonline:true"));
|
|
||||||
tabs.add(createTab("Girls New", Streamate.NAIAD_URL + "/performers?domain=streamate.com&loggedInRec=1&boostedFilters=&country=US&language=en&index=default&filters=gender:f,ff%3Bnew:true%3Bonline:true"));
|
|
||||||
tabs.add(createTab("Guys", Streamate.NAIAD_URL + "/performers?domain=streamate.com&loggedInRec=1&boostedFilters=&country=US&language=en&index=default&filters=gender:m%3Bonline:true"));
|
Map<String, String> tabMap = new HashMap<>();
|
||||||
tabs.add(createTab("Couples", Streamate.NAIAD_URL + "/performers?domain=streamate.com&loggedInRec=1&boostedFilters=&country=US&language=en&index=default&filters=gender:mf,mm,g%3Bonline:true"));
|
tabMap.put("f,ff", "Girls");
|
||||||
tabs.add(createTab("Trans", Streamate.NAIAD_URL + "/performers?domain=streamate.com&loggedInRec=1&boostedFilters=&country=US&language=en&index=default&filters=gender:tm2f,tf2m%3Bonline:true"));
|
tabMap.put("m", "Guys");
|
||||||
tabs.add(createTab("New", Streamate.NAIAD_URL + "/performers?domain=streamate.com&loggedInRec=1&boostedFilters=&country=US&language=en&index=default&filters=new:true%3Bonline:true"));
|
tabMap.put("mf,mm", "Couples");
|
||||||
|
tabMap.put("tm2f,tf2m", "Trans");
|
||||||
|
tabMap.put("fn", "Girls New");
|
||||||
|
tabMap.put("new", "New");
|
||||||
|
List<String> enabledTabs = getStreamateTabs();
|
||||||
|
for (String tab : enabledTabs) {
|
||||||
|
String title = tabMap.getOrDefault(tab, tab);
|
||||||
|
switch (tab) {
|
||||||
|
case "f,ff":
|
||||||
|
case "m":
|
||||||
|
case "mf,mm":
|
||||||
|
case "tm2f,tf2m":
|
||||||
|
tabs.add(createTab(title, Streamate.NAIAD_URL + "/performers?domain=streamate.com&loggedInRec=1&boostedFilters=&country=US&language=en&index=default&filters=gender:" + tab + "%3Bonline:true"));
|
||||||
|
break;
|
||||||
|
case "fn":
|
||||||
|
tabs.add(createTab("Girls New", Streamate.NAIAD_URL + "/performers?domain=streamate.com&loggedInRec=1&boostedFilters=&country=US&language=en&index=default&filters=gender:f,ff%3Bonline:true%3Bnew:true"));
|
||||||
|
break;
|
||||||
|
case "new":
|
||||||
|
tabs.add(createTab("New", Streamate.NAIAD_URL + "/performers?domain=streamate.com&loggedInRec=1&boostedFilters=&country=US&language=en&index=default&filters=new:true%3Bonline:true"));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
followedTab = new StreamateFollowedTab((Streamate) site);
|
followedTab = new StreamateFollowedTab((Streamate) site);
|
||||||
followedTab.setRecorder(recorder);
|
followedTab.setRecorder(recorder);
|
||||||
|
@ -44,4 +70,9 @@ public class StreamateTabProvider extends AbstractTabProvider {
|
||||||
tab.setRecorder(recorder);
|
tab.setRecorder(recorder);
|
||||||
return tab;
|
return tab;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<String> getStreamateTabs() {
|
||||||
|
return new ArrayList<>(Config.getInstance().getSettings().streamateTabs);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +1,21 @@
|
||||||
package ctbrec.ui.sites.streamray;
|
package ctbrec.ui.sites.streamray;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import ctbrec.Config;
|
import ctbrec.Config;
|
||||||
import ctbrec.sites.streamray.Streamray;
|
import ctbrec.sites.streamray.Streamray;
|
||||||
import ctbrec.ui.settings.SettingsTab;
|
import ctbrec.ui.settings.SettingsTab;
|
||||||
import ctbrec.ui.sites.AbstractConfigUI;
|
import ctbrec.ui.sites.AbstractConfigUI;
|
||||||
import javafx.geometry.Insets;
|
import javafx.geometry.Insets;
|
||||||
import javafx.scene.Parent;
|
import javafx.scene.Parent;
|
||||||
import javafx.scene.control.ToggleGroup;
|
// import javafx.scene.control.ToggleGroup;
|
||||||
import javafx.scene.control.Button;
|
import javafx.scene.control.Button;
|
||||||
import javafx.scene.control.CheckBox;
|
import javafx.scene.control.CheckBox;
|
||||||
import javafx.scene.control.RadioButton;
|
// import javafx.scene.control.RadioButton;
|
||||||
import javafx.scene.control.Label;
|
import javafx.scene.control.Label;
|
||||||
import javafx.scene.layout.GridPane;
|
import javafx.scene.layout.GridPane;
|
||||||
|
// import javafx.scene.layout.HBox;
|
||||||
import javafx.scene.layout.HBox;
|
import javafx.scene.layout.HBox;
|
||||||
|
|
||||||
public class StreamrayConfigUI extends AbstractConfigUI {
|
public class StreamrayConfigUI extends AbstractConfigUI {
|
||||||
|
@ -55,6 +59,31 @@ public class StreamrayConfigUI extends AbstractConfigUI {
|
||||||
layout.add(cb, 1, row++);
|
layout.add(cb, 1, row++);
|
||||||
row++;
|
row++;
|
||||||
|
|
||||||
|
Label tabsLabel = new Label("Tabs");
|
||||||
|
layout.add(tabsLabel, 0, row);
|
||||||
|
List<String> tabs = getStreamrayTabs();
|
||||||
|
|
||||||
|
HBox checkboxContainer = new HBox(10);
|
||||||
|
|
||||||
|
CheckBox female = new CheckBox("Female");
|
||||||
|
female.setSelected(tabs.contains("F"));
|
||||||
|
female.setOnAction(e -> toggleTab("F", female.isSelected()));
|
||||||
|
HBox.setMargin(female, new Insets(0, 0, 0, 7));
|
||||||
|
checkboxContainer.getChildren().add(female);
|
||||||
|
|
||||||
|
CheckBox male = new CheckBox("Male");
|
||||||
|
male.setSelected(tabs.contains("M"));
|
||||||
|
male.setOnAction(e -> toggleTab("M", male.isSelected()));
|
||||||
|
checkboxContainer.getChildren().add(male);
|
||||||
|
|
||||||
|
CheckBox all = new CheckBox("Trans");
|
||||||
|
all.setSelected(tabs.contains("TS"));
|
||||||
|
all.setOnAction(e -> toggleTab("TS", all.isSelected()));
|
||||||
|
checkboxContainer.getChildren().add(all);
|
||||||
|
|
||||||
|
layout.add(checkboxContainer, 1, row, 4, 1);
|
||||||
|
row++;
|
||||||
|
|
||||||
var deleteCookies = new Button("Delete Cookies");
|
var deleteCookies = new Button("Delete Cookies");
|
||||||
deleteCookies.setOnAction(e -> site.getHttpClient().clearCookies());
|
deleteCookies.setOnAction(e -> site.getHttpClient().clearCookies());
|
||||||
layout.add(deleteCookies, 1, row);
|
layout.add(deleteCookies, 1, row);
|
||||||
|
@ -64,4 +93,18 @@ public class StreamrayConfigUI extends AbstractConfigUI {
|
||||||
return layout;
|
return layout;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void toggleTab(String tab, boolean selected) {
|
||||||
|
var settings = Config.getInstance().getSettings();
|
||||||
|
if (selected) {
|
||||||
|
settings.streamrayTabs.add(tab);
|
||||||
|
} else {
|
||||||
|
settings.streamrayTabs.remove(tab);
|
||||||
|
}
|
||||||
|
save();
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<String> getStreamrayTabs() {
|
||||||
|
return new ArrayList<>(Config.getInstance().getSettings().streamrayTabs);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package ctbrec.ui.sites.streamray;
|
package ctbrec.ui.sites.streamray;
|
||||||
|
|
||||||
|
import ctbrec.Config;
|
||||||
import ctbrec.sites.streamray.Streamray;
|
import ctbrec.sites.streamray.Streamray;
|
||||||
import ctbrec.sites.streamray.StreamrayModel;
|
import ctbrec.sites.streamray.StreamrayModel;
|
||||||
import ctbrec.ui.sites.AbstractTabProvider;
|
import ctbrec.ui.sites.AbstractTabProvider;
|
||||||
|
@ -8,7 +9,9 @@ import javafx.scene.Scene;
|
||||||
import javafx.scene.control.Tab;
|
import javafx.scene.control.Tab;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
|
|
||||||
|
@ -24,9 +27,20 @@ public class StreamrayTabProvider extends AbstractTabProvider {
|
||||||
@Override
|
@Override
|
||||||
protected List<Tab> getSiteTabs(Scene scene) {
|
protected List<Tab> getSiteTabs(Scene scene) {
|
||||||
List<Tab> tabs = new ArrayList<>();
|
List<Tab> tabs = new ArrayList<>();
|
||||||
tabs.add(createTab("Girls", m -> Objects.equals("F", m.getGender())));
|
|
||||||
tabs.add(createTab("Boys", m -> Objects.equals("M", m.getGender())));
|
Map<String, String> tabMap = new HashMap<>();
|
||||||
tabs.add(createTab("Trans", m -> Objects.equals("TS", m.getGender())));
|
tabMap.put("F", "Female");
|
||||||
|
tabMap.put("M", "Male");
|
||||||
|
tabMap.put("TS", "Trans");
|
||||||
|
List<String> enabledTabs = getStreamrayTabs();
|
||||||
|
for (String tab : enabledTabs) {
|
||||||
|
String title = tabMap.getOrDefault(tab, tab);
|
||||||
|
tabs.add(createTab(title, m -> Objects.equals(tab, m.getGender())));
|
||||||
|
}
|
||||||
|
|
||||||
|
// tabs.add(createTab("Girls", m -> Objects.equals("F", m.getGender())));
|
||||||
|
// tabs.add(createTab("Boys", m -> Objects.equals("M", m.getGender())));
|
||||||
|
// tabs.add(createTab("Trans", m -> Objects.equals("TS", m.getGender())));
|
||||||
tabs.add(createTab("New", StreamrayModel::isNew));
|
tabs.add(createTab("New", StreamrayModel::isNew));
|
||||||
tabs.add(followedTab);
|
tabs.add(followedTab);
|
||||||
return tabs;
|
return tabs;
|
||||||
|
@ -52,4 +66,8 @@ public class StreamrayTabProvider extends AbstractTabProvider {
|
||||||
public Tab getFollowedTab() {
|
public Tab getFollowedTab() {
|
||||||
return followedTab;
|
return followedTab;
|
||||||
}
|
}
|
||||||
|
private List<String> getStreamrayTabs() {
|
||||||
|
return new ArrayList<>(Config.getInstance().getSettings().streamrayTabs);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
package ctbrec.ui.sites.stripchat;
|
package ctbrec.ui.sites.stripchat;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import ctbrec.Config;
|
import ctbrec.Config;
|
||||||
import ctbrec.sites.stripchat.Stripchat;
|
import ctbrec.sites.stripchat.Stripchat;
|
||||||
import ctbrec.ui.DesktopIntegration;
|
import ctbrec.ui.DesktopIntegration;
|
||||||
|
@ -113,6 +116,58 @@ public class StripchatConfigUI extends AbstractConfigUI {
|
||||||
GridPane.setColumnSpan(password, 2);
|
GridPane.setColumnSpan(password, 2);
|
||||||
layout.add(password, 1, row++);
|
layout.add(password, 1, row++);
|
||||||
|
|
||||||
|
Label tabsLabel = new Label("Tabs");
|
||||||
|
layout.add(tabsLabel, 0, row);
|
||||||
|
List<String> tabs = getStripchatTabs();
|
||||||
|
|
||||||
|
GridPane checkboxGrid = new GridPane();
|
||||||
|
checkboxGrid.setHgap(10);
|
||||||
|
checkboxGrid.setVgap(5);
|
||||||
|
checkboxGrid.setPadding(new Insets(0, 0, 0, 7));
|
||||||
|
|
||||||
|
CheckBox girls = new CheckBox("Girls");
|
||||||
|
girls.setSelected(tabs.contains("girls"));
|
||||||
|
girls.setOnAction(e -> toggleTab("girls", girls.isSelected()));
|
||||||
|
checkboxGrid.add(girls, 0, 0);
|
||||||
|
|
||||||
|
CheckBox girlsNew = new CheckBox("Girls New");
|
||||||
|
girlsNew.setSelected(tabs.contains("autoTagNew"));
|
||||||
|
girlsNew.setOnAction(e -> toggleTab("autoTagNew", girlsNew.isSelected()));
|
||||||
|
checkboxGrid.add(girlsNew, 1, 0);
|
||||||
|
|
||||||
|
CheckBox girlsHD = new CheckBox("Girls HD");
|
||||||
|
girlsHD.setSelected(tabs.contains("autoTagHd"));
|
||||||
|
girlsHD.setOnAction(e -> toggleTab("autoTagHd", girlsHD.isSelected()));
|
||||||
|
checkboxGrid.add(girlsHD, 2, 0);
|
||||||
|
|
||||||
|
CheckBox mobile = new CheckBox("Mobile");
|
||||||
|
mobile.setSelected(tabs.contains("mobile"));
|
||||||
|
mobile.setOnAction(e -> toggleTab("mobile", mobile.isSelected()));
|
||||||
|
checkboxGrid.add(mobile, 3, 0);
|
||||||
|
|
||||||
|
CheckBox pvt = new CheckBox("Private");
|
||||||
|
pvt.setSelected(tabs.contains("autoTagSpy"));
|
||||||
|
pvt.setOnAction(e -> toggleTab("autoTagSpy", pvt.isSelected()));
|
||||||
|
checkboxGrid.add(pvt, 0, 1);
|
||||||
|
|
||||||
|
CheckBox couples = new CheckBox("Couples");
|
||||||
|
couples.setSelected(tabs.contains("couples"));
|
||||||
|
couples.setOnAction(e -> toggleTab("couples", couples.isSelected()));
|
||||||
|
checkboxGrid.add(couples, 1, 1);
|
||||||
|
|
||||||
|
CheckBox boys = new CheckBox("Boys");
|
||||||
|
boys.setSelected(tabs.contains("men"));
|
||||||
|
boys.setOnAction(e -> toggleTab("men", boys.isSelected()));
|
||||||
|
checkboxGrid.add(boys, 2, 1);
|
||||||
|
|
||||||
|
CheckBox trans = new CheckBox("Trans");
|
||||||
|
trans.setSelected(tabs.contains("trans"));
|
||||||
|
trans.setOnAction(e -> toggleTab("trans", trans.isSelected()));
|
||||||
|
checkboxGrid.add(trans, 3, 1);
|
||||||
|
|
||||||
|
layout.add(checkboxGrid, 1, row, 4, 2);
|
||||||
|
row += 2;
|
||||||
|
|
||||||
var createAccount = new Button("Create new Account");
|
var createAccount = new Button("Create new Account");
|
||||||
createAccount.setOnAction(e -> DesktopIntegration.open(stripchat.getAffiliateLink()));
|
createAccount.setOnAction(e -> DesktopIntegration.open(stripchat.getAffiliateLink()));
|
||||||
layout.add(createAccount, 1, row++);
|
layout.add(createAccount, 1, row++);
|
||||||
|
@ -142,4 +197,18 @@ public class StripchatConfigUI extends AbstractConfigUI {
|
||||||
return layout;
|
return layout;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void toggleTab(String tab, boolean selected) {
|
||||||
|
var settings = Config.getInstance().getSettings();
|
||||||
|
if (selected) {
|
||||||
|
settings.stripchatTabs.add(tab);
|
||||||
|
} else {
|
||||||
|
settings.stripchatTabs.remove(tab);
|
||||||
|
}
|
||||||
|
save();
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<String> getStripchatTabs() {
|
||||||
|
return new ArrayList<>(Config.getInstance().getSettings().stripchatTabs);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package ctbrec.ui.sites.stripchat;
|
package ctbrec.ui.sites.stripchat;
|
||||||
|
|
||||||
|
import ctbrec.Config;
|
||||||
import ctbrec.sites.stripchat.Stripchat;
|
import ctbrec.sites.stripchat.Stripchat;
|
||||||
import ctbrec.ui.sites.AbstractTabProvider;
|
import ctbrec.ui.sites.AbstractTabProvider;
|
||||||
import ctbrec.ui.tabs.ThumbOverviewTab;
|
import ctbrec.ui.tabs.ThumbOverviewTab;
|
||||||
|
@ -8,7 +9,10 @@ import javafx.scene.control.Tab;
|
||||||
|
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
// import java.util.Objects;
|
||||||
|
|
||||||
public class StripchatTabProvider extends AbstractTabProvider {
|
public class StripchatTabProvider extends AbstractTabProvider {
|
||||||
|
|
||||||
|
@ -26,15 +30,29 @@ public class StripchatTabProvider extends AbstractTabProvider {
|
||||||
@Override
|
@Override
|
||||||
protected List<Tab> getSiteTabs(Scene scene) {
|
protected List<Tab> getSiteTabs(Scene scene) {
|
||||||
List<Tab> tabs = new ArrayList<>();
|
List<Tab> tabs = new ArrayList<>();
|
||||||
tabs.add(createTab("Girls", MessageFormat.format(urlTemplate, "girls")));
|
|
||||||
tabs.add(createTab("Girls New", MessageFormat.format(urlFilterTemplate, "autoTagNew")));
|
Map<String, String> tabMap = new HashMap<>();
|
||||||
tabs.add(createTab("Girls HD", MessageFormat.format(urlFilterTemplate, "autoTagHd")));
|
tabMap.put("girls", "Girls");
|
||||||
|
tabMap.put("autoTagNew", "Girls New");
|
||||||
|
tabMap.put("autoTagHd", "Girls HD");
|
||||||
|
// tabMap.put("autoTagVr", "Girls VR");
|
||||||
|
tabMap.put("mobile", "Mobile");
|
||||||
|
tabMap.put("autoTagSpy", "Private");
|
||||||
|
tabMap.put("couples", "Couples");
|
||||||
|
tabMap.put("men", "Boys");
|
||||||
|
tabMap.put("trans", "Trans");
|
||||||
|
List<String> enabledTabs = getStripchatTabs();
|
||||||
|
for (String tab : enabledTabs) {
|
||||||
|
String title = tabMap.getOrDefault(tab, tab);
|
||||||
|
if (tab.contains("auto")) {
|
||||||
|
tabs.add(createTab(title, MessageFormat.format(urlFilterTemplate, tab)));
|
||||||
|
} else {
|
||||||
|
tabs.add(createTab(title, MessageFormat.format(urlTemplate, tab)));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
tabs.add(createTab("Girls VR", MessageFormat.format(urlFilterTemplate, "autoTagVr")));
|
tabs.add(createTab("Girls VR", MessageFormat.format(urlFilterTemplate, "autoTagVr")));
|
||||||
tabs.add(createTab("Mobile", MessageFormat.format(urlFilterTemplate, "mobile")));
|
|
||||||
tabs.add(createTab("Private", MessageFormat.format(urlFilterTemplate, "autoTagSpy")));
|
|
||||||
tabs.add(createTab("Couples", MessageFormat.format(urlTemplate, "couples")));
|
|
||||||
tabs.add(createTab("Boys", MessageFormat.format(urlTemplate, "men")));
|
|
||||||
tabs.add(createTab("Trans", MessageFormat.format(urlTemplate, "trans")));
|
|
||||||
followedTab.setRecorder(recorder);
|
followedTab.setRecorder(recorder);
|
||||||
followedTab.setScene(scene);
|
followedTab.setScene(scene);
|
||||||
followedTab.setImageAspectRatio(9.0 / 16.0);
|
followedTab.setImageAspectRatio(9.0 / 16.0);
|
||||||
|
@ -55,4 +73,8 @@ public class StripchatTabProvider extends AbstractTabProvider {
|
||||||
return tab;
|
return tab;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<String> getStripchatTabs() {
|
||||||
|
return new ArrayList<>(Config.getInstance().getSettings().stripchatTabs);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
package ctbrec.ui.sites.xlovecam;
|
package ctbrec.ui.sites.xlovecam;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import ctbrec.Config;
|
import ctbrec.Config;
|
||||||
import ctbrec.sites.xlovecam.XloveCam;
|
import ctbrec.sites.xlovecam.XloveCam;
|
||||||
import ctbrec.ui.DesktopIntegration;
|
import ctbrec.ui.DesktopIntegration;
|
||||||
|
@ -72,6 +75,53 @@ public class XloveCamConfigUI extends AbstractConfigUI {
|
||||||
GridPane.setColumnSpan(password, 2);
|
GridPane.setColumnSpan(password, 2);
|
||||||
layout.add(password, 1, row++);
|
layout.add(password, 1, row++);
|
||||||
|
|
||||||
|
Label tabsLabel = new Label("Tabs");
|
||||||
|
layout.add(tabsLabel, 0, row);
|
||||||
|
List<String> tabs = getXlovecamTabs();
|
||||||
|
|
||||||
|
GridPane checkboxGrid = new GridPane();
|
||||||
|
checkboxGrid.setHgap(10);
|
||||||
|
checkboxGrid.setVgap(5);
|
||||||
|
checkboxGrid.setPadding(new Insets(0, 0, 0, 7));
|
||||||
|
|
||||||
|
CheckBox girls = new CheckBox("Young Women");
|
||||||
|
girls.setSelected(tabs.contains("1"));
|
||||||
|
girls.setOnAction(e -> toggleTab("1", girls.isSelected()));
|
||||||
|
checkboxGrid.add(girls, 0, 0);
|
||||||
|
|
||||||
|
CheckBox ladies = new CheckBox("Ladies");
|
||||||
|
ladies.setSelected(tabs.contains("13"));
|
||||||
|
ladies.setOnAction(e -> toggleTab("13", ladies.isSelected()));
|
||||||
|
checkboxGrid.add(ladies, 1, 0);
|
||||||
|
|
||||||
|
CheckBox mature = new CheckBox("Mature Female");
|
||||||
|
mature.setSelected(tabs.contains("6"));
|
||||||
|
mature.setOnAction(e -> toggleTab("6", mature.isSelected()));
|
||||||
|
checkboxGrid.add(mature, 2, 0);
|
||||||
|
|
||||||
|
CheckBox couples = new CheckBox("Couples");
|
||||||
|
couples.setSelected(tabs.contains("2"));
|
||||||
|
couples.setOnAction(e -> toggleTab("2", couples.isSelected()));
|
||||||
|
checkboxGrid.add(couples, 3, 0);
|
||||||
|
|
||||||
|
CheckBox lesbian = new CheckBox("Lesbian");
|
||||||
|
lesbian.setSelected(tabs.contains("3"));
|
||||||
|
lesbian.setOnAction(e -> toggleTab("3", lesbian.isSelected()));
|
||||||
|
checkboxGrid.add(lesbian, 0, 1);
|
||||||
|
|
||||||
|
CheckBox male = new CheckBox("Male");
|
||||||
|
male.setSelected(tabs.contains("7"));
|
||||||
|
male.setOnAction(e -> toggleTab("7", male.isSelected()));
|
||||||
|
checkboxGrid.add(male, 1, 1);
|
||||||
|
|
||||||
|
CheckBox trans = new CheckBox("Trans");
|
||||||
|
trans.setSelected(tabs.contains("5"));
|
||||||
|
trans.setOnAction(e -> toggleTab("5", trans.isSelected()));
|
||||||
|
checkboxGrid.add(trans, 2, 1);
|
||||||
|
|
||||||
|
layout.add(checkboxGrid, 1, row, 4, 2);
|
||||||
|
row += 2;
|
||||||
|
|
||||||
var createAccount = new Button("Create new Account");
|
var createAccount = new Button("Create new Account");
|
||||||
createAccount.setOnAction(e -> DesktopIntegration.open(site.getAffiliateLink()));
|
createAccount.setOnAction(e -> DesktopIntegration.open(site.getAffiliateLink()));
|
||||||
layout.add(createAccount, 1, row++);
|
layout.add(createAccount, 1, row++);
|
||||||
|
@ -89,4 +139,18 @@ public class XloveCamConfigUI extends AbstractConfigUI {
|
||||||
return layout;
|
return layout;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void toggleTab(String tab, boolean selected) {
|
||||||
|
var settings = Config.getInstance().getSettings();
|
||||||
|
if (selected) {
|
||||||
|
settings.xlovecamTabs.add(tab);
|
||||||
|
} else {
|
||||||
|
settings.xlovecamTabs.remove(tab);
|
||||||
|
}
|
||||||
|
save();
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<String> getXlovecamTabs() {
|
||||||
|
return new ArrayList<>(Config.getInstance().getSettings().xlovecamTabs);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package ctbrec.ui.sites.xlovecam;
|
package ctbrec.ui.sites.xlovecam;
|
||||||
|
|
||||||
|
import ctbrec.Config;
|
||||||
import ctbrec.sites.xlovecam.XloveCam;
|
import ctbrec.sites.xlovecam.XloveCam;
|
||||||
import ctbrec.ui.sites.AbstractTabProvider;
|
import ctbrec.ui.sites.AbstractTabProvider;
|
||||||
import ctbrec.ui.tabs.PaginatedScheduledService;
|
import ctbrec.ui.tabs.PaginatedScheduledService;
|
||||||
|
@ -9,8 +10,10 @@ import javafx.scene.control.Tab;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
// import java.util.Objects;
|
||||||
|
|
||||||
public class XloveCamTabProvider extends AbstractTabProvider {
|
public class XloveCamTabProvider extends AbstractTabProvider {
|
||||||
|
|
||||||
|
@ -36,33 +39,20 @@ public class XloveCamTabProvider extends AbstractTabProvider {
|
||||||
updateService = new XloveCamUpdateService(xloveCam, Map.of(FILTER_PARAM_NEW, "3"));
|
updateService = new XloveCamUpdateService(xloveCam, Map.of(FILTER_PARAM_NEW, "3"));
|
||||||
tabs.add(createTab("New", updateService));
|
tabs.add(createTab("New", updateService));
|
||||||
|
|
||||||
// Young Women
|
Map<String, String> tabMap = new HashMap<>();
|
||||||
updateService = new XloveCamUpdateService(xloveCam, Map.of(FILTER_PARAM, "1"));
|
tabMap.put("1", "Young Women");
|
||||||
tabs.add(createTab("Young Women", updateService));
|
tabMap.put("13", "Ladies");
|
||||||
|
tabMap.put("6", "Mature Female");
|
||||||
// Ladies
|
tabMap.put("2", "Couples");
|
||||||
updateService = new XloveCamUpdateService(xloveCam, Map.of(FILTER_PARAM, "13"));
|
tabMap.put("3", "Lesbian");
|
||||||
tabs.add(createTab("Ladies", updateService));
|
tabMap.put("7", "Male");
|
||||||
|
tabMap.put("5", "Trans");
|
||||||
// Mature
|
List<String> enabledTabs = getXlovecamTabs();
|
||||||
updateService = new XloveCamUpdateService(xloveCam, Map.of(FILTER_PARAM, "6"));
|
for (String tab : enabledTabs) {
|
||||||
tabs.add(createTab("Mature Female", updateService));
|
String title = tabMap.getOrDefault(tab, tab);
|
||||||
|
updateService = new XloveCamUpdateService(xloveCam, Map.of(FILTER_PARAM, tab));
|
||||||
// Couples
|
tabs.add(createTab(title, updateService));
|
||||||
updateService = new XloveCamUpdateService(xloveCam, Map.of(FILTER_PARAM, "2"));
|
}
|
||||||
tabs.add(createTab("Couples", updateService));
|
|
||||||
|
|
||||||
// Lesbian
|
|
||||||
updateService = new XloveCamUpdateService(xloveCam, Map.of(FILTER_PARAM, "3"));
|
|
||||||
tabs.add(createTab("Lesbian", updateService));
|
|
||||||
|
|
||||||
// Male
|
|
||||||
updateService = new XloveCamUpdateService(xloveCam, Map.of(FILTER_PARAM, "7"));
|
|
||||||
tabs.add(createTab("Male", updateService));
|
|
||||||
|
|
||||||
// Trans
|
|
||||||
updateService = new XloveCamUpdateService(xloveCam, Map.of(FILTER_PARAM, "5"));
|
|
||||||
tabs.add(createTab("Trans", updateService));
|
|
||||||
|
|
||||||
return tabs;
|
return tabs;
|
||||||
}
|
}
|
||||||
|
@ -73,4 +63,8 @@ public class XloveCamTabProvider extends AbstractTabProvider {
|
||||||
return tab;
|
return tab;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<String> getXlovecamTabs() {
|
||||||
|
return new ArrayList<>(Config.getInstance().getSettings().xlovecamTabs);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<artifactId>common</artifactId>
|
<artifactId>common</artifactId>
|
||||||
|
|
|
@ -53,20 +53,20 @@ public class Settings {
|
||||||
public String bongacamsBaseUrl = "https://bongacams.com";
|
public String bongacamsBaseUrl = "https://bongacams.com";
|
||||||
public String bongaPassword = "";
|
public String bongaPassword = "";
|
||||||
public String bongaUsername = "";
|
public String bongaUsername = "";
|
||||||
public Set<String> bongaTabs = new HashSet<>();
|
public Set<String> bongaTabs = new HashSet<>(Arrays.asList("female"));
|
||||||
public String cam4Password = "";
|
public String cam4Password = "";
|
||||||
public String cam4Username = "";
|
public String cam4Username = "";
|
||||||
public Set<String> cam4Tabs = new HashSet<>();
|
public Set<String> cam4Tabs = new HashSet<>(Arrays.asList("female"));
|
||||||
public String camsodaPassword = "";
|
public String camsodaPassword = "";
|
||||||
public String camsodaUsername = "";
|
public String camsodaUsername = "";
|
||||||
public Set<String> camsodaTabs = new HashSet<>();
|
public Set<String> camsodaTabs = new HashSet<>(Arrays.asList("f"));
|
||||||
public String chaturbatePassword = "";
|
public String chaturbatePassword = "";
|
||||||
public String chaturbateUsername = "";
|
public String chaturbateUsername = "";
|
||||||
public String chaturbateBaseUrl = "https://chaturbate.com";
|
public String chaturbateBaseUrl = "https://chaturbate.com";
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public boolean chaturbateUseFlaresolverr = false;
|
public boolean chaturbateUseFlaresolverr = false;
|
||||||
public int chaturbateMsBetweenRequests = 3000;
|
public int chaturbateMsBetweenRequests = 3000;
|
||||||
public Set<String> chaturbateRegions = new HashSet<>();
|
public Set<String> chaturbateTabs = new HashSet<>(Arrays.asList("f"));
|
||||||
public boolean chooseStreamQuality = false;
|
public boolean chooseStreamQuality = false;
|
||||||
public String colorAccent = "#FFFFFF";
|
public String colorAccent = "#FFFFFF";
|
||||||
public String colorBase = "#FFFFFF";
|
public String colorBase = "#FFFFFF";
|
||||||
|
@ -77,9 +77,9 @@ public class Settings {
|
||||||
public int defaultPriority = 50;
|
public int defaultPriority = 50;
|
||||||
public boolean deleteOrphanedRecordingMetadata = true;
|
public boolean deleteOrphanedRecordingMetadata = true;
|
||||||
public boolean determineResolution = false;
|
public boolean determineResolution = false;
|
||||||
public List<String> disabledSites = new ArrayList<>();
|
public List<String> disabledSites = new ArrayList<>(Arrays.asList("Streamray", "WinkTv"));
|
||||||
public String downloadFilename = "$sanitize(${modelName})_$format(${localDateTime})";
|
public String downloadFilename = "$sanitize(${modelName})_$format(${localDateTime})";
|
||||||
public Set<String> dreamcamTabs = new HashSet<>();
|
public Set<String> dreamcamTabs = new HashSet<>(Arrays.asList("girls"));
|
||||||
public List<EventHandlerConfiguration> eventHandlers = new ArrayList<>();
|
public List<EventHandlerConfiguration> eventHandlers = new ArrayList<>();
|
||||||
public boolean eventsSuspended = false;
|
public boolean eventsSuspended = false;
|
||||||
public boolean fastScrollSpeed = true;
|
public boolean fastScrollSpeed = true;
|
||||||
|
@ -185,6 +185,7 @@ public class Settings {
|
||||||
public boolean showPlayerStarting = false;
|
public boolean showPlayerStarting = false;
|
||||||
public String showupUsername = "";
|
public String showupUsername = "";
|
||||||
public String showupPassword = "";
|
public String showupPassword = "";
|
||||||
|
public Set<String> showupTabs = new HashSet<>(Arrays.asList("female"));
|
||||||
public boolean singlePlayer = true;
|
public boolean singlePlayer = true;
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public int splitRecordings = 0;
|
public int splitRecordings = 0;
|
||||||
|
@ -195,8 +196,11 @@ public class Settings {
|
||||||
public boolean startMinimized = false;
|
public boolean startMinimized = false;
|
||||||
public String streamatePassword = "";
|
public String streamatePassword = "";
|
||||||
public String streamateUsername = "";
|
public String streamateUsername = "";
|
||||||
|
public Set<String> streamateTabs = new HashSet<>(Arrays.asList("f,ff"));
|
||||||
|
public Set<String> streamrayTabs = new HashSet<>(Arrays.asList("F"));
|
||||||
public String stripchatUsername = "";
|
public String stripchatUsername = "";
|
||||||
public String stripchatPassword = "";
|
public String stripchatPassword = "";
|
||||||
|
public Set<String> stripchatTabs = new HashSet<>(Arrays.asList("girls"));
|
||||||
public boolean stripchatUseXhamster = false;
|
public boolean stripchatUseXhamster = false;
|
||||||
public boolean stripchatUseSuperchat = false;
|
public boolean stripchatUseSuperchat = false;
|
||||||
public List<String> tabOrder = new ArrayList<>();
|
public List<String> tabOrder = new ArrayList<>();
|
||||||
|
@ -220,6 +224,7 @@ public class Settings {
|
||||||
public String webinterfacePassword = "sucks";
|
public String webinterfacePassword = "sucks";
|
||||||
public String xlovecamUsername = "";
|
public String xlovecamUsername = "";
|
||||||
public String xlovecamPassword = "";
|
public String xlovecamPassword = "";
|
||||||
|
public Set<String> xlovecamTabs = new HashSet<>(Arrays.asList("1"));
|
||||||
public boolean stripchatVR = true;
|
public boolean stripchatVR = true;
|
||||||
public boolean streamrayRecordGoalShows = false;
|
public boolean streamrayRecordGoalShows = false;
|
||||||
public int thumbCacheSize = 16;
|
public int thumbCacheSize = 16;
|
||||||
|
|
Loading…
Reference in New Issue