forked from j62/ctbrec
1
0
Fork 0

Add setting to change the base URL for LiveJasmin

This setting is for users, which are blocked for the main domain, like
users behind the great chinese wall.
This commit is contained in:
0xboobface 2019-01-23 16:25:02 +01:00
parent a69b0926f0
commit 44bc5d02aa
13 changed files with 94 additions and 85 deletions

View File

@ -73,20 +73,17 @@ public class LiveJasminConfigUi extends AbstractConfigUI {
GridPane.setColumnSpan(password, 2); GridPane.setColumnSpan(password, 2);
layout.add(password, 1, row++); layout.add(password, 1, row++);
// layout.add(new Label("LiveJasmin Session ID"), 0, row); layout.add(new Label("LiveJasmin Base URL"), 0, row);
// TextField sessionId = new TextField(); TextField baseUrl = new TextField();
// sessionId.setText(Config.getInstance().getSettings().livejasminSession); baseUrl.setText(Config.getInstance().getSettings().livejasminBaseUrl);
// sessionId.textProperty().addListener((ob, o, n) -> { baseUrl.textProperty().addListener((ob, o, n) -> {
// if(!n.equals(Config.getInstance().getSettings().livejasminSession)) { Config.getInstance().getSettings().livejasminBaseUrl = baseUrl.getText();
// Config.getInstance().getSettings().livejasminSession = n; save();
// save(); });
// } GridPane.setFillWidth(baseUrl, true);
// }); GridPane.setHgrow(baseUrl, Priority.ALWAYS);
// GridPane.setFillWidth(sessionId, true); GridPane.setColumnSpan(baseUrl, 2);
// GridPane.setHgrow(sessionId, Priority.ALWAYS); layout.add(baseUrl, 1, row++);
// GridPane.setColumnSpan(sessionId, 2);
// GridPane.setMargin(sessionId, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN));
// layout.add(sessionId, 1, row++);
Button createAccount = new Button("Create new Account"); Button createAccount = new Button("Create new Account");
createAccount.setOnAction((e) -> DesktopIntegration.open(liveJasmin.getAffiliateLink())); createAccount.setOnAction((e) -> DesktopIntegration.open(liveJasmin.getAffiliateLink()));
@ -94,6 +91,7 @@ public class LiveJasminConfigUi extends AbstractConfigUI {
GridPane.setColumnSpan(createAccount, 2); GridPane.setColumnSpan(createAccount, 2);
GridPane.setMargin(username, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); GridPane.setMargin(username, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN));
GridPane.setMargin(password, 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)); GridPane.setMargin(createAccount, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN));
username.setPrefWidth(300); username.setPrefWidth(300);

View File

