diff --git a/client/src/main/java/ctbrec/ui/DesktopIntegration.java b/client/src/main/java/ctbrec/ui/DesktopIntegration.java index 7673458b..440faeee 100644 --- a/client/src/main/java/ctbrec/ui/DesktopIntegration.java +++ b/client/src/main/java/ctbrec/ui/DesktopIntegration.java @@ -66,7 +66,8 @@ public class DesktopIntegration { var externalHelpers = new String[]{"kde-open5", "kde-open", "gnome-open", "xdg-open"}; for (String helper : externalHelpers) { try { - rt.exec(helper + " " + uri); + ProcessBuilder pb = new ProcessBuilder(helper, uri); + pb.start(); return; } catch (IOException e) { LOG.debug("Couldn't open URL with {} {}", helper, uri); @@ -116,10 +117,10 @@ public class DesktopIntegration { // try external helpers var externalHelpers = new String[]{"kde-open5", "kde-open", "gnome-open", "xdg-open"}; - var rt = Runtime.getRuntime(); for (String helper : externalHelpers) { try { - rt.exec(helper + " " + f.getAbsolutePath()); + ProcessBuilder pb = new ProcessBuilder(helper, f.getAbsolutePath()); + pb.start(); return; } catch (IOException e) { LOG.debug("Couldn't open file with {} {}", helper, f); diff --git a/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsConfigUI.java b/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsConfigUI.java index 40a8e32c..fe60485b 100644 --- a/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsConfigUI.java @@ -90,7 +90,7 @@ public class BongaCamsConfigUI extends AbstractConfigUI { Label tabsLabel = new Label("Tabs"); layout.add(tabsLabel, 0, row); - List tabs = getBongaTabs(); + List tabs = getEnabledTabs(); GridPane checkboxGrid = new GridPane(); checkboxGrid.setHgap(10); @@ -99,32 +99,32 @@ public class BongaCamsConfigUI extends AbstractConfigUI { CheckBox female = new CheckBox("Female"); female.setSelected(tabs.contains("female")); - female.setOnAction(e -> toggleTabs("female", female.isSelected())); + female.setOnAction(e -> toggleTab("female", female.isSelected())); checkboxGrid.add(female, 0, 0); CheckBox male = new CheckBox("Male"); male.setSelected(tabs.contains("male")); - male.setOnAction(e -> toggleTabs("male", male.isSelected())); + male.setOnAction(e -> toggleTab("male", male.isSelected())); checkboxGrid.add(male, 1, 0); CheckBox couples = new CheckBox("Couples"); couples.setSelected(tabs.contains("couples")); - couples.setOnAction(e -> toggleTabs("couples", couples.isSelected())); + couples.setOnAction(e -> toggleTab("couples", couples.isSelected())); checkboxGrid.add(couples, 2, 0); CheckBox trans = new CheckBox("Trans"); trans.setSelected(tabs.contains("trans")); - trans.setOnAction(e -> toggleTabs("trans", trans.isSelected())); + trans.setOnAction(e -> toggleTab("trans", trans.isSelected())); checkboxGrid.add(trans, 0, 1); CheckBox newModels = new CheckBox("New"); newModels.setSelected(tabs.contains("new")); - newModels.setOnAction(e -> toggleTabs("new", newModels.isSelected())); + newModels.setOnAction(e -> toggleTab("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())); + mobile.setOnAction(e -> toggleTab("mobile", mobile.isSelected())); checkboxGrid.add(mobile, 2, 1); layout.add(checkboxGrid, 1, row, 3, 2); @@ -148,7 +148,7 @@ public class BongaCamsConfigUI extends AbstractConfigUI { return layout; } - private void toggleTabs(String tab, boolean selected) { + private void toggleTab(String tab, boolean selected) { var settings = Config.getInstance().getSettings(); if (selected) { settings.bongaTabs.add(tab); @@ -158,7 +158,7 @@ public class BongaCamsConfigUI extends AbstractConfigUI { save(); } - private List getBongaTabs() { + private List getEnabledTabs() { return new ArrayList<>(Config.getInstance().getSettings().bongaTabs); } } diff --git a/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsTabProvider.java b/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsTabProvider.java index 7e128a3d..450cc44d 100644 --- a/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsTabProvider.java @@ -34,7 +34,7 @@ public class BongaCamsTabProvider extends AbstractTabProvider { tabMap.put("male", "Male"); tabMap.put("couple", "Couple"); tabMap.put("trans", "Trans"); - List enabledTabs = getBongaTabs(); + List enabledTabs = getEnabledTabs(); for (String tab : enabledTabs) { switch (tab) { case "female": @@ -77,7 +77,7 @@ public class BongaCamsTabProvider extends AbstractTabProvider { return tab; } - private List getBongaTabs() { + private List getEnabledTabs() { return new ArrayList<>(Config.getInstance().getSettings().bongaTabs); } diff --git a/client/src/main/java/ctbrec/ui/sites/cam4/Cam4ConfigUI.java b/client/src/main/java/ctbrec/ui/sites/cam4/Cam4ConfigUI.java index e02813e2..d0441734 100644 --- a/client/src/main/java/ctbrec/ui/sites/cam4/Cam4ConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/cam4/Cam4ConfigUI.java @@ -78,7 +78,7 @@ public class Cam4ConfigUI extends AbstractConfigUI { Label tabsLabel = new Label("Tabs"); layout.add(tabsLabel, 0, row); - List tabs = getCam4Tabs(); + List tabs = getEnabledTabs(); GridPane checkboxGrid = new GridPane(); checkboxGrid.setHgap(10); @@ -145,7 +145,7 @@ public class Cam4ConfigUI extends AbstractConfigUI { save(); } - private List getCam4Tabs() { + private List getEnabledTabs() { return new ArrayList<>(Config.getInstance().getSettings().cam4Tabs); } diff --git a/client/src/main/java/ctbrec/ui/sites/cam4/Cam4TabProvider.java b/client/src/main/java/ctbrec/ui/sites/cam4/Cam4TabProvider.java index 67a6af99..93ff01ac 100644 --- a/client/src/main/java/ctbrec/ui/sites/cam4/Cam4TabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/cam4/Cam4TabProvider.java @@ -31,7 +31,7 @@ public class Cam4TabProvider extends AbstractTabProvider { tabMap.put("couples", "Couples"); tabMap.put("hd", "HD"); tabMap.put("mobile", "Mobile"); - List enabledTabs = getCam4Tabs(); + List enabledTabs = getEnabledTabs(); for (String tab : enabledTabs) { String title = tabMap.getOrDefault(tab, tab); switch (tab) { @@ -75,7 +75,7 @@ public class Cam4TabProvider extends AbstractTabProvider { return tab; } - private List getCam4Tabs() { + private List getEnabledTabs() { return new ArrayList<>(Config.getInstance().getSettings().cam4Tabs); } diff --git a/client/src/main/java/ctbrec/ui/sites/camsoda/CamsodaConfigUI.java b/client/src/main/java/ctbrec/ui/sites/camsoda/CamsodaConfigUI.java index 428d2c22..ffb7d503 100644 --- a/client/src/main/java/ctbrec/ui/sites/camsoda/CamsodaConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/camsoda/CamsodaConfigUI.java @@ -78,7 +78,7 @@ public class CamsodaConfigUI extends AbstractConfigUI { Label tabsLabel = new Label("Tabs"); layout.add(tabsLabel, 0, row); - List tabs = getCamsodaTabs(); + List tabs = getEnabledTabs(); GridPane checkboxGrid = new GridPane(); checkboxGrid.setHgap(10); @@ -145,7 +145,7 @@ public class CamsodaConfigUI extends AbstractConfigUI { save(); } - private List getCamsodaTabs() { + private List getEnabledTabs() { return new ArrayList<>(Config.getInstance().getSettings().camsodaTabs); } diff --git a/client/src/main/java/ctbrec/ui/sites/camsoda/CamsodaTabProvider.java b/client/src/main/java/ctbrec/ui/sites/camsoda/CamsodaTabProvider.java index 96f21d1d..d7ffcde9 100644 --- a/client/src/main/java/ctbrec/ui/sites/camsoda/CamsodaTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/camsoda/CamsodaTabProvider.java @@ -42,7 +42,7 @@ public class CamsodaTabProvider extends AbstractTabProvider { tabMap.put("t", "Trans"); tabMap.put("isNew", "New"); tabMap.put("isVoyeur", "Voyeur"); - List enabledTabs = getCamsodaTabs(); + List enabledTabs = getEnabledTabs(); for (String tab : enabledTabs) { String title = tabMap.getOrDefault(tab, tab); switch (tab) { @@ -81,7 +81,7 @@ public class CamsodaTabProvider extends AbstractTabProvider { return tab; } - private List getCamsodaTabs() { + private List getEnabledTabs() { return new ArrayList<>(Config.getInstance().getSettings().camsodaTabs); } diff --git a/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateConfigUi.java b/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateConfigUi.java index 377a0034..ed20bb5c 100644 --- a/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateConfigUi.java +++ b/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateConfigUi.java @@ -106,7 +106,7 @@ public class ChaturbateConfigUi extends AbstractConfigUI { Label tabsLabel = new Label("Tabs"); layout.add(tabsLabel, 0, row); - List tabs = getChaturbateTabs(); + List tabs = getEnabledTabs(); GridPane checkboxGrid = new GridPane(); checkboxGrid.setHgap(10); @@ -227,7 +227,7 @@ public class ChaturbateConfigUi extends AbstractConfigUI { save(); } - private List getChaturbateTabs() { + private List getEnabledTabs() { return new ArrayList<>(Config.getInstance().getSettings().chaturbateTabs); } } diff --git a/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateTabProvider.java b/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateTabProvider.java index 4f2f3869..9e79b68e 100644 --- a/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateTabProvider.java @@ -29,7 +29,7 @@ public class ChaturbateTabProvider extends AbstractTabProvider { protected List getSiteTabs(Scene scene) { List tabs = new ArrayList<>(); - for (String tab : getChaturbateTabs()) { + for (String tab : getEnabledTabs()) { switch (tab) { case "ft": tabs.add(createTab("Featured", apiUrl + "/roomlist/room-list/?enable_recommendations=false")); @@ -120,7 +120,7 @@ public class ChaturbateTabProvider extends AbstractTabProvider { return createTab(title, updateService); } - private List getChaturbateTabs() { + private List getEnabledTabs() { return new ArrayList<>(Config.getInstance().getSettings().chaturbateTabs); } } diff --git a/client/src/main/java/ctbrec/ui/sites/dreamcam/DreamcamConfigUI.java b/client/src/main/java/ctbrec/ui/sites/dreamcam/DreamcamConfigUI.java index cec6f084..2132ddd8 100644 --- a/client/src/main/java/ctbrec/ui/sites/dreamcam/DreamcamConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/dreamcam/DreamcamConfigUI.java @@ -59,7 +59,7 @@ public class DreamcamConfigUI extends AbstractConfigUI { Label tabsLabel = new Label("Tabs"); layout.add(tabsLabel, 0, row); - List tabs = getDreamcamTabs(); + List tabs = getEnabledTabs(); HBox checkboxContainer = new HBox(10); @@ -106,7 +106,7 @@ public class DreamcamConfigUI extends AbstractConfigUI { save(); } - private List getDreamcamTabs() { + private List getEnabledTabs() { return new ArrayList<>(Config.getInstance().getSettings().dreamcamTabs); } diff --git a/client/src/main/java/ctbrec/ui/sites/dreamcam/DreamcamTabProvider.java b/client/src/main/java/ctbrec/ui/sites/dreamcam/DreamcamTabProvider.java index 9f51b3fe..0a79d606 100644 --- a/client/src/main/java/ctbrec/ui/sites/dreamcam/DreamcamTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/dreamcam/DreamcamTabProvider.java @@ -30,16 +30,12 @@ public class DreamcamTabProvider extends AbstractTabProvider { tabMap.put("men", "Boys"); tabMap.put("couples", "Couples"); tabMap.put("trans", "Trans"); - List enabledTabs = getDreamcamTabs(); + List enabledTabs = getEnabledTabs(); for (String tab : enabledTabs) { String title = tabMap.getOrDefault(tab, tab); tabs.add(createTab(title, API_URL + "&tag-categories=" + tab)); } - // tabs.add(createTab("Girls", API_URL + "&tag-categories=girls")); - // tabs.add(createTab("Boys", API_URL + "&tag-categories=men")); - // tabs.add(createTab("Couples", API_URL + "&tag-categories=couples")); - // tabs.add(createTab("Trans", API_URL + "&tag-categories=trans")); return tabs; } @@ -51,7 +47,7 @@ public class DreamcamTabProvider extends AbstractTabProvider { return tab; } - private List getDreamcamTabs() { + private List getEnabledTabs() { return new ArrayList<>(Config.getInstance().getSettings().dreamcamTabs); } diff --git a/client/src/main/java/ctbrec/ui/sites/flirt4free/Flirt4FreeConfigUI.java b/client/src/main/java/ctbrec/ui/sites/flirt4free/Flirt4FreeConfigUI.java index 3d146668..36a517cd 100644 --- a/client/src/main/java/ctbrec/ui/sites/flirt4free/Flirt4FreeConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/flirt4free/Flirt4FreeConfigUI.java @@ -1,5 +1,8 @@ package ctbrec.ui.sites.flirt4free; +import java.util.ArrayList; +import java.util.List; + import ctbrec.Config; import ctbrec.sites.flirt4free.Flirt4Free; import ctbrec.ui.DesktopIntegration; @@ -72,6 +75,43 @@ public class Flirt4FreeConfigUI extends AbstractConfigUI { GridPane.setColumnSpan(password, 2); layout.add(password, 1, row++); + Label tabsLabel = new Label("Tabs"); + layout.add(tabsLabel, 0, row); + List tabs = getEnabledTabs(); + + 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("female")); + female.setOnAction(e -> toggleTab("female", female.isSelected())); + checkboxGrid.add(female, 0, 0); + + CheckBox newModels = new CheckBox("Girls New"); + newModels.setSelected(tabs.contains("hd")); + newModels.setOnAction(e -> toggleTab("hd", newModels.isSelected())); + checkboxGrid.add(newModels, 1, 0); + + CheckBox male = new CheckBox("Male"); + male.setSelected(tabs.contains("male")); + male.setOnAction(e -> toggleTab("male", male.isSelected())); + checkboxGrid.add(male, 2, 0); + + CheckBox couples = new CheckBox("Couples"); + couples.setSelected(tabs.contains("couples")); + couples.setOnAction(e -> toggleTab("couples", couples.isSelected())); + checkboxGrid.add(couples, 0, 1); + + CheckBox trans = new CheckBox("Trans"); + trans.setSelected(tabs.contains("trans")); + trans.setOnAction(e -> toggleTab("trans", trans.isSelected())); + checkboxGrid.add(trans, 1, 1); + + layout.add(checkboxGrid, 1, row, 3, 2); + row += 2; + var createAccount = new Button("Create new Account"); createAccount.setOnAction(e -> DesktopIntegration.open(flirt4free.getAffiliateLink())); layout.add(createAccount, 1, row++); @@ -89,4 +129,18 @@ public class Flirt4FreeConfigUI extends AbstractConfigUI { return layout; } + private void toggleTab(String tab, boolean selected) { + var settings = Config.getInstance().getSettings(); + if (selected) { + settings.cam4Tabs.add(tab); + } else { + settings.cam4Tabs.remove(tab); + } + save(); + } + + private List getEnabledTabs() { + return new ArrayList<>(Config.getInstance().getSettings().cam4Tabs); + } + } diff --git a/client/src/main/java/ctbrec/ui/sites/flirt4free/Flirt4FreeTabProvider.java b/client/src/main/java/ctbrec/ui/sites/flirt4free/Flirt4FreeTabProvider.java index 56b2536b..3b378720 100644 --- a/client/src/main/java/ctbrec/ui/sites/flirt4free/Flirt4FreeTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/flirt4free/Flirt4FreeTabProvider.java @@ -1,5 +1,6 @@ package ctbrec.ui.sites.flirt4free; +import ctbrec.Config; import ctbrec.sites.flirt4free.Flirt4Free; import ctbrec.sites.flirt4free.Flirt4FreeModel; import ctbrec.ui.sites.AbstractTabProvider; @@ -9,7 +10,9 @@ import javafx.scene.control.Tab; import javafx.util.Duration; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.function.Predicate; public class Flirt4FreeTabProvider extends AbstractTabProvider { @@ -25,11 +28,36 @@ public class Flirt4FreeTabProvider extends AbstractTabProvider { @Override protected List getSiteTabs(Scene scene) { List tabs = new ArrayList<>(); - tabs.add(createTab("Girls", site.getBaseUrl() + "/live/girls/?tpl=index2&model=json", m -> true)); - tabs.add(createTab("New Girls", site.getBaseUrl() + "/live/girls/?tpl=index2&model=json", Flirt4FreeModel::isNew)); - tabs.add(createTab("Boys", site.getBaseUrl() + "/live/guys/?tpl=index2&model=json", m -> true)); - tabs.add(createTab("Couples", site.getBaseUrl() + "/live/couples/?tpl=index2&model=json", m -> m.getCategories().contains("2"))); - tabs.add(createTab("Trans", site.getBaseUrl() + "/live/trans/?tpl=index2&model=json", m -> true)); + + Map tabMap = new HashMap<>(); + tabMap.put("female", "Girls"); + tabMap.put("new", "New Girls"); + tabMap.put("male", "Male"); + tabMap.put("couples", "Couples"); + tabMap.put("trans", "Trans"); + List enabledTabs = getEnabledTabs(); + for (String tab : enabledTabs) { + String title = tabMap.getOrDefault(tab, tab); + switch (tab) { + case "female": + tabs.add(createTab(title, site.getBaseUrl() + "/live/girls/?tpl=index2&model=json", m -> true)); + break; + case "new": + tabs.add(createTab(title, site.getBaseUrl() + "/live/girls/?tpl=index2&model=json", Flirt4FreeModel::isNew)); + break; + case "male": + tabs.add(createTab(title, site.getBaseUrl() + "/live/guys/?tpl=index2&model=json", m -> true)); + break; + case "couples": + tabs.add(createTab(title, site.getBaseUrl() + "/live/couples/?tpl=index2&model=json", m -> m.getCategories().contains("2"))); + break; + case "trans": + tabs.add(createTab(title, site.getBaseUrl() + "/live/trans/?tpl=index2&model=json", m -> true)); + break; + default: + } + } + tabs.add(followedTab); return tabs; } @@ -46,4 +74,9 @@ public class Flirt4FreeTabProvider extends AbstractTabProvider { s.setPeriod(Duration.seconds(60)); return tab; } + + private List getEnabledTabs() { + return new ArrayList<>(Config.getInstance().getSettings().flirt4freeTabs); + } + } diff --git a/client/src/main/java/ctbrec/ui/sites/showup/ShowupConfigUI.java b/client/src/main/java/ctbrec/ui/sites/showup/ShowupConfigUI.java index 8e3c093b..7dc3d487 100644 --- a/client/src/main/java/ctbrec/ui/sites/showup/ShowupConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/showup/ShowupConfigUI.java @@ -78,7 +78,7 @@ public class ShowupConfigUI extends AbstractConfigUI { Label tabsLabel = new Label("Tabs"); layout.add(tabsLabel, 0, row); - List tabs = getShowupTabs(); + List tabs = getEnabledTabs(); HBox checkboxContainer = new HBox(10); @@ -128,7 +128,7 @@ public class ShowupConfigUI extends AbstractConfigUI { save(); } - private List getShowupTabs() { + private List getEnabledTabs() { return new ArrayList<>(Config.getInstance().getSettings().showupTabs); } diff --git a/client/src/main/java/ctbrec/ui/sites/showup/ShowupTabProvider.java b/client/src/main/java/ctbrec/ui/sites/showup/ShowupTabProvider.java index 27f16a06..5dc21f0b 100644 --- a/client/src/main/java/ctbrec/ui/sites/showup/ShowupTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/showup/ShowupTabProvider.java @@ -27,7 +27,7 @@ public class ShowupTabProvider extends AbstractTabProvider { tabMap.put("female", "Women"); tabMap.put("male", "Men"); tabMap.put("all", "All"); - List enabledTabs = getShowupTabs(); + List enabledTabs = getEnabledTabs(); for (String tab : enabledTabs) { String title = tabMap.getOrDefault(tab, tab); tabs.add(createTab(title, tab)); @@ -50,7 +50,7 @@ public class ShowupTabProvider extends AbstractTabProvider { tab.setRecorder(site.getRecorder()); return tab; } - private List getShowupTabs() { + private List getEnabledTabs() { return new ArrayList<>(Config.getInstance().getSettings().showupTabs); } diff --git a/client/src/main/java/ctbrec/ui/sites/streamate/StreamateConfigUI.java b/client/src/main/java/ctbrec/ui/sites/streamate/StreamateConfigUI.java index 6ee5c3e2..0a05410c 100644 --- a/client/src/main/java/ctbrec/ui/sites/streamate/StreamateConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/streamate/StreamateConfigUI.java @@ -78,7 +78,7 @@ public class StreamateConfigUI extends AbstractConfigUI { Label tabsLabel = new Label("Tabs"); layout.add(tabsLabel, 0, row); - List tabs = getStreamateTabs(); + List tabs = getEnabledTabs(); GridPane checkboxGrid = new GridPane(); checkboxGrid.setHgap(10); @@ -145,7 +145,7 @@ public class StreamateConfigUI extends AbstractConfigUI { save(); } - private List getStreamateTabs() { + private List getEnabledTabs() { return new ArrayList<>(Config.getInstance().getSettings().streamateTabs); } diff --git a/client/src/main/java/ctbrec/ui/sites/streamate/StreamateTabProvider.java b/client/src/main/java/ctbrec/ui/sites/streamate/StreamateTabProvider.java index 57959d8b..8af9bcda 100644 --- a/client/src/main/java/ctbrec/ui/sites/streamate/StreamateTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/streamate/StreamateTabProvider.java @@ -31,7 +31,7 @@ public class StreamateTabProvider extends AbstractTabProvider { tabMap.put("tm2f,tf2m", "Trans"); tabMap.put("fn", "Girls New"); tabMap.put("new", "New"); - List enabledTabs = getStreamateTabs(); + List enabledTabs = getEnabledTabs(); for (String tab : enabledTabs) { String title = tabMap.getOrDefault(tab, tab); switch (tab) { @@ -71,7 +71,7 @@ public class StreamateTabProvider extends AbstractTabProvider { return tab; } - private List getStreamateTabs() { + private List getEnabledTabs() { return new ArrayList<>(Config.getInstance().getSettings().streamateTabs); } diff --git a/client/src/main/java/ctbrec/ui/sites/streamray/StreamrayConfigUI.java b/client/src/main/java/ctbrec/ui/sites/streamray/StreamrayConfigUI.java index be2b75ec..18e9f53f 100644 --- a/client/src/main/java/ctbrec/ui/sites/streamray/StreamrayConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/streamray/StreamrayConfigUI.java @@ -61,7 +61,7 @@ public class StreamrayConfigUI extends AbstractConfigUI { Label tabsLabel = new Label("Tabs"); layout.add(tabsLabel, 0, row); - List tabs = getStreamrayTabs(); + List tabs = getEnabledTabs(); HBox checkboxContainer = new HBox(10); @@ -103,7 +103,7 @@ public class StreamrayConfigUI extends AbstractConfigUI { save(); } - private List getStreamrayTabs() { + private List getEnabledTabs() { return new ArrayList<>(Config.getInstance().getSettings().streamrayTabs); } diff --git a/client/src/main/java/ctbrec/ui/sites/streamray/StreamrayTabProvider.java b/client/src/main/java/ctbrec/ui/sites/streamray/StreamrayTabProvider.java index 2c555d03..59ca3eb5 100644 --- a/client/src/main/java/ctbrec/ui/sites/streamray/StreamrayTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/streamray/StreamrayTabProvider.java @@ -32,7 +32,7 @@ public class StreamrayTabProvider extends AbstractTabProvider { tabMap.put("F", "Female"); tabMap.put("M", "Male"); tabMap.put("TS", "Trans"); - List enabledTabs = getStreamrayTabs(); + List enabledTabs = getEnabledTabs(); for (String tab : enabledTabs) { String title = tabMap.getOrDefault(tab, tab); tabs.add(createTab(title, m -> Objects.equals(tab, m.getGender()))); @@ -66,7 +66,7 @@ public class StreamrayTabProvider extends AbstractTabProvider { public Tab getFollowedTab() { return followedTab; } - private List getStreamrayTabs() { + private List getEnabledTabs() { return new ArrayList<>(Config.getInstance().getSettings().streamrayTabs); } 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 8d3180b6..66887948 100644 --- a/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatConfigUI.java @@ -118,7 +118,7 @@ public class StripchatConfigUI extends AbstractConfigUI { Label tabsLabel = new Label("Tabs"); layout.add(tabsLabel, 0, row); - List tabs = getStripchatTabs(); + List tabs = getEnabledTabs(); GridPane checkboxGrid = new GridPane(); checkboxGrid.setHgap(10); @@ -207,7 +207,7 @@ public class StripchatConfigUI extends AbstractConfigUI { save(); } - private List getStripchatTabs() { + private List getEnabledTabs() { return new ArrayList<>(Config.getInstance().getSettings().stripchatTabs); } diff --git a/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatTabProvider.java b/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatTabProvider.java index bee6d5eb..ecd71e9b 100644 --- a/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatTabProvider.java @@ -41,7 +41,7 @@ public class StripchatTabProvider extends AbstractTabProvider { tabMap.put("couples", "Couples"); tabMap.put("men", "Boys"); tabMap.put("trans", "Trans"); - List enabledTabs = getStripchatTabs(); + List enabledTabs = getEnabledTabs(); for (String tab : enabledTabs) { String title = tabMap.getOrDefault(tab, tab); if (tab.contains("auto")) { @@ -73,7 +73,7 @@ public class StripchatTabProvider extends AbstractTabProvider { return tab; } - private List getStripchatTabs() { + private List getEnabledTabs() { return new ArrayList<>(Config.getInstance().getSettings().stripchatTabs); } diff --git a/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamConfigUI.java b/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamConfigUI.java index 0e7e9b07..ef33585e 100644 --- a/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamConfigUI.java @@ -77,7 +77,7 @@ public class XloveCamConfigUI extends AbstractConfigUI { Label tabsLabel = new Label("Tabs"); layout.add(tabsLabel, 0, row); - List tabs = getXlovecamTabs(); + List tabs = getEnabledTabs(); GridPane checkboxGrid = new GridPane(); checkboxGrid.setHgap(10); @@ -149,7 +149,7 @@ public class XloveCamConfigUI extends AbstractConfigUI { save(); } - private List getXlovecamTabs() { + private List getEnabledTabs() { return new ArrayList<>(Config.getInstance().getSettings().xlovecamTabs); } diff --git a/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamTabProvider.java b/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamTabProvider.java index 79daed9a..0933fdbe 100644 --- a/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamTabProvider.java @@ -47,7 +47,7 @@ public class XloveCamTabProvider extends AbstractTabProvider { tabMap.put("3", "Lesbian"); tabMap.put("7", "Male"); tabMap.put("5", "Trans"); - List enabledTabs = getXlovecamTabs(); + List enabledTabs = getEnabledTabs(); for (String tab : enabledTabs) { String title = tabMap.getOrDefault(tab, tab); updateService = new XloveCamUpdateService(xloveCam, Map.of(FILTER_PARAM, tab)); @@ -63,7 +63,7 @@ public class XloveCamTabProvider extends AbstractTabProvider { return tab; } - private List getXlovecamTabs() { + private List getEnabledTabs() { return new ArrayList<>(Config.getInstance().getSettings().xlovecamTabs); } diff --git a/common/src/main/java/ctbrec/Settings.java b/common/src/main/java/ctbrec/Settings.java index 29badd3c..ebe79b5e 100644 --- a/common/src/main/java/ctbrec/Settings.java +++ b/common/src/main/java/ctbrec/Settings.java @@ -89,6 +89,7 @@ public class Settings { public String ffmpegFileSuffix = "ts"; public String flirt4freePassword; public String flirt4freeUsername; + public Set flirt4freeTabs = new HashSet<>(Arrays.asList("female")); public String fontFamily = "Sans-Serif"; public int fontSize = 14; public String hlsdlExecutable = "hlsdl"; diff --git a/common/src/main/java/ctbrec/sites/chaturbate/ChaturbateModel.java b/common/src/main/java/ctbrec/sites/chaturbate/ChaturbateModel.java index 39d27a61..26f2a232 100644 --- a/common/src/main/java/ctbrec/sites/chaturbate/ChaturbateModel.java +++ b/common/src/main/java/ctbrec/sites/chaturbate/ChaturbateModel.java @@ -6,7 +6,6 @@ import com.iheartradio.m3u8.data.MasterPlaylist; import com.iheartradio.m3u8.data.Playlist; import com.iheartradio.m3u8.data.PlaylistData; import ctbrec.AbstractModel; -import ctbrec.Config; import ctbrec.StringUtil; import ctbrec.io.HttpException; import ctbrec.io.json.ObjectMapperFactory;