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 0214dad3..bd83ceb0 100644 --- a/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsConfigUI.java @@ -46,6 +46,7 @@ public class BongaCamsConfigUI extends AbstractConfigUI { layout.add(new Label("BongaCams User"), 0, row); TextField username = new TextField(settings.bongaUsername); + username.setPrefWidth(300); username.textProperty().addListener((ob, o, n) -> { if(!n.equals(Config.getInstance().getSettings().bongaUsername)) { Config.getInstance().getSettings().bongaUsername = username.getText(); @@ -73,12 +74,25 @@ public class BongaCamsConfigUI extends AbstractConfigUI { GridPane.setColumnSpan(password, 2); layout.add(password, 1, row++); + layout.add(new Label("Bongacams Base URL"), 0, row); + TextField baseUrl = new TextField(); + baseUrl.setText(Config.getInstance().getSettings().bongacamsBaseUrl); + baseUrl.textProperty().addListener((ob, o, n) -> { + Config.getInstance().getSettings().bongacamsBaseUrl = baseUrl.getText(); + save(); + }); + GridPane.setFillWidth(baseUrl, true); + GridPane.setHgrow(baseUrl, Priority.ALWAYS); + GridPane.setColumnSpan(baseUrl, 2); + layout.add(baseUrl, 1, row++); + Button createAccount = new Button("Create new Account"); createAccount.setOnAction((e) -> DesktopIntegration.open(bongaCams.getAffiliateLink())); layout.add(createAccount, 1, row++); GridPane.setColumnSpan(createAccount, 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(baseUrl, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); GridPane.setMargin(createAccount, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); return layout; } diff --git a/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsElectronLoginDialog.java b/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsElectronLoginDialog.java index 2ed49de3..0627e4aa 100644 --- a/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsElectronLoginDialog.java +++ b/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsElectronLoginDialog.java @@ -24,7 +24,7 @@ public class BongaCamsElectronLoginDialog { private static final transient Logger LOG = LoggerFactory.getLogger(BongaCamsElectronLoginDialog.class); public static final String DOMAIN = "bongacams.com"; - public static final String URL = BongaCams.BASE_URL + "/login"; + public static final String URL = BongaCams.baseUrl + "/login"; private CookieJar cookieJar; private ExternalBrowser browser; @@ -102,7 +102,7 @@ public class BongaCamsElectronLoginDialog { b.secure(); } Cookie c = b.build(); - cookieJar.saveFromResponse(HttpUrl.parse(BongaCams.BASE_URL), Collections.singletonList(c)); + cookieJar.saveFromResponse(HttpUrl.parse(BongaCams.baseUrl), Collections.singletonList(c)); } } } 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 30b65aa8..33068f5c 100644 --- a/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsTabProvider.java @@ -27,32 +27,32 @@ public class BongaCamsTabProvider extends TabProvider { List tabs = new ArrayList<>(); // female - String url = BongaCams.BASE_URL + "/tools/listing_v3.php?livetab=female&online_only=true&is_mobile=true&offset="; + String url = BongaCams.baseUrl + "/tools/listing_v3.php?livetab=female&online_only=true&is_mobile=true&offset="; BongaCamsUpdateService updateService = new BongaCamsUpdateService(bongaCams, url); tabs.add(createTab("Female", updateService)); // male - url = BongaCams.BASE_URL + "/tools/listing_v3.php?livetab=male&online_only=true&is_mobile=true&offset="; + url = BongaCams.baseUrl + "/tools/listing_v3.php?livetab=male&online_only=true&is_mobile=true&offset="; updateService = new BongaCamsUpdateService(bongaCams, url); tabs.add(createTab("Male", updateService)); // couples - url = BongaCams.BASE_URL + "/tools/listing_v3.php?livetab=couples&online_only=true&is_mobile=true&offset="; + url = BongaCams.baseUrl + "/tools/listing_v3.php?livetab=couples&online_only=true&is_mobile=true&offset="; updateService = new BongaCamsUpdateService(bongaCams, url); tabs.add(createTab("Couples", updateService)); // trans - url = BongaCams.BASE_URL + "/tools/listing_v3.php?livetab=transsexual&online_only=true&is_mobile=true&offset="; + url = BongaCams.baseUrl + "/tools/listing_v3.php?livetab=transsexual&online_only=true&is_mobile=true&offset="; updateService = new BongaCamsUpdateService(bongaCams, url); tabs.add(createTab("Transsexual", updateService)); // new - url = BongaCams.BASE_URL + "/tools/listing_v3.php?livetab=new-models&online_only=true&is_mobile=true&offset="; + url = BongaCams.baseUrl + "/tools/listing_v3.php?livetab=new-models&online_only=true&is_mobile=true&offset="; updateService = new BongaCamsUpdateService(bongaCams, url); tabs.add(createTab("New", updateService)); // friends - url = BongaCams.BASE_URL + "/tools/listing_v3.php?livetab=friends&online_only=true&offset="; + url = BongaCams.baseUrl + "/tools/listing_v3.php?livetab=friends&online_only=true&offset="; updateService = new BongaCamsUpdateService(bongaCams, url); friendsTab = new BongaCamsFriendsTab("Friends", updateService, bongaCams); friendsTab.setRecorder(recorder); diff --git a/common/src/main/java/ctbrec/Settings.java b/common/src/main/java/ctbrec/Settings.java index 94643cdc..03229332 100644 --- a/common/src/main/java/ctbrec/Settings.java +++ b/common/src/main/java/ctbrec/Settings.java @@ -50,6 +50,7 @@ public class Settings { public String chaturbateBaseUrl = "https://chaturbate.com"; public String bongaUsername = ""; public String bongaPassword = ""; + public String bongacamsBaseUrl = "https://bongacams.com"; public String mfcUsername = ""; public String mfcPassword = ""; public String mfcBaseUrl = "https://www.myfreecams.com"; diff --git a/common/src/main/java/ctbrec/sites/bonga/BongaCams.java b/common/src/main/java/ctbrec/sites/bonga/BongaCams.java index 8f707078..f60fe622 100644 --- a/common/src/main/java/ctbrec/sites/bonga/BongaCams.java +++ b/common/src/main/java/ctbrec/sites/bonga/BongaCams.java @@ -27,10 +27,15 @@ public class BongaCams extends AbstractSite { private static final transient Logger LOG = LoggerFactory.getLogger(BongaCams.class); - public static final String BASE_URL = "https://bongacams.com"; + public static String baseUrl = "https://bongacams.com"; private BongaCamsHttpClient httpClient; + @Override + public void init() throws IOException { + baseUrl = Config.getInstance().getSettings().bongacamsBaseUrl; + } + @Override public String getName() { return "BongaCams"; @@ -38,7 +43,7 @@ public class BongaCams extends AbstractSite { @Override public String getBaseUrl() { - return BASE_URL; + return baseUrl; } @Override @@ -50,7 +55,7 @@ public class BongaCams extends AbstractSite { public Model createModel(String name) { BongaCamsModel model = new BongaCamsModel(); model.setName(name); - model.setUrl(BASE_URL + '/' + name); + model.setUrl(baseUrl + '/' + name); model.setDescription(""); model.setSite(this); return model; @@ -59,7 +64,7 @@ public class BongaCams extends AbstractSite { @Override public Double getTokenBalance() throws IOException { int userId = ((BongaCamsHttpClient)getHttpClient()).getUserId(); - String url = BongaCams.BASE_URL + "/tools/amf.php"; + String url = BongaCams.baseUrl + "/tools/amf.php"; RequestBody body = new FormBody.Builder() .add("method", "ping") .add("args[]", Integer.toString(userId)) @@ -69,7 +74,7 @@ public class BongaCams extends AbstractSite { .addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent) .addHeader("Accept", "application/json, text/javascript, */*") .addHeader("Accept-Language", "en") - .addHeader("Referer", BongaCams.BASE_URL) + .addHeader("Referer", BongaCams.baseUrl) .addHeader("X-Requested-With", "XMLHttpRequest") .post(body) .build(); @@ -106,10 +111,6 @@ public class BongaCams extends AbstractSite { return httpClient; } - @Override - public void init() throws IOException { - } - @Override public void shutdown() { if(httpClient != null) { @@ -139,13 +140,13 @@ public class BongaCams extends AbstractSite { @Override public List search(String q) throws IOException, InterruptedException { - String url = BASE_URL + "/tools/listing_v3.php?offset=0&model_search[display_name][text]=" + URLEncoder.encode(q, "utf-8"); + String url = baseUrl + "/tools/listing_v3.php?offset=0&model_search[display_name][text]=" + URLEncoder.encode(q, "utf-8"); Request req = new Request.Builder() .url(url) .addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent) .addHeader("Accept", "application/json, text/javascript, */*") .addHeader("Accept-Language", "en") - .addHeader("Referer", BongaCams.BASE_URL) + .addHeader("Referer", BongaCams.baseUrl) .addHeader("X-Requested-With", "XMLHttpRequest") .build(); try(Response response = getHttpClient().execute(req)) { diff --git a/common/src/main/java/ctbrec/sites/bonga/BongaCamsHttpClient.java b/common/src/main/java/ctbrec/sites/bonga/BongaCamsHttpClient.java index 9f77da35..e7cff3db 100644 --- a/common/src/main/java/ctbrec/sites/bonga/BongaCamsHttpClient.java +++ b/common/src/main/java/ctbrec/sites/bonga/BongaCamsHttpClient.java @@ -77,7 +77,7 @@ public class BongaCamsHttpClient extends HttpClient { String modelName = getAnyModelName(); // we request the roomData of a random model, because it contains // user data, if the user is logged in, which we can use to verify, that the login worked - String url = BongaCams.BASE_URL + "/tools/amf.php"; + String url = BongaCams.baseUrl + "/tools/amf.php"; RequestBody body = new FormBody.Builder() .add("method", "getRoomData") .add("args[]", modelName) @@ -90,7 +90,7 @@ public class BongaCamsHttpClient extends HttpClient { .addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent) .addHeader("Accept", "application/json, text/javascript, */*") .addHeader("Accept-Language", "en") - .addHeader("Referer", BongaCams.BASE_URL) + .addHeader("Referer", BongaCams.baseUrl) .addHeader("X-Requested-With", "XMLHttpRequest") .post(body) .build(); @@ -115,11 +115,11 @@ public class BongaCamsHttpClient extends HttpClient { */ private String getAnyModelName() throws IOException { Request request = new Request.Builder() - .url(BongaCams.BASE_URL + "/tools/listing_v3.php?livetab=female&online_only=true&is_mobile=true&offset=0") + .url(BongaCams.baseUrl + "/tools/listing_v3.php?livetab=female&online_only=true&is_mobile=true&offset=0") .addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent) .addHeader("Accept", "application/json, text/javascript, */*") .addHeader("Accept-Language", "en") - .addHeader("Referer", BongaCams.BASE_URL) + .addHeader("Referer", BongaCams.baseUrl) .addHeader("X-Requested-With", "XMLHttpRequest") .build(); try(Response response = execute(request)) { diff --git a/common/src/main/java/ctbrec/sites/bonga/BongaCamsModel.java b/common/src/main/java/ctbrec/sites/bonga/BongaCamsModel.java index 37d21d9c..0b9e05f6 100644 --- a/common/src/main/java/ctbrec/sites/bonga/BongaCamsModel.java +++ b/common/src/main/java/ctbrec/sites/bonga/BongaCamsModel.java @@ -45,6 +45,19 @@ public class BongaCamsModel extends AbstractModel { private List streamSources = new ArrayList<>(); private int[] resolution; + // @Override + // public boolean isOnline(boolean ignoreCache) throws IOException, ExecutionException, InterruptedException { + // if(ignoreCache) { + // String url = BongaCams.baseUrl + "/profile/" + getName(); + // Request req = new Request.Builder().url(url).build(); + // try(Response resp = site.getHttpClient().execute(req)) { + // String body = resp.body().string(); + // online = !body.contains("class=\"badge_online __hidden\""); + // } + // } + // return online; + // } + @Override public boolean isOnline(boolean ignoreCache) throws IOException, ExecutionException, InterruptedException { if(ignoreCache) { @@ -63,7 +76,7 @@ public class BongaCamsModel extends AbstractModel { } private JSONObject getRoomData() throws IOException { - String url = BongaCams.BASE_URL + "/tools/amf.php"; + String url = BongaCams.baseUrl + "/tools/amf.php"; RequestBody body = new FormBody.Builder() .add("method", "getRoomData") .add("args[]", getName()) @@ -74,7 +87,7 @@ public class BongaCamsModel extends AbstractModel { .addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent) .addHeader("Accept", "application/json, text/javascript, */*") .addHeader("Accept-Language", "en") - .addHeader("Referer", BongaCams.BASE_URL) + .addHeader("Referer", BongaCams.baseUrl) .addHeader("X-Requested-With", "XMLHttpRequest") .post(body) .build(); @@ -163,7 +176,7 @@ public class BongaCamsModel extends AbstractModel { @Override public void receiveTip(Double tokens) throws IOException { - String url = BongaCams.BASE_URL + "/chat-ajax-amf-service?" + System.currentTimeMillis(); + String url = BongaCams.baseUrl + "/chat-ajax-amf-service?" + System.currentTimeMillis(); int userId = ((BongaCamsHttpClient)site.getHttpClient()).getUserId(); RequestBody body = new FormBody.Builder() .add("method", "tipModel") @@ -177,7 +190,7 @@ public class BongaCamsModel extends AbstractModel { .addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent) .addHeader("Accept", "application/json, text/javascript, */*") .addHeader("Accept-Language", "en") - .addHeader("Referer", BongaCams.BASE_URL + '/' + getName()) + .addHeader("Referer", BongaCams.baseUrl + '/' + getName()) .addHeader("X-Requested-With", "XMLHttpRequest") .post(body) .build(); @@ -260,7 +273,7 @@ public class BongaCamsModel extends AbstractModel { .url(getUrl()) .header("Accept", "*/*") .header("Accept-Language", "en-US,en;q=0.5") - .header("Referer", BongaCams.BASE_URL) + .header("Referer", BongaCams.baseUrl) .header("User-Agent", Config.getInstance().getSettings().httpUserAgent) .build(); try(Response resp = site.getHttpClient().execute(req)) {