@ -20,7 +20,7 @@ import okhttp3.HttpUrl;
public class LiveJasminElectronLoginDialog { public class LiveJasminElectronLoginDialog {
private static final transient Logger LOG = LoggerFactory.getLogger(LiveJasminElectronLoginDialog.class); private static final transient Logger LOG = LoggerFactory.getLogger(LiveJasminElectronLoginDialog.class);
public static final String URL = LiveJasmin.BASE_URL + "/en/auth/login"; public static final String URL = LiveJasmin.baseUrl + "/en/auth/login";
private CookieJar cookieJar; private CookieJar cookieJar;
private ExternalBrowser browser; private ExternalBrowser browser;
@ -77,12 +77,12 @@ public class LiveJasminElectronLoginDialog {
JSONObject cookie = _cookies.getJSONObject(i); JSONObject cookie = _cookies.getJSONObject(i);
Builder b = new Cookie.Builder() Builder b = new Cookie.Builder()
.path("/") .path("/")
.domain("livejasmin.com") .domain(LiveJasmin.baseDomain)
.name(cookie.getString("name")) .name(cookie.getString("name"))
.value(cookie.getString("value")) .value(cookie.getString("value"))
.expiresAt(0); .expiresAt(0);
Cookie c = b.build(); Cookie c = b.build();
cookieJar.saveFromResponse(HttpUrl.parse(LiveJasmin.BASE_URL), Collections.singletonList(c)); cookieJar.saveFromResponse(HttpUrl.parse(LiveJasmin.baseUrl), Collections.singletonList(c));
} }
} }
if(url.contains("/member/")) { if(url.contains("/member/")) {

View File

@ -40,7 +40,7 @@ public class LiveJasminFollowedUpdateService extends PaginatedScheduledService {
public List<Model> call() throws IOException { public List<Model> call() throws IOException {
boolean loggedIn = SiteUiFactory.getUi(liveJasmin).login(); boolean loggedIn = SiteUiFactory.getUi(liveJasmin).login();
if(!loggedIn) { if(!loggedIn) {
throw new RuntimeException("Couldn't login on livejasmin.com"); throw new RuntimeException("Couldn't login to livejasmin");
} }
//String _url = url + ((page-1) * 36); // TODO find out how to switch pages //String _url = url + ((page-1) * 36); // TODO find out how to switch pages
//LOG.debug("Fetching page {}", url); //LOG.debug("Fetching page {}", url);

View File

@ -4,7 +4,6 @@ import java.io.IOException;
import ctbrec.Config; import ctbrec.Config;
import ctbrec.sites.Site; import ctbrec.sites.Site;
import ctbrec.ui.DesktopIntegration;
import ctbrec.ui.PaginatedScheduledService; import ctbrec.ui.PaginatedScheduledService;
import ctbrec.ui.ThumbOverviewTab; import ctbrec.ui.ThumbOverviewTab;
import javafx.concurrent.WorkerStateEvent; import javafx.concurrent.WorkerStateEvent;
@ -17,20 +16,16 @@ import javafx.scene.input.KeyEvent;
public class LiveJasminTab extends ThumbOverviewTab { public class LiveJasminTab extends ThumbOverviewTab {
protected Label status; protected Label status;
protected Button acknowledge = new Button("That's alright"); protected Button acknowledge = new Button("That's alright");
private Button createAccount = new Button("Create Account");
private boolean betaAcknowledged = Config.getInstance().getSettings().livejasminBetaAcknowledged; private boolean betaAcknowledged = Config.getInstance().getSettings().livejasminBetaAcknowledged;
public LiveJasminTab(String title, PaginatedScheduledService updateService, Site site) { public LiveJasminTab(String title, PaginatedScheduledService updateService, Site site) {
super(title, updateService, site); super(title, updateService, site);
if(!betaAcknowledged) { if(!betaAcknowledged) {
status = new Label("LiveJasmin is not fully functional. Live previews do not work.\n" status = new Label("LiveJasmin is not fully functional. Live previews do not work.");
+ "Also make sure, that you have an account and that you have entered your credentials.\n"
+ "Otherwise you might get errors.");
grid.getChildren().add(status); grid.getChildren().add(status);
grid.getChildren().add(acknowledge); grid.getChildren().add(acknowledge);
grid.getChildren().add(createAccount);
} else { } else {
status = new Label("Logging in..."); status = new Label("Loading...");
grid.getChildren().add(status); grid.getChildren().add(status);
} }
@ -41,17 +36,14 @@ public class LiveJasminTab extends ThumbOverviewTab {
Config.getInstance().save(); Config.getInstance().save();
} catch (IOException e1) { } catch (IOException e1) {
} }
status.setText("Logging in..."); status.setText("Loading...");
grid.getChildren().remove(acknowledge); grid.getChildren().remove(acknowledge);
grid.getChildren().remove(createAccount);
if(updateService != null) { if(updateService != null) {
updateService.cancel(); updateService.cancel();
updateService.reset(); updateService.reset();
updateService.restart(); updateService.restart();
} }
}); });
createAccount.setOnAction(e -> DesktopIntegration.open(site.getAffiliateLink()));
} }
@Override @Override
@ -64,7 +56,6 @@ public class LiveJasminTab extends ThumbOverviewTab {
if(Config.getInstance().getSettings().livejasminBetaAcknowledged) { if(Config.getInstance().getSettings().livejasminBetaAcknowledged) {
grid.getChildren().remove(status); grid.getChildren().remove(status);
grid.getChildren().remove(acknowledge); grid.getChildren().remove(acknowledge);
grid.getChildren().remove(createAccount);
super.onSuccess(); super.onSuccess();
} }
} }
@ -72,9 +63,8 @@ public class LiveJasminTab extends ThumbOverviewTab {
@Override @Override
protected void onFail(WorkerStateEvent event) { protected void onFail(WorkerStateEvent event) {
if(Config.getInstance().getSettings().livejasminBetaAcknowledged) { if(Config.getInstance().getSettings().livejasminBetaAcknowledged) {
status.setText("Login failed"); status.setText("Error");
grid.getChildren().remove(acknowledge); grid.getChildren().remove(acknowledge);
grid.getChildren().remove(createAccount);
super.onFail(event); super.onFail(event);
} }
} }

View File

@ -23,10 +23,10 @@ public class LiveJasminTabProvider extends TabProvider {
public List<Tab> getTabs(Scene scene) { public List<Tab> getTabs(Scene scene) {
List<Tab> tabs = new ArrayList<>(); List<Tab> tabs = new ArrayList<>();
tabs.add(createTab("Girls", liveJasmin.getBaseUrl() + "/en/girls/?listPageOrderType=most_popular")); tabs.add(createTab("Girls", liveJasmin.getBaseUrl() + "/en/girl/?listPageOrderType=most_popular"));
tabs.add(createTab("Girls HD", liveJasmin.getBaseUrl() + "/en/girls/hd/?listPageOrderType=most_popular")); tabs.add(createTab("Girls HD", liveJasmin.getBaseUrl() + "/en/girl/hd/?listPageOrderType=most_popular"));
tabs.add(createTab("Boys", liveJasmin.getBaseUrl() + "/en/boys/?listPageOrderType=most_popular")); tabs.add(createTab("Boys", liveJasmin.getBaseUrl() + "/en/boy/?listPageOrderType=most_popular"));
tabs.add(createTab("Boys HD", liveJasmin.getBaseUrl() + "/en/boys/hd/?listPageOrderType=most_popular")); tabs.add(createTab("Boys HD", liveJasmin.getBaseUrl() + "/en/boy/hd/?listPageOrderType=most_popular"));
followedTab = new LiveJasminFollowedTab(liveJasmin); followedTab = new LiveJasminFollowedTab(liveJasmin);
followedTab.setRecorder(liveJasmin.getRecorder()); followedTab.setRecorder(liveJasmin.getRecorder());

View File

@ -40,28 +40,24 @@ public class LiveJasminUpdateService extends PaginatedScheduledService {
protected Task<List<Model>> createTask() { protected Task<List<Model>> createTask() {
return new Task<List<Model>>() { return new Task<List<Model>>() {
@Override @Override
public List<Model> call() throws IOException, NotLoggedInExcetion { public List<Model> call() throws IOException {
//String _url = url + ((page-1) * 36); // TODO find out how to switch pages
if(!liveJasmin.credentialsAvailable() || !SiteUiFactory.getUi(liveJasmin).login()) {
throw new NotLoggedInExcetion();
}
// sort by popularity // sort by popularity
CookieJarImpl cookieJar = liveJasmin.getHttpClient().getCookieJar(); CookieJarImpl cookieJar = liveJasmin.getHttpClient().getCookieJar();
Cookie sortCookie = new Cookie.Builder() Cookie sortCookie = new Cookie.Builder()
.domain("livejasmin.com") .domain(LiveJasmin.baseDomain)
.name("listPageOrderType") .name("listPageOrderType")
.value("most_popular") .value("most_popular")
.build(); .build();
cookieJar.saveFromResponse(HttpUrl.parse("https://livejasmin.com"), Collections.singletonList(sortCookie)); cookieJar.saveFromResponse(HttpUrl.parse("https://" + LiveJasmin.baseDomain), Collections.singletonList(sortCookie));
// TODO find out how to switch pages
LOG.debug("Fetching page {}", url); LOG.debug("Fetching page {}", url);
Request request = new Request.Builder() Request request = new Request.Builder()
.url(url) .url(url)
.addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent) .addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent)
.addHeader("Accept", "application/json, text/javascript, */*") .addHeader("Accept", "application/json, text/javascript, */*")
.addHeader("Accept-Language", "en") .addHeader("Accept-Language", "en")
.addHeader("Referer", liveJasmin.getBaseUrl() + "/en/girls/") .addHeader("Referer", liveJasmin.getBaseUrl())
.addHeader("X-Requested-With", "XMLHttpRequest") .addHeader("X-Requested-With", "XMLHttpRequest")
.build(); .build();
try (Response response = liveJasmin.getHttpClient().execute(request)) { try (Response response = liveJasmin.getHttpClient().execute(request)) {

View File

@ -65,6 +65,7 @@ public class Settings {
public String cam4Password = ""; public String cam4Password = "";
public String livejasminUsername = ""; public String livejasminUsername = "";
public String livejasminPassword = ""; public String livejasminPassword = "";
public String livejasminBaseUrl = "https://www.livejasmin.com";
public boolean livejasminBetaAcknowledged = false; public boolean livejasminBetaAcknowledged = false;
public String streamateUsername = ""; public String streamateUsername = "";
public String streamatePassword = ""; public String streamatePassword = "";

View File

@ -27,4 +27,31 @@ public class StringUtil {
} }
return df.format(size) + ' ' + unit; return df.format(size) + ' ' + unit;
} }
public static String toHexString(byte[] bytes, int bytesPerRow) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < bytes.length; i += bytesPerRow) {
int length = bytes.length - i >= bytesPerRow ? bytesPerRow : bytes.length % bytesPerRow;
byte[] row = new byte[bytesPerRow];
System.arraycopy(bytes, i, row, 0, length);
for (int j = 0; j < length; j++) {
sb.append(toHexString(row[j]));
}
}
return sb.toString();
}
/**
* Converts one byte to its hex representation with leading zeros. E.g. 255 -> FF, 12 -> 0C
*
* @param b
* @return
*/
public static String toHexString(int b) {
String hex = Integer.toHexString(b & 0xFF);
if (hex.length() < 2) {
hex = "0" + hex;
}
return hex;
}
} }

View File

@ -18,12 +18,14 @@ import ctbrec.io.HtmlParser;
import ctbrec.io.HttpClient; import ctbrec.io.HttpClient;
import ctbrec.io.HttpException; import ctbrec.io.HttpException;
import ctbrec.sites.AbstractSite; import ctbrec.sites.AbstractSite;
import okhttp3.HttpUrl;
import okhttp3.Request; import okhttp3.Request;
import okhttp3.Response; import okhttp3.Response;
public class LiveJasmin extends AbstractSite { public class LiveJasmin extends AbstractSite {
public static final String BASE_URL = "https://www.livejasmin.com"; public static String baseUrl = "";
public static String baseDomain = "";
private HttpClient httpClient; private HttpClient httpClient;
@Override @Override
@ -33,12 +35,13 @@ public class LiveJasmin extends AbstractSite {
@Override @Override
public String getBaseUrl() { public String getBaseUrl() {
return BASE_URL; return baseUrl;
} }
@Override @Override
public String getAffiliateLink() { public String getAffiliateLink() {
return "https://awejmp.com/?siteId=jasmin&categoryName=girl&pageName=listpage&performerName=&prm[psid]=0xb00bface&prm[pstool]=205_1&prm[psprogram]=pps&prm[campaign_id]=&subAffId={SUBAFFID}&filters="; return "https://awejmp.com/?siteId=jasmin&categoryName=girl&pageName=listpage&performerName=&prm[psid]=0xb00bface&prm[pstool]=205_1&prm[psprogram]=revs&prm[campaign_id]=&subAffId={SUBAFFID}&filters=";
// return "https://awejmp.com/?siteId=jasmin&categoryName=girl&pageName=listpage&performerName=&prm[psid]=0xb00bface&prm[pstool]=205_1&prm[psprogram]=pps&prm[campaign_id]=&subAffId={SUBAFFID}&filters=";
} }
@Override @Override
@ -53,22 +56,17 @@ public class LiveJasmin extends AbstractSite {
@Override @Override
public Double getTokenBalance() throws IOException { public Double getTokenBalance() throws IOException {
if(getLiveJasminHttpClient().login()) { if (getLiveJasminHttpClient().login()) {
String sessionId = getLiveJasminHttpClient().getSessionId(); String sessionId = getLiveJasminHttpClient().getSessionId();
String url = getBaseUrl() + "/en/offline-surprise/get-member-balance?session=" + sessionId; String url = getBaseUrl() + "/en/offline-surprise/get-member-balance?session=" + sessionId;
Request request = new Request.Builder() Request request = new Request.Builder().url(url).addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent)
.url(url) .addHeader("Accept", "*/*").addHeader("Accept-Language", "en").addHeader("Referer", getBaseUrl())
.addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent) .addHeader("X-Requested-With", "XMLHttpRequest").build();
.addHeader("Accept", "*/*")
.addHeader("Accept-Language", "en")
.addHeader("Referer", getBaseUrl())
.addHeader("X-Requested-With", "XMLHttpRequest")
.build();
try (Response response = getHttpClient().execute(request)) { try (Response response = getHttpClient().execute(request)) {
if(response.isSuccessful()) { if (response.isSuccessful()) {
String body = response.body().string(); String body = response.body().string();
JSONObject json = new JSONObject(body); JSONObject json = new JSONObject(body);
if(json.optBoolean("success")) { if (json.optBoolean("success")) {
return json.optDouble("result"); return json.optDouble("result");
} else { } else {
throw new IOException("Response was not successful: " + url + "\n" + body); throw new IOException("Response was not successful: " + url + "\n" + body);
@ -102,6 +100,9 @@ public class LiveJasmin extends AbstractSite {
@Override @Override
public void init() throws IOException { public void init() throws IOException {
baseUrl = Config.getInstance().getSettings().livejasminBaseUrl;
HttpUrl url = HttpUrl.parse(baseUrl);
baseDomain = url.topPrivateDomain();
} }
@Override @Override
@ -131,19 +132,13 @@ public class LiveJasmin extends AbstractSite {
String query = URLEncoder.encode(q, "utf-8"); String query = URLEncoder.encode(q, "utf-8");
long ts = System.currentTimeMillis(); long ts = System.currentTimeMillis();
String url = getBaseUrl() + "/en/auto-suggest-search/auto-suggest?category=girls&searchText=" + query + "&_dc=" + ts + "&appletType=html5"; String url = getBaseUrl() + "/en/auto-suggest-search/auto-suggest?category=girls&searchText=" + query + "&_dc=" + ts + "&appletType=html5";
Request request = new Request.Builder() Request request = new Request.Builder().url(url).addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent).addHeader("Accept", "*/*")
.url(url) .addHeader("Accept-Language", "en").addHeader("Referer", getBaseUrl()).addHeader("X-Requested-With", "XMLHttpRequest").build();
.addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent)
.addHeader("Accept", "*/*")
.addHeader("Accept-Language", "en")
.addHeader("Referer", getBaseUrl())
.addHeader("X-Requested-With", "XMLHttpRequest")
.build();
try (Response response = getHttpClient().execute(request)) { try (Response response = getHttpClient().execute(request)) {
if (response.isSuccessful()) { if (response.isSuccessful()) {
String body = response.body().string(); String body = response.body().string();
JSONObject json = new JSONObject(body); JSONObject json = new JSONObject(body);
if(json.optBoolean("success")) { if (json.optBoolean("success")) {
List<Model> models = new ArrayList<>(); List<Model> models = new ArrayList<>();
JSONObject data = json.getJSONObject("data"); JSONObject data = json.getJSONObject("data");
String html = data.getString("content"); String html = data.getString("content");
@ -155,7 +150,7 @@ public class LiveJasmin extends AbstractSite {
Element pic = HtmlParser.getTag(itemHtml, "span.pic i"); Element pic = HtmlParser.getTag(itemHtml, "span.pic i");
String style = pic.attr("style"); String style = pic.attr("style");
Matcher m = Pattern.compile("url\\('(.*?)'\\)").matcher(style); Matcher m = Pattern.compile("url\\('(.*?)'\\)").matcher(style);
if(m.find()) { if (m.find()) {
model.setPreview(m.group(1)); model.setPreview(m.group(1));
} }
models.add(model); models.add(model);

View File

@ -141,7 +141,7 @@ public class LiveJasminChunkedHttpDownload implements Download {
Request request = new Request.Builder() Request request = new Request.Builder()
.url("https://" + relayHost + "/?random=" + newClientInstanceId()) .url("https://" + relayHost + "/?random=" + newClientInstanceId())
.header("Origin", "https://www.livejasmin.com") .header("Origin", LiveJasmin.baseUrl)
.header("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0") .header("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0")
.header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8") .header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
.header("Accept-Language", "de,en-US;q=0.7,en;q=0.3") .header("Accept-Language", "de,en-US;q=0.7,en;q=0.3")
@ -154,7 +154,7 @@ public class LiveJasminChunkedHttpDownload implements Download {
+ "\",\"connectionData\":{\"jasmin2App\":true,\"isMobileClient\":false,\"platform\":\"desktop\",\"chatID\":\"freechat\"," + "\",\"connectionData\":{\"jasmin2App\":true,\"isMobileClient\":false,\"platform\":\"desktop\",\"chatID\":\"freechat\","
+ "\"sessionID\":\"" + sessionId + "\"," + "\"jsm2SessionId\":\"" + jsm2SessionId + "\",\"userType\":\"user\"," + "\"performerId\":\"" + "\"sessionID\":\"" + sessionId + "\"," + "\"jsm2SessionId\":\"" + jsm2SessionId + "\",\"userType\":\"user\"," + "\"performerId\":\""
+ model + model
+ "\",\"clientRevision\":\"\",\"proxyIP\":\"\",\"playerVer\":\"nanoPlayerVersion: 3.10.3 appCodeName: Mozilla appName: Netscape appVersion: 5.0 (X11) platform: Linux x86_64\",\"livejasminTvmember\":false,\"newApplet\":true,\"livefeedtype\":null,\"gravityCookieId\":\"\",\"passparam\":\"\",\"brandID\":\"jasmin\",\"cobrandId\":\"\",\"subbrand\":\"livejasmin\",\"siteName\":\"LiveJasmin\",\"siteUrl\":\"https://www.livejasmin.com\"," + "\",\"clientRevision\":\"\",\"proxyIP\":\"\",\"playerVer\":\"nanoPlayerVersion: 3.10.3 appCodeName: Mozilla appName: Netscape appVersion: 5.0 (X11) platform: Linux x86_64\",\"livejasminTvmember\":false,\"newApplet\":true,\"livefeedtype\":null,\"gravityCookieId\":\"\",\"passparam\":\"\",\"brandID\":\"jasmin\",\"cobrandId\":\"\",\"subbrand\":\"livejasmin\",\"siteName\":\"LiveJasmin\",\"siteUrl\":\""+LiveJasmin.baseUrl+"\","
+ "\"clientInstanceId\":\"" + clientInstanceId + "\",\"armaVersion\":\"34.10.0\",\"isPassive\":false}}"); + "\"clientInstanceId\":\"" + clientInstanceId + "\",\"armaVersion\":\"34.10.0\",\"isPassive\":false}}");
response.close(); response.close();
} }
@ -231,13 +231,13 @@ public class LiveJasminChunkedHttpDownload implements Download {
} }
protected void getPerformerDetails(String name) throws IOException { protected void getPerformerDetails(String name) throws IOException {
String url = "https://m.livejasmin.com/en/chat-html5/" + name; String url = "https://m."+LiveJasmin.baseDomain+"/en/chat-html5/" + name;
Request req = new Request.Builder() Request req = new Request.Builder()
.url(url) .url(url)
.header("User-Agent", USER_AGENT) .header("User-Agent", USER_AGENT)
.header("Accept", "application/json,*/*") .header("Accept", "application/json,*/*")
.header("Accept-Language", "en") .header("Accept-Language", "en")
.header("Referer", "https://www.livejasmin.com") .header("Referer", LiveJasmin.baseUrl)
.header("X-Requested-With", "XMLHttpRequest") .header("X-Requested-With", "XMLHttpRequest")
.build(); .build();
try (Response response = client.execute(req)) { try (Response response = client.execute(req)) {

View File

@ -44,13 +44,13 @@ public class LiveJasminHttpClient extends HttpClient {
.followSslRedirects(false) .followSslRedirects(false)
.build(); .build();
String url = "https://m.livejasmin.com/en/member/favourite/get-favourite-list?ajax=1"; String url = "https://m." + LiveJasmin.baseDomain + "/en/member/favourite/get-favourite-list?ajax=1";
Request request = new Request.Builder() Request request = new Request.Builder()
.url(url) .url(url)
.addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgentMobile) .addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgentMobile)
.addHeader("Accept", "application/json, text/javascript, */*") .addHeader("Accept", "application/json, text/javascript, */*")
.addHeader("Accept-Language", "en") .addHeader("Accept-Language", "en")
.addHeader("Referer", LiveJasmin.BASE_URL) .addHeader("Referer", LiveJasmin.baseUrl)
.addHeader("X-Requested-With", "XMLHttpRequest") .addHeader("X-Requested-With", "XMLHttpRequest")
.build(); .build();
try(Response response = temp.newCall(request).execute()) { try(Response response = temp.newCall(request).execute()) {
@ -64,7 +64,7 @@ public class LiveJasminHttpClient extends HttpClient {
} }
public String getSessionId() { public String getSessionId() {
Cookie sessionCookie = getCookieJar().getCookie(HttpUrl.parse(LiveJasmin.BASE_URL), "session"); Cookie sessionCookie = getCookieJar().getCookie(HttpUrl.parse(LiveJasmin.baseUrl), "session");
if(sessionCookie != null) { if(sessionCookie != null) {
return sessionCookie.value(); return sessionCookie.value();
} else { } else {

View File

@ -51,7 +51,7 @@ public class LiveJasminTippingWebSocket {
Request request = new Request.Builder() Request request = new Request.Builder()
.url("https://" + relayHost + "/") .url("https://" + relayHost + "/")
.header("Origin", "https://www.livejasmin.com") .header("Origin", LiveJasmin.baseUrl)
.header("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0") .header("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0")
.header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8") .header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
.header("Accept-Language", "de,en-US;q=0.7,en;q=0.3") .header("Accept-Language", "de,en-US;q=0.7,en;q=0.3")
@ -65,7 +65,7 @@ public class LiveJasminTippingWebSocket {
+ "\",\"connectionData\":{\"jasmin2App\":true,\"isMobileClient\":false,\"platform\":\"desktop\",\"chatID\":\"freechat\"," + "\",\"connectionData\":{\"jasmin2App\":true,\"isMobileClient\":false,\"platform\":\"desktop\",\"chatID\":\"freechat\","
+ "\"sessionID\":\"" + sessionId + "\"," + "\"jsm2SessionId\":\"" + jsm2SessionId + "\",\"userType\":\"user\"," + "\"performerId\":\"" + "\"sessionID\":\"" + sessionId + "\"," + "\"jsm2SessionId\":\"" + jsm2SessionId + "\",\"userType\":\"user\"," + "\"performerId\":\""
+ model + model
+ "\",\"clientRevision\":\"\",\"proxyIP\":\"\",\"playerVer\":\"nanoPlayerVersion: 3.10.3 appCodeName: Mozilla appName: Netscape appVersion: 5.0 (X11) platform: Linux x86_64\",\"livejasminTvmember\":false,\"newApplet\":true,\"livefeedtype\":null,\"gravityCookieId\":\"\",\"passparam\":\"\",\"brandID\":\"jasmin\",\"cobrandId\":\"\",\"subbrand\":\"livejasmin\",\"siteName\":\"LiveJasmin\",\"siteUrl\":\"https://www.livejasmin.com\"," + "\",\"clientRevision\":\"\",\"proxyIP\":\"\",\"playerVer\":\"nanoPlayerVersion: 3.10.3 appCodeName: Mozilla appName: Netscape appVersion: 5.0 (X11) platform: Linux x86_64\",\"livejasminTvmember\":false,\"newApplet\":true,\"livefeedtype\":null,\"gravityCookieId\":\"\",\"passparam\":\"\",\"brandID\":\"jasmin\",\"cobrandId\":\"\",\"subbrand\":\"livejasmin\",\"siteName\":\"LiveJasmin\",\"siteUrl\":\""+LiveJasmin.baseUrl+"\","
+ "\"clientInstanceId\":\"" + clientInstanceId + "\",\"armaVersion\":\"34.10.0\",\"isPassive\":false}}"); + "\"clientInstanceId\":\"" + clientInstanceId + "\",\"armaVersion\":\"34.10.0\",\"isPassive\":false}}");
response.close(); response.close();
} }
@ -136,13 +136,13 @@ public class LiveJasminTippingWebSocket {
} }
protected void getPerformerDetails(String name) throws IOException { protected void getPerformerDetails(String name) throws IOException {
String url = "https://m.livejasmin.com/en/chat-html5/" + name; String url = "https://m." + LiveJasmin.baseDomain + "/en/chat-html5/" + name;
Request req = new Request.Builder() Request req = new Request.Builder()
.url(url) .url(url)
.header("User-Agent", "Mozilla/5.0 (iPhone; CPU OS 10_14 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1.1 Mobile/14E304 Safari/605.1.15") .header("User-Agent", "Mozilla/5.0 (iPhone; CPU OS 10_14 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1.1 Mobile/14E304 Safari/605.1.15")
.header("Accept", "application/json,*/*") .header("Accept", "application/json,*/*")
.header("Accept-Language", "en") .header("Accept-Language", "en")
.header("Referer", "https://www.livejasmin.com") .header("Referer", LiveJasmin.baseUrl)
.header("X-Requested-With", "XMLHttpRequest") .header("X-Requested-With", "XMLHttpRequest")
.build(); .build();
try (Response response = client.execute(req)) { try (Response response = client.execute(req)) {

View File

@ -76,7 +76,7 @@ public class LiveJasminWebSocketDownload implements Download {
Request request = new Request.Builder() Request request = new Request.Builder()
.url("https://" + relayHost + "/") .url("https://" + relayHost + "/")
.header("Origin", "https://www.livejasmin.com") .header("Origin", LiveJasmin.baseUrl)
.header("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0") .header("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0")
.header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8") .header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
.header("Accept-Language", "de,en-US;q=0.7,en;q=0.3") .header("Accept-Language", "de,en-US;q=0.7,en;q=0.3")
@ -91,7 +91,7 @@ public class LiveJasminWebSocketDownload implements Download {
+ "\",\"connectionData\":{\"jasmin2App\":true,\"isMobileClient\":false,\"platform\":\"desktop\",\"chatID\":\"freechat\"," + "\",\"connectionData\":{\"jasmin2App\":true,\"isMobileClient\":false,\"platform\":\"desktop\",\"chatID\":\"freechat\","
+ "\"sessionID\":\"" + sessionId + "\"," + "\"jsm2SessionId\":\"" + jsm2SessionId + "\",\"userType\":\"user\"," + "\"performerId\":\"" + "\"sessionID\":\"" + sessionId + "\"," + "\"jsm2SessionId\":\"" + jsm2SessionId + "\",\"userType\":\"user\"," + "\"performerId\":\""
+ model + model
+ "\",\"clientRevision\":\"\",\"proxyIP\":\"\",\"playerVer\":\"nanoPlayerVersion: 3.10.3 appCodeName: Mozilla appName: Netscape appVersion: 5.0 (X11) platform: Linux x86_64\",\"livejasminTvmember\":false,\"newApplet\":true,\"livefeedtype\":null,\"gravityCookieId\":\"\",\"passparam\":\"\",\"brandID\":\"jasmin\",\"cobrandId\":\"\",\"subbrand\":\"livejasmin\",\"siteName\":\"LiveJasmin\",\"siteUrl\":\"https://www.livejasmin.com\"," + "\",\"clientRevision\":\"\",\"proxyIP\":\"\",\"playerVer\":\"nanoPlayerVersion: 3.10.3 appCodeName: Mozilla appName: Netscape appVersion: 5.0 (X11) platform: Linux x86_64\",\"livejasminTvmember\":false,\"newApplet\":true,\"livefeedtype\":null,\"gravityCookieId\":\"\",\"passparam\":\"\",\"brandID\":\"jasmin\",\"cobrandId\":\"\",\"subbrand\":\"livejasmin\",\"siteName\":\"LiveJasmin\",\"siteUrl\":\""+LiveJasmin.baseUrl+"\","
+ "\"clientInstanceId\":\"" + clientInstanceId + "\",\"armaVersion\":\"34.10.0\",\"isPassive\":false}}"); + "\"clientInstanceId\":\"" + clientInstanceId + "\",\"armaVersion\":\"34.10.0\",\"isPassive\":false}}");
response.close(); response.close();
} }
@ -218,13 +218,13 @@ public class LiveJasminWebSocketDownload implements Download {
} }
protected void getPerformerDetails(String name) throws IOException { protected void getPerformerDetails(String name) throws IOException {
String url = "https://m.livejasmin.com/en/chat-html5/" + name; String url = "https://m." + LiveJasmin.baseDomain + "/en/chat-html5/" + name;
Request req = new Request.Builder() Request req = new Request.Builder()
.url(url) .url(url)
.header("User-Agent", "Mozilla/5.0 (iPhone; CPU OS 10_14 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1.1 Mobile/14E304 Safari/605.1.15") .header("User-Agent", "Mozilla/5.0 (iPhone; CPU OS 10_14 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1.1 Mobile/14E304 Safari/605.1.15")
.header("Accept", "application/json,*/*") .header("Accept", "application/json,*/*")
.header("Accept-Language", "en") .header("Accept-Language", "en")
.header("Referer", "https://www.livejasmin.com") .header("Referer", LiveJasmin.baseUrl)
.header("X-Requested-With", "XMLHttpRequest") .header("X-Requested-With", "XMLHttpRequest")
.build(); .build();
try (Response response = client.execute(req)) { try (Response response = client.execute(req)) {
@ -260,7 +260,9 @@ public class LiveJasminWebSocketDownload implements Download {
LOG.trace(rtmpUrl); LOG.trace(rtmpUrl);
LOG.trace(url); LOG.trace(url);
Request request = new Request.Builder().url(url).header("Origin", "https://www.livejasmin.com") Request request = new Request.Builder()
.url(url)
.header("Origin", LiveJasmin.baseUrl)
.header("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0") .header("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0")
.header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8").header("Accept-Language", "de,en-US;q=0.7,en;q=0.3") .header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8").header("Accept-Language", "de,en-US;q=0.7,en;q=0.3")
.build(); .build();