From ba0cc591d38f34713860527f3d6e9b087fb13460 Mon Sep 17 00:00:00 2001 From: 0xboobface <0xboobface@gmail.com> Date: Wed, 7 Nov 2018 13:49:56 +0100 Subject: [PATCH] Add setting for HTTP User-Agent header Replace all occurences of the User-Agent header with the user-agent string from the settings --- src/main/java/ctbrec/Settings.java | 1 + src/main/java/ctbrec/sites/bonga/BongaCams.java | 2 +- src/main/java/ctbrec/sites/bonga/BongaCamsHttpClient.java | 7 ++++--- src/main/java/ctbrec/sites/bonga/BongaCamsLoginDialog.java | 1 + src/main/java/ctbrec/sites/bonga/BongaCamsModel.java | 5 +++-- .../java/ctbrec/sites/bonga/BongaCamsUpdateService.java | 3 ++- src/main/java/ctbrec/sites/cam4/Cam4LoginDialog.java | 1 + src/main/java/ctbrec/sites/camsoda/CamsodaModel.java | 7 ++++--- src/main/java/ctbrec/sites/chaturbate/ChaturbateModel.java | 3 ++- 9 files changed, 19 insertions(+), 11 deletions(-) diff --git a/src/main/java/ctbrec/Settings.java b/src/main/java/ctbrec/Settings.java index 96e878bc..a92327a4 100644 --- a/src/main/java/ctbrec/Settings.java +++ b/src/main/java/ctbrec/Settings.java @@ -17,6 +17,7 @@ public class Settings { public boolean localRecording = true; public int httpPort = 8080; public int httpTimeout = 10000; + public String httpUserAgent = "Mozilla/5.0 Gecko/20100101 Firefox/62.0"; public String httpServer = "localhost"; public String recordingsDir = System.getProperty("user.home") + File.separator + "ctbrec"; public String mediaPlayer = "/usr/bin/mpv"; diff --git a/src/main/java/ctbrec/sites/bonga/BongaCams.java b/src/main/java/ctbrec/sites/bonga/BongaCams.java index cead29b9..b518c3ff 100644 --- a/src/main/java/ctbrec/sites/bonga/BongaCams.java +++ b/src/main/java/ctbrec/sites/bonga/BongaCams.java @@ -69,7 +69,7 @@ public class BongaCams extends AbstractSite { .build(); Request request = new Request.Builder() .url(url) - .addHeader("User-Agent", "Mozilla/5.0 (Android 9.0; Mobile; rv:61.0) Gecko/61.0 Firefox/61.0") + .addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent) .addHeader("Accept", "application/json, text/javascript, */*") .addHeader("Accept-Language", "en") .addHeader("Referer", BongaCams.BASE_URL) diff --git a/src/main/java/ctbrec/sites/bonga/BongaCamsHttpClient.java b/src/main/java/ctbrec/sites/bonga/BongaCamsHttpClient.java index 165ef4ea..4606f830 100644 --- a/src/main/java/ctbrec/sites/bonga/BongaCamsHttpClient.java +++ b/src/main/java/ctbrec/sites/bonga/BongaCamsHttpClient.java @@ -15,6 +15,7 @@ import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import ctbrec.Config; import ctbrec.io.HttpClient; import javafx.application.Platform; import okhttp3.Cookie; @@ -125,7 +126,7 @@ public class BongaCamsHttpClient extends HttpClient { .build(); Request request = new Request.Builder() .url(url) - .addHeader("User-Agent", "Mozilla/5.0 (Android 9.0; Mobile; rv:61.0) Gecko/61.0 Firefox/61.0") + .addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent) .addHeader("Accept", "application/json, text/javascript, */*") .addHeader("Accept-Language", "en") .addHeader("Referer", BongaCams.BASE_URL) @@ -154,7 +155,7 @@ 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") - .addHeader("User-Agent", "Mozilla/5.0 (Android 9.0; Mobile; rv:61.0) Gecko/61.0 Firefox/61.0") + .addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent) .addHeader("Accept", "application/json, text/javascript, */*") .addHeader("Accept-Language", "en") .addHeader("Referer", BongaCams.BASE_URL) @@ -211,7 +212,7 @@ public class BongaCamsHttpClient extends HttpClient { // Request request = new Request.Builder() // .url(url) // .post(body) - // .addHeader("User-Agent", "Mozilla/5.0 (Android 9.0; Mobile; rv:61.0) Gecko/61.0 Firefox/61.0") + // .addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent) // .addHeader("Accept","application/json") // .addHeader("Accept-Language", "en") // .addHeader("Referer", BongaCams.BASE_URL) diff --git a/src/main/java/ctbrec/sites/bonga/BongaCamsLoginDialog.java b/src/main/java/ctbrec/sites/bonga/BongaCamsLoginDialog.java index 0d609311..626667d3 100644 --- a/src/main/java/ctbrec/sites/bonga/BongaCamsLoginDialog.java +++ b/src/main/java/ctbrec/sites/bonga/BongaCamsLoginDialog.java @@ -60,6 +60,7 @@ public class BongaCamsLoginDialog { WebView browser = new WebView(); WebEngine webEngine = browser.getEngine(); webEngine.setJavaScriptEnabled(true); + webEngine.setUserAgent(Config.getInstance().getSettings().httpUserAgent); webEngine.locationProperty().addListener((obs, oldV, newV) -> { try { URL _url = new URL(newV); diff --git a/src/main/java/ctbrec/sites/bonga/BongaCamsModel.java b/src/main/java/ctbrec/sites/bonga/BongaCamsModel.java index f4bd92e4..da19f5b0 100644 --- a/src/main/java/ctbrec/sites/bonga/BongaCamsModel.java +++ b/src/main/java/ctbrec/sites/bonga/BongaCamsModel.java @@ -22,6 +22,7 @@ import com.iheartradio.m3u8.data.PlaylistData; import com.iheartradio.m3u8.data.StreamInfo; import ctbrec.AbstractModel; +import ctbrec.Config; import ctbrec.recorder.download.StreamSource; import ctbrec.sites.Site; import okhttp3.FormBody; @@ -102,7 +103,7 @@ public class BongaCamsModel extends AbstractModel { .build(); Request request = new Request.Builder() .url(url) - .addHeader("User-Agent", "Mozilla/5.0 (Android 9.0; Mobile; rv:61.0) Gecko/61.0 Firefox/61.0") + .addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent) .addHeader("Accept", "application/json, text/javascript, */*") .addHeader("Accept-Language", "en") .addHeader("Referer", BongaCams.BASE_URL) @@ -143,7 +144,7 @@ public class BongaCamsModel extends AbstractModel { .build(); Request request = new Request.Builder() .url(url) - .addHeader("User-Agent", "Mozilla/5.0 (Android 9.0; Mobile; rv:61.0) Gecko/61.0 Firefox/61.0") + .addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent) .addHeader("Accept", "application/json, text/javascript, */*") .addHeader("Accept-Language", "en") .addHeader("Referer", BongaCams.BASE_URL + '/' + getName()) diff --git a/src/main/java/ctbrec/sites/bonga/BongaCamsUpdateService.java b/src/main/java/ctbrec/sites/bonga/BongaCamsUpdateService.java index 9a230f1e..d58cf651 100644 --- a/src/main/java/ctbrec/sites/bonga/BongaCamsUpdateService.java +++ b/src/main/java/ctbrec/sites/bonga/BongaCamsUpdateService.java @@ -9,6 +9,7 @@ import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import ctbrec.Config; import ctbrec.Model; import ctbrec.ui.PaginatedScheduledService; import javafx.concurrent.Task; @@ -36,7 +37,7 @@ public class BongaCamsUpdateService extends PaginatedScheduledService { LOG.debug("Fetching page {}", _url); Request request = new Request.Builder() .url(_url) - .addHeader("User-Agent", "Mozilla/5.0 (Android 9.0; Mobile; rv:61.0) Gecko/61.0 Firefox/61.0") + .addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent) .addHeader("Accept", "application/json, text/javascript, */*") .addHeader("Accept-Language", "en") .addHeader("Referer", bongaCams.getBaseUrl()) diff --git a/src/main/java/ctbrec/sites/cam4/Cam4LoginDialog.java b/src/main/java/ctbrec/sites/cam4/Cam4LoginDialog.java index c170af83..bb862bed 100644 --- a/src/main/java/ctbrec/sites/cam4/Cam4LoginDialog.java +++ b/src/main/java/ctbrec/sites/cam4/Cam4LoginDialog.java @@ -60,6 +60,7 @@ public class Cam4LoginDialog { WebView browser = new WebView(); WebEngine webEngine = browser.getEngine(); webEngine.setJavaScriptEnabled(true); + webEngine.setUserAgent(Config.getInstance().getSettings().httpUserAgent); webEngine.locationProperty().addListener((obs, oldV, newV) -> { try { URL _url = new URL(newV); diff --git a/src/main/java/ctbrec/sites/camsoda/CamsodaModel.java b/src/main/java/ctbrec/sites/camsoda/CamsodaModel.java index 1fe5beeb..fb2b7aff 100644 --- a/src/main/java/ctbrec/sites/camsoda/CamsodaModel.java +++ b/src/main/java/ctbrec/sites/camsoda/CamsodaModel.java @@ -25,6 +25,7 @@ import com.iheartradio.m3u8.data.PlaylistData; import com.iheartradio.m3u8.data.StreamInfo; import ctbrec.AbstractModel; +import ctbrec.Config; import ctbrec.recorder.download.StreamSource; import ctbrec.sites.Site; import okhttp3.FormBody; @@ -181,7 +182,7 @@ public class CamsodaModel extends AbstractModel { .url(url) .post(body) .addHeader("Referer", Camsoda.BASE_URI + '/' + getName()) - .addHeader("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0") + .addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent) .addHeader("Accept", "application/json, text/plain, */*") .addHeader("Accept-Language", "en") .addHeader("X-CSRF-Token", csrfToken) @@ -203,7 +204,7 @@ public class CamsodaModel extends AbstractModel { .url(url) .post(RequestBody.create(null, "")) .addHeader("Referer", Camsoda.BASE_URI + '/' + getName()) - .addHeader("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0") + .addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent) .addHeader("Accept", "application/json, text/plain, */*") .addHeader("Accept-Language", "en") .addHeader("X-CSRF-Token", csrfToken) @@ -227,7 +228,7 @@ public class CamsodaModel extends AbstractModel { .url(url) .post(RequestBody.create(null, "")) .addHeader("Referer", Camsoda.BASE_URI + '/' + getName()) - .addHeader("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0") + .addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent) .addHeader("Accept", "application/json, text/plain, */*") .addHeader("Accept-Language", "en") .addHeader("X-CSRF-Token", csrfToken) diff --git a/src/main/java/ctbrec/sites/chaturbate/ChaturbateModel.java b/src/main/java/ctbrec/sites/chaturbate/ChaturbateModel.java index 9b573fb2..d635994b 100644 --- a/src/main/java/ctbrec/sites/chaturbate/ChaturbateModel.java +++ b/src/main/java/ctbrec/sites/chaturbate/ChaturbateModel.java @@ -17,6 +17,7 @@ import com.iheartradio.m3u8.data.MasterPlaylist; import com.iheartradio.m3u8.data.PlaylistData; import ctbrec.AbstractModel; +import ctbrec.Config; import ctbrec.recorder.download.StreamSource; import ctbrec.sites.Site; import okhttp3.Request; @@ -147,7 +148,7 @@ public class ChaturbateModel extends AbstractModel { .header("Accept", "*/*") .header("Accept-Language", "en-US,en;q=0.5") .header("Referer", getUrl()) - .header("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0") + .header("User-Agent", Config.getInstance().getSettings().httpUserAgent) .header("X-CSRFToken", ((ChaturbateHttpClient)site.getHttpClient()).getToken()) .header("X-Requested-With", "XMLHttpRequest") .build();