212 lines
8.9 KiB
Java
212 lines
8.9 KiB
Java
package ctbrec.ui.sites.stripchat;
|
|
|
|
import java.util.List;
|
|
|
|
import ctbrec.Config;
|
|
import ctbrec.sites.stripchat.Stripchat;
|
|
import ctbrec.ui.DesktopIntegration;
|
|
import ctbrec.ui.settings.SettingsTab;
|
|
import ctbrec.ui.settings.Sites;
|
|
import ctbrec.ui.settings.TabUtils;
|
|
import ctbrec.ui.sites.AbstractConfigUI;
|
|
import javafx.geometry.Insets;
|
|
import javafx.scene.Parent;
|
|
import javafx.scene.control.*;
|
|
import javafx.scene.layout.GridPane;
|
|
import javafx.scene.layout.HBox;
|
|
import javafx.scene.layout.Priority;
|
|
|
|
public class StripchatConfigUI extends AbstractConfigUI {
|
|
private final Stripchat stripchat;
|
|
private CheckBox vr;
|
|
|
|
public StripchatConfigUI(Stripchat stripchat) {
|
|
this.stripchat = stripchat;
|
|
}
|
|
|
|
@Override
|
|
public Parent createConfigPanel() {
|
|
GridPane layout = SettingsTab.createGridLayout();
|
|
var settings = Config.getInstance().getSettings();
|
|
|
|
var row = 0;
|
|
var l = new Label("Active");
|
|
layout.add(l, 0, row);
|
|
var enabled = new CheckBox();
|
|
enabled.setSelected(!settings.disabledSites.contains(stripchat.getName()));
|
|
enabled.setOnAction(e -> {
|
|
if (enabled.isSelected()) {
|
|
settings.disabledSites.remove(stripchat.getName());
|
|
} else {
|
|
settings.disabledSites.add(stripchat.getName());
|
|
}
|
|
save();
|
|
});
|
|
GridPane.setMargin(enabled, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN));
|
|
layout.add(enabled, 1, row++);
|
|
|
|
l = new Label("Site");
|
|
layout.add(l, 0, row);
|
|
var toggleGroup = new ToggleGroup();
|
|
var optionA = new RadioButton("Stripchat");
|
|
var optionB = new RadioButton("xHamsterLive");
|
|
var optionC = new RadioButton("SuperchatLive");
|
|
// Set initial selections based on current configuration
|
|
if (Config.getInstance().getSettings().stripchatUseXhamster && !Config.getInstance().getSettings().stripchatUseSuperchat) {
|
|
optionB.setSelected(true);
|
|
} else if (!Config.getInstance().getSettings().stripchatUseXhamster && Config.getInstance().getSettings().stripchatUseSuperchat) {
|
|
optionC.setSelected(true);
|
|
} else {
|
|
optionA.setSelected(true);
|
|
}
|
|
optionA.setToggleGroup(toggleGroup);
|
|
optionB.setToggleGroup(toggleGroup);
|
|
optionC.setToggleGroup(toggleGroup);
|
|
// Add listeners to update configuration settings
|
|
optionA.selectedProperty().addListener((obs, oldV, newV) -> {
|
|
Config.getInstance().getSettings().stripchatUseXhamster = false;
|
|
Config.getInstance().getSettings().stripchatUseSuperchat = false;
|
|
save();
|
|
});
|
|
|
|
optionB.selectedProperty().addListener((obs, oldV, newV) -> {
|
|
Config.getInstance().getSettings().stripchatUseXhamster = true;
|
|
Config.getInstance().getSettings().stripchatUseSuperchat = false;
|
|
save();
|
|
});
|
|
|
|
optionC.selectedProperty().addListener((obs, oldV, newV) -> {
|
|
Config.getInstance().getSettings().stripchatUseXhamster = false;
|
|
Config.getInstance().getSettings().stripchatUseSuperchat = true;
|
|
save();
|
|
});
|
|
|
|
var hbox = new HBox();
|
|
hbox.getChildren().addAll(optionA, optionB, optionC);
|
|
HBox.setMargin(optionA, new Insets(5));
|
|
HBox.setMargin(optionB, new Insets(5));
|
|
HBox.setMargin(optionC, new Insets(5));
|
|
GridPane.setMargin(hbox, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN));
|
|
layout.add(hbox, 1, row++);
|
|
|
|
layout.add(new Label("Stripchat User"), 0, row);
|
|
var username = new TextField(Config.getInstance().getSettings().stripchatUsername);
|
|
username.textProperty().addListener((ob, o, n) -> {
|
|
if (!n.equals(Config.getInstance().getSettings().stripchatUsername)) {
|
|
Config.getInstance().getSettings().stripchatUsername = username.getText();
|
|
stripchat.getHttpClient().logout();
|
|
save();
|
|
}
|
|
});
|
|
GridPane.setFillWidth(username, true);
|
|
GridPane.setHgrow(username, Priority.ALWAYS);
|
|
GridPane.setColumnSpan(username, 2);
|
|
layout.add(username, 1, row++);
|
|
|
|
layout.add(new Label("Stripchat Password"), 0, row);
|
|
var password = new PasswordField();
|
|
password.setText(Config.getInstance().getSettings().stripchatPassword);
|
|
password.textProperty().addListener((ob, o, n) -> {
|
|
if (!n.equals(Config.getInstance().getSettings().stripchatPassword)) {
|
|
Config.getInstance().getSettings().stripchatPassword = password.getText();
|
|
stripchat.getHttpClient().logout();
|
|
save();
|
|
}
|
|
});
|
|
GridPane.setFillWidth(password, true);
|
|
GridPane.setHgrow(password, Priority.ALWAYS);
|
|
GridPane.setColumnSpan(password, 2);
|
|
layout.add(password, 1, row++);
|
|
|
|
Label tabsLabel = new Label("Tabs");
|
|
layout.add(tabsLabel, 0, row);
|
|
List<String> tabs = TabUtils.getEnabledTabs(Sites.STRIPCHAT);
|
|
|
|
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 -> TabUtils.toggleTab(Sites.STRIPCHAT, "girls", girls.isSelected()));
|
|
checkboxGrid.add(girls, 0, 0);
|
|
|
|
CheckBox girlsNew = new CheckBox("Girls New");
|
|
girlsNew.setSelected(tabs.contains("autoTagNew"));
|
|
girlsNew.setOnAction(e -> TabUtils.toggleTab(Sites.STRIPCHAT, "autoTagNew", girlsNew.isSelected()));
|
|
checkboxGrid.add(girlsNew, 1, 0);
|
|
|
|
CheckBox girlsHD = new CheckBox("Girls HD");
|
|
girlsHD.setSelected(tabs.contains("autoTagHd"));
|
|
girlsHD.setOnAction(e -> TabUtils.toggleTab(Sites.STRIPCHAT, "autoTagHd", girlsHD.isSelected()));
|
|
checkboxGrid.add(girlsHD, 2, 0);
|
|
|
|
CheckBox girlsVR = new CheckBox("Girls VR");
|
|
girlsVR.setSelected(tabs.contains("autoTagVr"));
|
|
girlsVR.setOnAction(e -> {
|
|
TabUtils.toggleTab(Sites.STRIPCHAT, "autoTagVr", girlsVR.isSelected());
|
|
settings.stripchatVR = girlsVR.isSelected();
|
|
vr.setSelected(girlsVR.isSelected());
|
|
save();
|
|
});
|
|
checkboxGrid.add(girlsVR, 3, 0);
|
|
|
|
CheckBox mobile = new CheckBox("Mobile");
|
|
mobile.setSelected(tabs.contains("mobile"));
|
|
mobile.setOnAction(e -> TabUtils.toggleTab(Sites.STRIPCHAT, "mobile", mobile.isSelected()));
|
|
checkboxGrid.add(mobile, 4, 0);
|
|
|
|
CheckBox pvt = new CheckBox("Private");
|
|
pvt.setSelected(tabs.contains("autoTagSpy"));
|
|
pvt.setOnAction(e -> TabUtils.toggleTab(Sites.STRIPCHAT, "autoTagSpy", pvt.isSelected()));
|
|
checkboxGrid.add(pvt, 0, 1);
|
|
|
|
CheckBox couples = new CheckBox("Couples");
|
|
couples.setSelected(tabs.contains("couples"));
|
|
couples.setOnAction(e -> TabUtils.toggleTab(Sites.STRIPCHAT, "couples", couples.isSelected()));
|
|
checkboxGrid.add(couples, 1, 1);
|
|
|
|
CheckBox boys = new CheckBox("Boys");
|
|
boys.setSelected(tabs.contains("men"));
|
|
boys.setOnAction(e -> TabUtils.toggleTab(Sites.STRIPCHAT, "men", boys.isSelected()));
|
|
checkboxGrid.add(boys, 2, 1);
|
|
|
|
CheckBox trans = new CheckBox("Trans");
|
|
trans.setSelected(tabs.contains("trans"));
|
|
trans.setOnAction(e -> TabUtils.toggleTab(Sites.STRIPCHAT, "trans", trans.isSelected()));
|
|
checkboxGrid.add(trans, 3, 1);
|
|
|
|
layout.add(checkboxGrid, 1, row, 5, 2);
|
|
row += 2;
|
|
|
|
l = new Label("Get VR stream if available");
|
|
layout.add(l, 0, row);
|
|
vr = new CheckBox();
|
|
vr.setSelected(settings.stripchatVR);
|
|
vr.setOnAction(e -> {
|
|
settings.stripchatVR = vr.isSelected();
|
|
save();
|
|
});
|
|
GridPane.setMargin(vr, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN));
|
|
layout.add(vr, 1, row);
|
|
row++;
|
|
|
|
var createAccount = new Button("Create new Account");
|
|
createAccount.setOnAction(e -> DesktopIntegration.open(stripchat.getAffiliateLink()));
|
|
layout.add(createAccount, 1, row++);
|
|
GridPane.setColumnSpan(createAccount, 2);
|
|
|
|
var deleteCookies = new Button("Delete Cookies");
|
|
deleteCookies.setOnAction(e -> stripchat.getHttpClient().clearCookies());
|
|
layout.add(deleteCookies, 1, row++);
|
|
GridPane.setColumnSpan(deleteCookies, 2);
|
|
|
|
GridPane.setMargin(username, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN));
|
|
GridPane.setMargin(password, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN));
|
|
GridPane.setMargin(createAccount, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN));
|
|
GridPane.setMargin(deleteCookies, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN));
|
|
return layout;
|
|
}
|
|
}
|