From 7def649d1f18a82c47b89051ab55b2b83bfbfed9 Mon Sep 17 00:00:00 2001 From: jafea7 Date: Fri, 28 Mar 2025 21:46:42 +1100 Subject: [PATCH] Add superchatlive for stripchat --- .../ui/sites/stripchat/StripchatConfigUI.java | 33 ++++++++++++++++--- common/src/main/java/ctbrec/Settings.java | 1 + .../ctbrec/sites/stripchat/Stripchat.java | 6 +++- 3 files changed, 34 insertions(+), 6 deletions(-) diff --git a/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatConfigUI.java b/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatConfigUI.java index fc3d86fa..6e76c01c 100644 --- a/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatConfigUI.java @@ -44,19 +44,42 @@ public class StripchatConfigUI extends AbstractConfigUI { layout.add(l, 0, row); var toggleGroup = new ToggleGroup(); var optionA = new RadioButton("Stripchat"); - optionA.setSelected(!Config.getInstance().getSettings().stripchatUseXhamster); - optionA.setToggleGroup(toggleGroup); var optionB = new RadioButton("xHamsterLive"); - optionB.setSelected(!optionA.isSelected()); + 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 = !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); + 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++); diff --git a/common/src/main/java/ctbrec/Settings.java b/common/src/main/java/ctbrec/Settings.java index 55f50c4b..c0334a02 100644 --- a/common/src/main/java/ctbrec/Settings.java +++ b/common/src/main/java/ctbrec/Settings.java @@ -191,6 +191,7 @@ public class Settings { public String stripchatUsername = ""; public String stripchatPassword = ""; public boolean stripchatUseXhamster = false; + public boolean stripchatUseSuperchat = false; public List tabOrder = new ArrayList<>(); public boolean tabsSortable = true; public LocalTime timeoutRecordingStartingAt = LocalTime.of(0, 0); diff --git a/common/src/main/java/ctbrec/sites/stripchat/Stripchat.java b/common/src/main/java/ctbrec/sites/stripchat/Stripchat.java index 6bc5079c..4933f3d1 100644 --- a/common/src/main/java/ctbrec/sites/stripchat/Stripchat.java +++ b/common/src/main/java/ctbrec/sites/stripchat/Stripchat.java @@ -37,9 +37,13 @@ public class Stripchat extends AbstractSite { @Override public void init() throws IOException { boolean hamster = getConfig().getSettings().stripchatUseXhamster; + boolean superchat = getConfig().getSettings().stripchatUseSuperchat; if (hamster) { Stripchat.setDomain("xhamsterlive.com"); Stripchat.setBaseUri("https://" + domain); + } else if (superchat) { + Stripchat.setDomain("superchatlive.com"); + Stripchat.setBaseUri("https://" + domain); } } @@ -181,7 +185,7 @@ public class Stripchat extends AbstractSite { @Override public Model createModelFromUrl(String url) { - Matcher m = Pattern.compile("https?://(?:.*?\\.)?(?:stripchat.com|xhamsterlive.com)/([^/]*?)/?").matcher(url); + Matcher m = Pattern.compile("https?://(?:.*?\\.)?(?:stripchat.com|xhamsterlive.com|superchatlive.com)/([^/]*?)/?").matcher(url); if (m.matches()) { String modelName = m.group(1); return createModel(modelName);