Use constants from HttpConstants
This commit is contained in:
parent
b91bfdc353
commit
87b0ce0d21
|
@ -1,5 +1,7 @@
|
||||||
package ctbrec.ui;
|
package ctbrec.ui;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.EOFException;
|
import java.io.EOFException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
@ -354,7 +356,7 @@ public class ThumbCell extends StackPane {
|
||||||
imageLoadingThreadPool.submit(() -> {
|
imageLoadingThreadPool.submit(() -> {
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.build();
|
.build();
|
||||||
try(Response resp = CamrecApplication.httpClient.execute(req)) {
|
try(Response resp = CamrecApplication.httpClient.execute(req)) {
|
||||||
if(resp.isSuccessful()) {
|
if(resp.isSuccessful()) {
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package ctbrec.ui.news;
|
package ctbrec.ui.news;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
|
@ -42,7 +43,7 @@ public class NewsTab extends Tab implements TabSelectionListener {
|
||||||
Request request = new Request.Builder()
|
Request request = new Request.Builder()
|
||||||
.url(URL)
|
.url(URL)
|
||||||
.header("Authorization", "Bearer " + ACCESS_TOKEN)
|
.header("Authorization", "Bearer " + ACCESS_TOKEN)
|
||||||
.header("User-Agent", "ctbrec " + CamrecApplication.getVersion().toString())
|
.header(USER_AGENT, "ctbrec " + CamrecApplication.getVersion().toString())
|
||||||
.build();
|
.build();
|
||||||
try(Response response = CamrecApplication.httpClient.execute(request)) {
|
try(Response response = CamrecApplication.httpClient.execute(request)) {
|
||||||
if(response.isSuccessful()) {
|
if(response.isSuccessful()) {
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
package ctbrec.ui.sites.bonga;
|
package ctbrec.ui.sites.bonga;
|
||||||
|
|
||||||
import static ctbrec.Model.State.*;
|
import static ctbrec.Model.State.*;
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
@ -22,7 +24,7 @@ import okhttp3.Response;
|
||||||
|
|
||||||
public class BongaCamsUpdateService extends PaginatedScheduledService {
|
public class BongaCamsUpdateService extends PaginatedScheduledService {
|
||||||
|
|
||||||
private static final transient Logger LOG = LoggerFactory.getLogger(BongaCamsUpdateService.class);
|
private static final Logger LOG = LoggerFactory.getLogger(BongaCamsUpdateService.class);
|
||||||
|
|
||||||
private BongaCams bongaCams;
|
private BongaCams bongaCams;
|
||||||
private String url;
|
private String url;
|
||||||
|
@ -37,15 +39,15 @@ public class BongaCamsUpdateService extends PaginatedScheduledService {
|
||||||
return new Task<List<Model>>() {
|
return new Task<List<Model>>() {
|
||||||
@Override
|
@Override
|
||||||
public List<Model> call() throws IOException {
|
public List<Model> call() throws IOException {
|
||||||
String _url = url + ((page-1) * 36);
|
String pageUrl = url + ((page-1) * 36);
|
||||||
LOG.debug("Fetching page {}", _url);
|
LOG.debug("Fetching page {}", pageUrl);
|
||||||
Request request = new Request.Builder()
|
Request request = new Request.Builder()
|
||||||
.url(_url)
|
.url(pageUrl)
|
||||||
.addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.addHeader(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.addHeader("Accept", "application/json, text/javascript, */*")
|
.addHeader(ACCEPT, MIMETYPE_APPLICATION_JSON)
|
||||||
.addHeader("Accept-Language", "en")
|
.addHeader(ACCEPT, Locale.ENGLISH.getLanguage())
|
||||||
.addHeader("Referer", bongaCams.getBaseUrl())
|
.addHeader(REFERER, bongaCams.getBaseUrl())
|
||||||
.addHeader("X-Requested-With", "XMLHttpRequest")
|
.addHeader(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
Response response = bongaCams.getHttpClient().execute(request);
|
Response response = bongaCams.getHttpClient().execute(request);
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
|
@ -53,9 +55,9 @@ public class BongaCamsUpdateService extends PaginatedScheduledService {
|
||||||
List<Model> models = new ArrayList<>();
|
List<Model> models = new ArrayList<>();
|
||||||
JSONObject json = new JSONObject(content);
|
JSONObject json = new JSONObject(content);
|
||||||
if(json.optString("status").equals("success")) {
|
if(json.optString("status").equals("success")) {
|
||||||
JSONArray _models = json.getJSONArray("models");
|
JSONArray jsonModels = json.getJSONArray("models");
|
||||||
for (int i = 0; i < _models.length(); i++) {
|
for (int i = 0; i < jsonModels.length(); i++) {
|
||||||
JSONObject m = _models.getJSONObject(i);
|
JSONObject m = jsonModels.getJSONObject(i);
|
||||||
String name = m.optString("username");
|
String name = m.optString("username");
|
||||||
if(name.isEmpty()) {
|
if(name.isEmpty()) {
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package ctbrec.ui.sites.fc2live;
|
package ctbrec.ui.sites.fc2live;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -7,6 +9,7 @@ import java.util.List;
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
|
import ctbrec.Config;
|
||||||
import ctbrec.Model;
|
import ctbrec.Model;
|
||||||
import ctbrec.io.HttpException;
|
import ctbrec.io.HttpException;
|
||||||
import ctbrec.sites.fc2live.Fc2Live;
|
import ctbrec.sites.fc2live.Fc2Live;
|
||||||
|
@ -41,7 +44,8 @@ public class Fc2FollowedUpdateService extends PaginatedScheduledService {
|
||||||
.build();
|
.build();
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(fc2live.getBaseUrl() + "/api/favoriteManager.php")
|
.url(fc2live.getBaseUrl() + "/api/favoriteManager.php")
|
||||||
.header("Referer", fc2live.getBaseUrl())
|
.header(REFERER, fc2live.getBaseUrl())
|
||||||
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.header("Content-Type", "application/x-www-form-urlencoded")
|
.header("Content-Type", "application/x-www-form-urlencoded")
|
||||||
.post(body)
|
.post(body)
|
||||||
.build();
|
.build();
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
package ctbrec.ui.sites.fc2live;
|
package ctbrec.ui.sites.fc2live;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
|
@ -22,7 +25,7 @@ import okhttp3.RequestBody;
|
||||||
import okhttp3.Response;
|
import okhttp3.Response;
|
||||||
|
|
||||||
public class Fc2UpdateService extends PaginatedScheduledService {
|
public class Fc2UpdateService extends PaginatedScheduledService {
|
||||||
private static final transient Logger LOG = LoggerFactory.getLogger(Fc2UpdateService.class);
|
private static final Logger LOG = LoggerFactory.getLogger(Fc2UpdateService.class);
|
||||||
|
|
||||||
private String url;
|
private String url;
|
||||||
private Fc2Live fc2live;
|
private Fc2Live fc2live;
|
||||||
|
@ -42,11 +45,11 @@ public class Fc2UpdateService extends PaginatedScheduledService {
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.method("POST", body)
|
.method("POST", body)
|
||||||
.header("Accept", "*/*")
|
.header(ACCEPT, "*/*")
|
||||||
.header("Accept-Language", "en-US,en;q=0.5")
|
.header(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.header("Referer", Fc2Live.BASE_URL)
|
.header(REFERER, Fc2Live.BASE_URL)
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.header("X-Requested-With", "XMLHttpRequest")
|
.header(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
LOG.debug("Fetching page {}", url);
|
LOG.debug("Fetching page {}", url);
|
||||||
try(Response resp = fc2live.getHttpClient().execute(req)) {
|
try(Response resp = fc2live.getHttpClient().execute(req)) {
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
package ctbrec.ui.sites.flirt4free;
|
package ctbrec.ui.sites.flirt4free;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
|
|
||||||
import org.jsoup.nodes.Element;
|
import org.jsoup.nodes.Element;
|
||||||
|
@ -37,10 +40,10 @@ public class Flirt4FreeFavoritesUpdateService extends PaginatedScheduledService
|
||||||
SiteUiFactory.getUi(flirt4free).login();
|
SiteUiFactory.getUi(flirt4free).login();
|
||||||
Request request = new Request.Builder()
|
Request request = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.header("Accept", "*/*")
|
.header(ACCEPT, "*/*")
|
||||||
.header("Accept-Language", "en-US,en;q=0.5")
|
.header(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.header("Referer", flirt4free.getBaseUrl())
|
.header(REFERER, flirt4free.getBaseUrl())
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.build();
|
.build();
|
||||||
try (Response response = flirt4free.getHttpClient().execute(request)) {
|
try (Response response = flirt4free.getHttpClient().execute(request)) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
|
@ -58,7 +61,11 @@ public class Flirt4FreeFavoritesUpdateService extends PaginatedScheduledService
|
||||||
model.setOnline(modelHtml.contains("I'm Online"));
|
model.setOnline(modelHtml.contains("I'm Online"));
|
||||||
try {
|
try {
|
||||||
model.setOnlineState(model.isOnline() ? Model.State.ONLINE : Model.State.OFFLINE);
|
model.setOnlineState(model.isOnline() ? Model.State.ONLINE : Model.State.OFFLINE);
|
||||||
} catch (ExecutionException | InterruptedException e) {}
|
} catch (InterruptedException e) {
|
||||||
|
Thread.currentThread().interrupt();
|
||||||
|
} catch (ExecutionException e) {
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
models.add(model);
|
models.add(model);
|
||||||
}
|
}
|
||||||
return models;
|
return models;
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package ctbrec.ui.sites.flirt4free;
|
package ctbrec.ui.sites.flirt4free;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -42,7 +44,10 @@ public class Flirt4FreeUpdateService extends PaginatedScheduledService {
|
||||||
@Override
|
@Override
|
||||||
public List<Model> call() throws IOException {
|
public List<Model> call() throws IOException {
|
||||||
LOG.debug("Fetching page {}", url);
|
LOG.debug("Fetching page {}", url);
|
||||||
Request request = new Request.Builder().url(url).addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent).build();
|
Request request = new Request.Builder()
|
||||||
|
.url(url)
|
||||||
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
|
.build();
|
||||||
try (Response response = flirt4Free.getHttpClient().execute(request)) {
|
try (Response response = flirt4Free.getHttpClient().execute(request)) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
return parseResponse(response);
|
return parseResponse(response);
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
package ctbrec.ui.sites.jasmin;
|
package ctbrec.ui.sites.jasmin;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
@ -22,7 +25,7 @@ import okhttp3.Response;
|
||||||
|
|
||||||
public class LiveJasminFollowedUpdateService extends PaginatedScheduledService {
|
public class LiveJasminFollowedUpdateService extends PaginatedScheduledService {
|
||||||
|
|
||||||
private static final transient Logger LOG = LoggerFactory.getLogger(LiveJasminFollowedUpdateService.class);
|
private static final Logger LOG = LoggerFactory.getLogger(LiveJasminFollowedUpdateService.class);
|
||||||
private LiveJasmin liveJasmin;
|
private LiveJasmin liveJasmin;
|
||||||
private String url;
|
private String url;
|
||||||
private boolean showOnline = true;
|
private boolean showOnline = true;
|
||||||
|
@ -50,11 +53,11 @@ public class LiveJasminFollowedUpdateService extends PaginatedScheduledService {
|
||||||
//LOG.debug("Fetching page {}", url);
|
//LOG.debug("Fetching page {}", url);
|
||||||
Request request = new Request.Builder()
|
Request request = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.header("Accept", "*/*")
|
.header(ACCEPT, "*/*")
|
||||||
.header("Accept-Language", "en")
|
.header(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.header("Referer", liveJasmin.getBaseUrl() + "/en/free/favorite")
|
.header(REFERER, liveJasmin.getBaseUrl() + "/en/free/favorite")
|
||||||
.header("X-Requested-With", "XMLHttpRequest")
|
.header(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
try (Response response = liveJasmin.getHttpClient().execute(request)) {
|
try (Response response = liveJasmin.getHttpClient().execute(request)) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
package ctbrec.ui.sites.jasmin;
|
package ctbrec.ui.sites.jasmin;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
@ -27,7 +30,7 @@ import okhttp3.Response;
|
||||||
|
|
||||||
public class LiveJasminUpdateService extends PaginatedScheduledService {
|
public class LiveJasminUpdateService extends PaginatedScheduledService {
|
||||||
|
|
||||||
private static final transient Logger LOG = LoggerFactory.getLogger(LiveJasminUpdateService.class);
|
private static final Logger LOG = LoggerFactory.getLogger(LiveJasminUpdateService.class);
|
||||||
private String url;
|
private String url;
|
||||||
private LiveJasmin liveJasmin;
|
private LiveJasmin liveJasmin;
|
||||||
|
|
||||||
|
@ -54,11 +57,11 @@ public class LiveJasminUpdateService extends PaginatedScheduledService {
|
||||||
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, MIMETYPE_APPLICATION_JSON)
|
||||||
.addHeader("Accept-Language", "en")
|
.addHeader(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.addHeader("Referer", liveJasmin.getBaseUrl())
|
.addHeader(REFERER, liveJasmin.getBaseUrl())
|
||||||
.addHeader("X-Requested-With", "XMLHttpRequest")
|
.addHeader(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
try (Response response = liveJasmin.getHttpClient().execute(request)) {
|
try (Response response = liveJasmin.getHttpClient().execute(request)) {
|
||||||
LOG.debug("Response {} {}", response.code(), response.message());
|
LOG.debug("Response {} {}", response.code(), response.message());
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package ctbrec.ui.sites.myfreecams;
|
package ctbrec.ui.sites.myfreecams;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
@ -10,6 +12,7 @@ import org.json.JSONObject;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import ctbrec.Config;
|
||||||
import ctbrec.Model;
|
import ctbrec.Model;
|
||||||
import ctbrec.StringUtil;
|
import ctbrec.StringUtil;
|
||||||
import ctbrec.sites.mfc.MyFreeCams;
|
import ctbrec.sites.mfc.MyFreeCams;
|
||||||
|
@ -48,7 +51,10 @@ public class FriendsUpdateService extends PaginatedScheduledService {
|
||||||
List<MyFreeCamsModel> models = new ArrayList<>();
|
List<MyFreeCamsModel> models = new ArrayList<>();
|
||||||
SiteUiFactory.getUi(myFreeCams).login();
|
SiteUiFactory.getUi(myFreeCams).login();
|
||||||
String url = myFreeCams.getBaseUrl() + "/php/manage_lists2.php?passcode=&list_type=friends&data_mode=online&get_user_list=1";
|
String url = myFreeCams.getBaseUrl() + "/php/manage_lists2.php?passcode=&list_type=friends&data_mode=online&get_user_list=1";
|
||||||
Request req = new Request.Builder().url(url).header("Referer", myFreeCams.getBaseUrl()).build();
|
Request req = new Request.Builder().url(url)
|
||||||
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
|
.header(REFERER, myFreeCams.getBaseUrl())
|
||||||
|
.build();
|
||||||
try (Response resp = myFreeCams.getHttpClient().execute(req)) {
|
try (Response resp = myFreeCams.getHttpClient().execute(req)) {
|
||||||
if (resp.isSuccessful()) {
|
if (resp.isSuccessful()) {
|
||||||
String body = resp.body().string().substring(4);
|
String body = resp.body().string().substring(4);
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
package ctbrec.ui.sites.streamate;
|
package ctbrec.ui.sites.streamate;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import javax.xml.parsers.ParserConfigurationException;
|
import javax.xml.parsers.ParserConfigurationException;
|
||||||
|
@ -27,7 +30,7 @@ import okhttp3.Response;
|
||||||
|
|
||||||
public class StreamateFollowedService extends PaginatedScheduledService {
|
public class StreamateFollowedService extends PaginatedScheduledService {
|
||||||
|
|
||||||
private static final transient Logger LOG = LoggerFactory.getLogger(StreamateFollowedService.class);
|
private static final Logger LOG = LoggerFactory.getLogger(StreamateFollowedService.class);
|
||||||
|
|
||||||
private static final int MODELS_PER_PAGE = 16;
|
private static final int MODELS_PER_PAGE = 16;
|
||||||
private Streamate streamate;
|
private Streamate streamate;
|
||||||
|
@ -48,15 +51,15 @@ public class StreamateFollowedService extends PaginatedScheduledService {
|
||||||
public List<Model> call() throws IOException, SAXException, ParserConfigurationException, XPathExpressionException {
|
public List<Model> call() throws IOException, SAXException, ParserConfigurationException, XPathExpressionException {
|
||||||
httpClient.login();
|
httpClient.login();
|
||||||
String saKey = httpClient.getSaKey();
|
String saKey = httpClient.getSaKey();
|
||||||
String _url = url + "&from=" + ((page - 1) * MODELS_PER_PAGE) + "&size=" + MODELS_PER_PAGE;
|
String pageUrl = url + "&from=" + ((page - 1) * MODELS_PER_PAGE) + "&size=" + MODELS_PER_PAGE;
|
||||||
LOG.debug("Fetching page {}", _url);
|
LOG.debug("Fetching page {}", pageUrl);
|
||||||
Request request = new Request.Builder()
|
Request request = new Request.Builder()
|
||||||
.url(_url)
|
.url(pageUrl)
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.header("Accept", "application/json, */*")
|
.header(ACCEPT, MIMETYPE_APPLICATION_JSON)
|
||||||
.header("Accept-Language", "en")
|
.header(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.header("Origin", streamate.getBaseUrl())
|
.header(ORIGIN, streamate.getBaseUrl())
|
||||||
.header("Referer", streamate.getBaseUrl() + "/view/favorites")
|
.header(REFERER, streamate.getBaseUrl() + "/view/favorites")
|
||||||
.header("sakey", saKey)
|
.header("sakey", saKey)
|
||||||
.header("platform", "SCP")
|
.header("platform", "SCP")
|
||||||
.header("smtid", UUID.randomUUID().toString() + "G0211569057409")
|
.header("smtid", UUID.randomUUID().toString() + "G0211569057409")
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
package ctbrec.ui.sites.streamate;
|
package ctbrec.ui.sites.streamate;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import javax.xml.parsers.ParserConfigurationException;
|
import javax.xml.parsers.ParserConfigurationException;
|
||||||
import javax.xml.xpath.XPathExpressionException;
|
import javax.xml.xpath.XPathExpressionException;
|
||||||
|
@ -25,7 +28,7 @@ import okhttp3.Response;
|
||||||
|
|
||||||
public class StreamateUpdateService extends PaginatedScheduledService {
|
public class StreamateUpdateService extends PaginatedScheduledService {
|
||||||
|
|
||||||
private static final transient Logger LOG = LoggerFactory.getLogger(StreamateUpdateService.class);
|
private static final Logger LOG = LoggerFactory.getLogger(StreamateUpdateService.class);
|
||||||
|
|
||||||
private static final int MODELS_PER_PAGE = 48;
|
private static final int MODELS_PER_PAGE = 48;
|
||||||
private Streamate streamate;
|
private Streamate streamate;
|
||||||
|
@ -42,14 +45,14 @@ public class StreamateUpdateService extends PaginatedScheduledService {
|
||||||
@Override
|
@Override
|
||||||
public List<Model> call() throws IOException, SAXException, ParserConfigurationException, XPathExpressionException {
|
public List<Model> call() throws IOException, SAXException, ParserConfigurationException, XPathExpressionException {
|
||||||
int from = (page - 1) * MODELS_PER_PAGE;
|
int from = (page - 1) * MODELS_PER_PAGE;
|
||||||
String _url = url + "&from=" + from + "&size=" + MODELS_PER_PAGE;
|
String pageUrl = url + "&from=" + from + "&size=" + MODELS_PER_PAGE;
|
||||||
LOG.debug("Fetching page {}", _url);
|
LOG.debug("Fetching page {}", pageUrl);
|
||||||
Request request = new Request.Builder()
|
Request request = new Request.Builder()
|
||||||
.url(_url)
|
.url(pageUrl)
|
||||||
.addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.addHeader(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.addHeader("Accept", "application/json, */*")
|
.addHeader(ACCEPT, MIMETYPE_APPLICATION_JSON)
|
||||||
.addHeader("Accept-Language", "en")
|
.addHeader(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.addHeader("Referer", streamate.getBaseUrl())
|
.addHeader(REFERER, streamate.getBaseUrl())
|
||||||
.build();
|
.build();
|
||||||
try(Response response = streamate.getHttpClient().execute(request)) {
|
try(Response response = streamate.getHttpClient().execute(request)) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
|
|
|
@ -4,9 +4,10 @@ public class HttpConstants {
|
||||||
|
|
||||||
public static final String ACCEPT = "Accept";
|
public static final String ACCEPT = "Accept";
|
||||||
public static final String ACCEPT_LANGUAGE = "Accept-Language";
|
public static final String ACCEPT_LANGUAGE = "Accept-Language";
|
||||||
public static final String CONNECTION = "connection";
|
public static final String CONNECTION = "Connection";
|
||||||
public static final String KEEP_ALIVE = "keep-alive";
|
public static final String KEEP_ALIVE = "keep-alive";
|
||||||
public static final String MIMETYPE_APPLICATION_JSON = "application/json";
|
public static final String MIMETYPE_APPLICATION_JSON = "application/json";
|
||||||
|
public static final String ORIGIN = "Origin";
|
||||||
public static final String REFERER = "Referer";
|
public static final String REFERER = "Referer";
|
||||||
public static final String USER_AGENT = "User-Agent";
|
public static final String USER_AGENT = "User-Agent";
|
||||||
public static final String XML_HTTP_REQUEST = "XMLHttpRequest";
|
public static final String XML_HTTP_REQUEST = "XMLHttpRequest";
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package ctbrec.recorder.download.dash;
|
package ctbrec.recorder.download.dash;
|
||||||
|
|
||||||
import static ctbrec.Recording.State.*;
|
import static ctbrec.Recording.State.*;
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
@ -16,6 +17,7 @@ import java.time.Instant;
|
||||||
import java.time.ZonedDateTime;
|
import java.time.ZonedDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
@ -76,12 +78,12 @@ public class DashDownload extends AbstractDownload {
|
||||||
// @formatter:off
|
// @formatter:off
|
||||||
Request request = new Request.Builder()
|
Request request = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.header("Accept", "*/*")
|
.header(ACCEPT, "*/*")
|
||||||
.header("Accept-Language", "en-US,en;q=0.5")
|
.header(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.header("User-Agent", config.getSettings().httpUserAgent)
|
.header(USER_AGENT, config.getSettings().httpUserAgent)
|
||||||
.header("Origin", model.getSite().getBaseUrl())
|
.header(ORIGIN, model.getSite().getBaseUrl())
|
||||||
.header("Referer", model.getSite().getBaseUrl())
|
.header(REFERER, model.getSite().getBaseUrl())
|
||||||
.header("Connection", "keep-alive")
|
.header(CONNECTION, KEEP_ALIVE)
|
||||||
.build(); // @formatter:on
|
.build(); // @formatter:on
|
||||||
LOG.trace("Loading manifest {}", url);
|
LOG.trace("Loading manifest {}", url);
|
||||||
for (int tries = 1; tries <= 10; tries++) {
|
for (int tries = 1; tries <= 10; tries++) {
|
||||||
|
@ -185,12 +187,12 @@ public class DashDownload extends AbstractDownload {
|
||||||
// @formatter:off
|
// @formatter:off
|
||||||
Request request = new Request.Builder()
|
Request request = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.header("Accept", "*/*")
|
.header(ACCEPT, "*/*")
|
||||||
.header("Accept-Language", "en-US,en;q=0.5")
|
.header(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.header("User-Agent", config.getSettings().httpUserAgent)
|
.header(USER_AGENT, config.getSettings().httpUserAgent)
|
||||||
.header("Origin", model.getSite().getBaseUrl())
|
.header(ORIGIN, model.getSite().getBaseUrl())
|
||||||
.header("Referer", model.getSite().getBaseUrl())
|
.header(REFERER, model.getSite().getBaseUrl())
|
||||||
.header("Connection", "keep-alive")
|
.header(CONNECTION, KEEP_ALIVE)
|
||||||
.build(); // @formatter:on
|
.build(); // @formatter:on
|
||||||
int tries = 1;
|
int tries = 1;
|
||||||
while (tries <= 10) {
|
while (tries <= 10) {
|
||||||
|
|
|
@ -1,13 +1,17 @@
|
||||||
package ctbrec.recorder.download.hls;
|
package ctbrec.recorder.download.hls;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.LinkedBlockingQueue;
|
import java.util.concurrent.LinkedBlockingQueue;
|
||||||
|
@ -73,12 +77,12 @@ public abstract class AbstractHlsDownload extends AbstractDownload {
|
||||||
URL segmentsUrl = new URL(segmentsURL);
|
URL segmentsUrl = new URL(segmentsURL);
|
||||||
Request request = new Request.Builder()
|
Request request = new Request.Builder()
|
||||||
.url(segmentsUrl)
|
.url(segmentsUrl)
|
||||||
.header("Accept", "*/*")
|
.header(ACCEPT, "*/*")
|
||||||
.header("Accept-Language", "en-US,en;q=0.5")
|
.header(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.header("Origin", model.getSite().getBaseUrl())
|
.header(ORIGIN, model.getSite().getBaseUrl())
|
||||||
.header("Referer", model.getSite().getBaseUrl())
|
.header(REFERER, model.getSite().getBaseUrl())
|
||||||
.header("Connection", "keep-alive")
|
.header(CONNECTION, KEEP_ALIVE)
|
||||||
.build();
|
.build();
|
||||||
Exception lastException = null;
|
Exception lastException = null;
|
||||||
for (int tries = 1; tries <= 10; tries++) {
|
for (int tries = 1; tries <= 10; tries++) {
|
||||||
|
@ -90,7 +94,7 @@ public abstract class AbstractHlsDownload extends AbstractDownload {
|
||||||
return new SegmentPlaylist(segmentsURL);
|
return new SegmentPlaylist(segmentsURL);
|
||||||
}
|
}
|
||||||
|
|
||||||
InputStream inputStream = new ByteArrayInputStream(body.getBytes("utf-8"));
|
InputStream inputStream = new ByteArrayInputStream(body.getBytes(StandardCharsets.UTF_8));
|
||||||
PlaylistParser parser = new PlaylistParser(inputStream, Format.EXT_M3U, Encoding.UTF_8, ParsingMode.LENIENT);
|
PlaylistParser parser = new PlaylistParser(inputStream, Format.EXT_M3U, Encoding.UTF_8, ParsingMode.LENIENT);
|
||||||
Playlist playlist = parser.parse();
|
Playlist playlist = parser.parse();
|
||||||
if (playlist.hasMediaPlaylist()) {
|
if (playlist.hasMediaPlaylist()) {
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
package ctbrec.sites.bonga;
|
package ctbrec.sites.bonga;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
@ -25,7 +28,7 @@ import okhttp3.Response;
|
||||||
|
|
||||||
public class BongaCams extends AbstractSite {
|
public class BongaCams extends AbstractSite {
|
||||||
|
|
||||||
private static final transient Logger LOG = LoggerFactory.getLogger(BongaCams.class);
|
private static final Logger LOG = LoggerFactory.getLogger(BongaCams.class);
|
||||||
|
|
||||||
public static String baseUrl = "https://bongacams.com";
|
public static String baseUrl = "https://bongacams.com";
|
||||||
|
|
||||||
|
@ -71,11 +74,11 @@ public class BongaCams extends AbstractSite {
|
||||||
.build();
|
.build();
|
||||||
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, MIMETYPE_APPLICATION_JSON)
|
||||||
.addHeader("Accept-Language", "en")
|
.addHeader(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.addHeader("Referer", BongaCams.baseUrl)
|
.addHeader(REFERER, BongaCams.baseUrl)
|
||||||
.addHeader("X-Requested-With", "XMLHttpRequest")
|
.addHeader(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.post(body)
|
.post(body)
|
||||||
.build();
|
.build();
|
||||||
try(Response response = getHttpClient().execute(request)) {
|
try(Response response = getHttpClient().execute(request)) {
|
||||||
|
@ -143,11 +146,11 @@ public class BongaCams extends AbstractSite {
|
||||||
String url = baseUrl + "/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()
|
Request req = 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, MIMETYPE_APPLICATION_JSON)
|
||||||
.addHeader("Accept-Language", "en")
|
.addHeader(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.addHeader("Referer", BongaCams.baseUrl)
|
.addHeader(REFERER, BongaCams.baseUrl)
|
||||||
.addHeader("X-Requested-With", "XMLHttpRequest")
|
.addHeader(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
try(Response response = getHttpClient().execute(req)) {
|
try(Response response = getHttpClient().execute(req)) {
|
||||||
if(response.isSuccessful()) {
|
if(response.isSuccessful()) {
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
package ctbrec.sites.bonga;
|
package ctbrec.sites.bonga;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
|
@ -22,7 +25,7 @@ import okhttp3.Response;
|
||||||
|
|
||||||
public class BongaCamsHttpClient extends HttpClient {
|
public class BongaCamsHttpClient extends HttpClient {
|
||||||
|
|
||||||
private static final transient Logger LOG = LoggerFactory.getLogger(BongaCamsHttpClient.class);
|
private static final Logger LOG = LoggerFactory.getLogger(BongaCamsHttpClient.class);
|
||||||
private int userId = 0;
|
private int userId = 0;
|
||||||
|
|
||||||
public BongaCamsHttpClient() {
|
public BongaCamsHttpClient() {
|
||||||
|
@ -87,11 +90,11 @@ public class BongaCamsHttpClient extends HttpClient {
|
||||||
.build();
|
.build();
|
||||||
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, MIMETYPE_APPLICATION_JSON)
|
||||||
.addHeader("Accept-Language", "en")
|
.addHeader(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.addHeader("Referer", BongaCams.baseUrl)
|
.addHeader(REFERER, BongaCams.baseUrl)
|
||||||
.addHeader("X-Requested-With", "XMLHttpRequest")
|
.addHeader(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.post(body)
|
.post(body)
|
||||||
.build();
|
.build();
|
||||||
try(Response response = execute(request)) {
|
try(Response response = execute(request)) {
|
||||||
|
@ -116,19 +119,19 @@ public class BongaCamsHttpClient extends HttpClient {
|
||||||
private String getAnyModelName() throws IOException {
|
private String getAnyModelName() throws IOException {
|
||||||
Request request = new Request.Builder()
|
Request request = new Request.Builder()
|
||||||
.url(BongaCams.baseUrl + "/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(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.addHeader("Accept", "application/json, text/javascript, */*")
|
.addHeader(ACCEPT, MIMETYPE_APPLICATION_JSON)
|
||||||
.addHeader("Accept-Language", "en")
|
.addHeader(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.addHeader("Referer", BongaCams.baseUrl)
|
.addHeader(REFERER, BongaCams.baseUrl)
|
||||||
.addHeader("X-Requested-With", "XMLHttpRequest")
|
.addHeader(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
try(Response response = execute(request)) {
|
try(Response response = execute(request)) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
String content = response.body().string();
|
String content = response.body().string();
|
||||||
JSONObject json = new JSONObject(content);
|
JSONObject json = new JSONObject(content);
|
||||||
if(json.optString("status").equals("success")) {
|
if(json.optString("status").equals("success")) {
|
||||||
JSONArray _models = json.getJSONArray("models");
|
JSONArray jsonModels = json.getJSONArray("models");
|
||||||
JSONObject m = _models.getJSONObject(0);
|
JSONObject m = jsonModels.getJSONObject(0);
|
||||||
String name = m.getString("username");
|
String name = m.getString("username");
|
||||||
return name;
|
return name;
|
||||||
} else {
|
} else {
|
||||||
|
@ -155,11 +158,11 @@ public class BongaCamsHttpClient extends HttpClient {
|
||||||
// Request request = new Request.Builder()
|
// Request request = new Request.Builder()
|
||||||
// .url(url)
|
// .url(url)
|
||||||
// .post(body)
|
// .post(body)
|
||||||
// .addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
// .addHeader(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
// .addHeader("Accept","application/json")
|
// .addHeader(ACCEPT,"application/json")
|
||||||
// .addHeader("Accept-Language", "en")
|
// .addHeader(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
// .addHeader("Referer", BongaCams.BASE_URL)
|
// .addHeader(REFERER, BongaCams.BASE_URL)
|
||||||
// .addHeader("X-Requested-With", "XMLHttpRequest")
|
// .addHeader(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
// .build();
|
// .build();
|
||||||
// try(Response response = execute(request)) {
|
// try(Response response = execute(request)) {
|
||||||
// if(response.isSuccessful()) {
|
// if(response.isSuccessful()) {
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
package ctbrec.sites.bonga;
|
package ctbrec.sites.bonga;
|
||||||
|
|
||||||
import static ctbrec.Model.State.*;
|
import static ctbrec.Model.State.*;
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
|
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
@ -38,7 +40,7 @@ import okhttp3.Response;
|
||||||
|
|
||||||
public class BongaCamsModel extends AbstractModel {
|
public class BongaCamsModel extends AbstractModel {
|
||||||
|
|
||||||
private static final transient Logger LOG = LoggerFactory.getLogger(BongaCamsModel.class);
|
private static final Logger LOG = LoggerFactory.getLogger(BongaCamsModel.class);
|
||||||
|
|
||||||
private int userId;
|
private int userId;
|
||||||
private boolean online = false;
|
private boolean online = false;
|
||||||
|
@ -51,7 +53,7 @@ public class BongaCamsModel extends AbstractModel {
|
||||||
String url = BongaCams.baseUrl + "/profile/" + getName();
|
String url = BongaCams.baseUrl + "/profile/" + getName();
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgentMobile)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgentMobile)
|
||||||
.build();
|
.build();
|
||||||
try (Response resp = site.getHttpClient().execute(req)) {
|
try (Response resp = site.getHttpClient().execute(req)) {
|
||||||
String body = resp.body().string();
|
String body = resp.body().string();
|
||||||
|
@ -69,7 +71,7 @@ public class BongaCamsModel extends AbstractModel {
|
||||||
return online;
|
return online;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isStreamAvailable() throws IOException, ExecutionException, InterruptedException {
|
private boolean isStreamAvailable() throws IOException {
|
||||||
String url = getStreamUrl();
|
String url = getStreamUrl();
|
||||||
Request req = new Request.Builder().url(url).build();
|
Request req = new Request.Builder().url(url).build();
|
||||||
try(Response resp = site.getHttpClient().execute(req)) {
|
try(Response resp = site.getHttpClient().execute(req)) {
|
||||||
|
@ -91,11 +93,11 @@ public class BongaCamsModel extends AbstractModel {
|
||||||
.build();
|
.build();
|
||||||
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, MIMETYPE_APPLICATION_JSON)
|
||||||
.addHeader("Accept-Language", "en")
|
.addHeader(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.addHeader("Referer", BongaCams.baseUrl)
|
.addHeader(REFERER, BongaCams.baseUrl)
|
||||||
.addHeader("X-Requested-With", "XMLHttpRequest")
|
.addHeader(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.post(body)
|
.post(body)
|
||||||
.build();
|
.build();
|
||||||
try(Response response = site.getHttpClient().execute(request)) {
|
try(Response response = site.getHttpClient().execute(request)) {
|
||||||
|
@ -132,9 +134,6 @@ public class BongaCamsModel extends AbstractModel {
|
||||||
@Override
|
@Override
|
||||||
public List<StreamSource> getStreamSources() throws IOException, ExecutionException, ParseException, PlaylistException {
|
public List<StreamSource> getStreamSources() throws IOException, ExecutionException, ParseException, PlaylistException {
|
||||||
String streamUrl = getStreamUrl();
|
String streamUrl = getStreamUrl();
|
||||||
if (streamUrl == null) {
|
|
||||||
return Collections.emptyList();
|
|
||||||
}
|
|
||||||
Request req = new Request.Builder().url(streamUrl).build();
|
Request req = new Request.Builder().url(streamUrl).build();
|
||||||
try(Response response = site.getHttpClient().execute(req)) {
|
try(Response response = site.getHttpClient().execute(req)) {
|
||||||
if(response.isSuccessful()) {
|
if(response.isSuccessful()) {
|
||||||
|
@ -194,11 +193,11 @@ public class BongaCamsModel extends AbstractModel {
|
||||||
.build();
|
.build();
|
||||||
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, MIMETYPE_APPLICATION_JSON)
|
||||||
.addHeader("Accept-Language", "en")
|
.addHeader(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.addHeader("Referer", BongaCams.baseUrl + '/' + getName())
|
.addHeader(REFERER, BongaCams.baseUrl + '/' + getName())
|
||||||
.addHeader("X-Requested-With", "XMLHttpRequest")
|
.addHeader(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.post(body)
|
.post(body)
|
||||||
.build();
|
.build();
|
||||||
try(Response response = site.getHttpClient().execute(request)) {
|
try(Response response = site.getHttpClient().execute(request)) {
|
||||||
|
@ -228,7 +227,10 @@ public class BongaCamsModel extends AbstractModel {
|
||||||
Collections.sort(streamSources);
|
Collections.sort(streamSources);
|
||||||
StreamSource best = streamSources.get(streamSources.size()-1);
|
StreamSource best = streamSources.get(streamSources.size()-1);
|
||||||
resolution = new int[] {best.width, best.height};
|
resolution = new int[] {best.width, best.height};
|
||||||
} catch (ExecutionException | IOException | ParseException | PlaylistException | InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
|
Thread.currentThread().interrupt();
|
||||||
|
LOG.warn("Couldn't determine stream resolution for {} - {}", getName(), e.getMessage());
|
||||||
|
} catch (ExecutionException | IOException | ParseException | PlaylistException e) {
|
||||||
LOG.warn("Couldn't determine stream resolution for {} - {}", getName(), e.getMessage());
|
LOG.warn("Couldn't determine stream resolution for {} - {}", getName(), e.getMessage());
|
||||||
}
|
}
|
||||||
return resolution;
|
return resolution;
|
||||||
|
@ -252,11 +254,11 @@ public class BongaCamsModel extends AbstractModel {
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.method("POST", body)
|
.method("POST", body)
|
||||||
.header("Accept", "*/*")
|
.header(ACCEPT, "*/*")
|
||||||
.header("Accept-Language", "en-US,en;q=0.5")
|
.header(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.header("Referer", getUrl())
|
.header(REFERER, getUrl())
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.header("X-Requested-With", "XMLHttpRequest")
|
.header(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
try(Response resp = site.getHttpClient().execute(req)) {
|
try(Response resp = site.getHttpClient().execute(req)) {
|
||||||
if(resp.isSuccessful()) {
|
if(resp.isSuccessful()) {
|
||||||
|
@ -278,10 +280,10 @@ public class BongaCamsModel extends AbstractModel {
|
||||||
private String getCsrfToken() throws IOException {
|
private String getCsrfToken() throws IOException {
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(getUrl())
|
.url(getUrl())
|
||||||
.header("Accept", "*/*")
|
.header(ACCEPT, "*/*")
|
||||||
.header("Accept-Language", "en-US,en;q=0.5")
|
.header(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.header("Referer", BongaCams.baseUrl)
|
.header(REFERER, BongaCams.baseUrl)
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.build();
|
.build();
|
||||||
try(Response resp = site.getHttpClient().execute(req)) {
|
try(Response resp = site.getHttpClient().execute(req)) {
|
||||||
if(resp.isSuccessful()) {
|
if(resp.isSuccessful()) {
|
||||||
|
@ -310,11 +312,11 @@ public class BongaCamsModel extends AbstractModel {
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.method("POST", body)
|
.method("POST", body)
|
||||||
.header("Accept", "*/*")
|
.header(ACCEPT, "*/*")
|
||||||
.header("Accept-Language", "en-US,en;q=0.5")
|
.header(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.header("Referer", getUrl())
|
.header(REFERER, getUrl())
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.header("X-Requested-With", "XMLHttpRequest")
|
.header(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
try (Response resp = site.getHttpClient().execute(req)) {
|
try (Response resp = site.getHttpClient().execute(req)) {
|
||||||
if (resp.isSuccessful()) {
|
if (resp.isSuccessful()) {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package ctbrec.sites.cam4;
|
package ctbrec.sites.cam4;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -83,6 +85,7 @@ public class Cam4 extends AbstractSite {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() throws IOException {
|
public void init() throws IOException {
|
||||||
|
// noop
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -120,7 +123,7 @@ public class Cam4 extends AbstractSite {
|
||||||
}
|
}
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.addHeader(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.build();
|
.build();
|
||||||
try(Response response = getHttpClient().execute(req)) {
|
try(Response response = getHttpClient().execute(req)) {
|
||||||
if(response.isSuccessful()) {
|
if(response.isSuccessful()) {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package ctbrec.sites.cam4;
|
package ctbrec.sites.cam4;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
|
@ -13,7 +15,7 @@ import okhttp3.Response;
|
||||||
|
|
||||||
public class Cam4HttpClient extends HttpClient {
|
public class Cam4HttpClient extends HttpClient {
|
||||||
|
|
||||||
private static final transient Logger LOG = LoggerFactory.getLogger(Cam4HttpClient.class);
|
private static final Logger LOG = LoggerFactory.getLogger(Cam4HttpClient.class);
|
||||||
|
|
||||||
public Cam4HttpClient() {
|
public Cam4HttpClient() {
|
||||||
super("cam4");
|
super("cam4");
|
||||||
|
@ -43,7 +45,7 @@ public class Cam4HttpClient extends HttpClient {
|
||||||
String mailUrl = Cam4.BASE_URI + "/mail/unreadThreads";
|
String mailUrl = Cam4.BASE_URI + "/mail/unreadThreads";
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(mailUrl)
|
.url(mailUrl)
|
||||||
.addHeader("X-Requested-With", "XMLHttpRequest")
|
.addHeader(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
Response response = execute(req);
|
Response response = execute(req);
|
||||||
if(response.isSuccessful() && response.body().contentLength() > 0) {
|
if(response.isSuccessful() && response.body().contentLength() > 0) {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package ctbrec.sites.cam4;
|
package ctbrec.sites.cam4;
|
||||||
|
|
||||||
import static ctbrec.Model.State.*;
|
import static ctbrec.Model.State.*;
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
@ -211,7 +212,7 @@ public class Cam4Model extends AbstractModel {
|
||||||
String url = site.getBaseUrl() + "/profiles/addFriendFavorite?action=addFavorite&object=" + getName() + "&_=" + System.currentTimeMillis();
|
String url = site.getBaseUrl() + "/profiles/addFriendFavorite?action=addFavorite&object=" + getName() + "&_=" + System.currentTimeMillis();
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.addHeader("X-Requested-With", "XMLHttpRequest")
|
.addHeader(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
try (Response response = site.getHttpClient().execute(req)) {
|
try (Response response = site.getHttpClient().execute(req)) {
|
||||||
return response.isSuccessful();
|
return response.isSuccessful();
|
||||||
|
@ -224,7 +225,7 @@ public class Cam4Model extends AbstractModel {
|
||||||
String url = site.getBaseUrl() + '/' + getName();
|
String url = site.getBaseUrl() + '/' + getName();
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.addHeader("X-Requested-With", "XMLHttpRequest")
|
.addHeader(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// we have to use a client without any cam4 cookies here, otherwise
|
// we have to use a client without any cam4 cookies here, otherwise
|
||||||
|
@ -251,7 +252,7 @@ public class Cam4Model extends AbstractModel {
|
||||||
req = new Request.Builder()
|
req = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.post(body)
|
.post(body)
|
||||||
.addHeader("X-Requested-With", "XMLHttpRequest")
|
.addHeader(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
try (Response resp = site.getHttpClient().execute(req)) {
|
try (Response resp = site.getHttpClient().execute(req)) {
|
||||||
if (resp.isSuccessful()) {
|
if (resp.isSuccessful()) {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package ctbrec.sites.camsoda;
|
package ctbrec.sites.camsoda;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -23,7 +25,7 @@ import okhttp3.Response;
|
||||||
|
|
||||||
public class Camsoda extends AbstractSite {
|
public class Camsoda extends AbstractSite {
|
||||||
|
|
||||||
private static final transient Logger LOG = LoggerFactory.getLogger(Camsoda.class);
|
private static final Logger LOG = LoggerFactory.getLogger(Camsoda.class);
|
||||||
public static final String BASE_URI = "https://www.camsoda.com";
|
public static final String BASE_URI = "https://www.camsoda.com";
|
||||||
private HttpClient httpClient;
|
private HttpClient httpClient;
|
||||||
|
|
||||||
|
@ -96,6 +98,7 @@ public class Camsoda extends AbstractSite {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() throws IOException {
|
public void init() throws IOException {
|
||||||
|
// noop
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -125,7 +128,7 @@ public class Camsoda extends AbstractSite {
|
||||||
String url = BASE_URI + "/api/v1/browse/autocomplete?s=" + URLEncoder.encode(q, "utf-8");
|
String url = BASE_URI + "/api/v1/browse/autocomplete?s=" + URLEncoder.encode(q, "utf-8");
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.addHeader(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.build();
|
.build();
|
||||||
try(Response response = getHttpClient().execute(req)) {
|
try(Response response = getHttpClient().execute(req)) {
|
||||||
if(response.isSuccessful()) {
|
if(response.isSuccessful()) {
|
||||||
|
@ -147,7 +150,7 @@ public class Camsoda extends AbstractSite {
|
||||||
}
|
}
|
||||||
return models;
|
return models;
|
||||||
} else {
|
} else {
|
||||||
LOG.warn("Search result: " + json.toString(2));
|
LOG.warn("Search result: {}", json.toString(2));
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package ctbrec.sites.chaturbate;
|
package ctbrec.sites.chaturbate;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
|
@ -62,7 +64,7 @@ public class Chaturbate extends AbstractSite {
|
||||||
String url = "https://chaturbate.com/p/" + username + "/";
|
String url = "https://chaturbate.com/p/" + username + "/";
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.build();
|
.build();
|
||||||
Response resp = getHttpClient().execute(req);
|
Response resp = getHttpClient().execute(req);
|
||||||
if (resp.isSuccessful()) {
|
if (resp.isSuccessful()) {
|
||||||
|
@ -121,7 +123,7 @@ public class Chaturbate extends AbstractSite {
|
||||||
// search online models
|
// search online models
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.build();
|
.build();
|
||||||
try(Response resp = getHttpClient().execute(req)) {
|
try(Response resp = getHttpClient().execute(req)) {
|
||||||
if(resp.isSuccessful()) {
|
if(resp.isSuccessful()) {
|
||||||
|
@ -134,7 +136,7 @@ public class Chaturbate extends AbstractSite {
|
||||||
url = baseUrl + '/' + q;
|
url = baseUrl + '/' + q;
|
||||||
req = new Request.Builder()
|
req = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.build();
|
.build();
|
||||||
try(Response resp = getHttpClient().execute(req)) {
|
try(Response resp = getHttpClient().execute(req)) {
|
||||||
if(resp.isSuccessful()) {
|
if(resp.isSuccessful()) {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package ctbrec.sites.chaturbate;
|
package ctbrec.sites.chaturbate;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.NoSuchElementException;
|
import java.util.NoSuchElementException;
|
||||||
|
|
||||||
|
@ -17,7 +19,7 @@ import okhttp3.Response;
|
||||||
|
|
||||||
public class ChaturbateHttpClient extends HttpClient {
|
public class ChaturbateHttpClient extends HttpClient {
|
||||||
|
|
||||||
private static final transient Logger LOG = LoggerFactory.getLogger(ChaturbateHttpClient.class);
|
private static final Logger LOG = LoggerFactory.getLogger(ChaturbateHttpClient.class);
|
||||||
protected String token;
|
protected String token;
|
||||||
|
|
||||||
public ChaturbateHttpClient() {
|
public ChaturbateHttpClient() {
|
||||||
|
@ -55,7 +57,7 @@ public class ChaturbateHttpClient extends HttpClient {
|
||||||
try {
|
try {
|
||||||
Request login = new Request.Builder()
|
Request login = new Request.Builder()
|
||||||
.url(Chaturbate.baseUrl + "/auth/login/")
|
.url(Chaturbate.baseUrl + "/auth/login/")
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.build();
|
.build();
|
||||||
Response response = client.newCall(login).execute();
|
Response response = client.newCall(login).execute();
|
||||||
String content = response.body().string();
|
String content = response.body().string();
|
||||||
|
@ -70,8 +72,8 @@ public class ChaturbateHttpClient extends HttpClient {
|
||||||
.build();
|
.build();
|
||||||
login = new Request.Builder()
|
login = new Request.Builder()
|
||||||
.url(Chaturbate.baseUrl + "/auth/login/")
|
.url(Chaturbate.baseUrl + "/auth/login/")
|
||||||
.header("Referer", Chaturbate.baseUrl + "/auth/login/")
|
.header(REFERER, Chaturbate.baseUrl + "/auth/login/")
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.post(body)
|
.post(body)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
@ -102,7 +104,7 @@ public class ChaturbateHttpClient extends HttpClient {
|
||||||
String url = "https://chaturbate.com/p/" + Config.getInstance().getSettings().username + "/";
|
String url = "https://chaturbate.com/p/" + Config.getInstance().getSettings().username + "/";
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.build();
|
.build();
|
||||||
Response resp = execute(req);
|
Response resp = execute(req);
|
||||||
if (resp.isSuccessful()) {
|
if (resp.isSuccessful()) {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package ctbrec.sites.chaturbate;
|
package ctbrec.sites.chaturbate;
|
||||||
|
|
||||||
import static ctbrec.Model.State.*;
|
import static ctbrec.Model.State.*;
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.EOFException;
|
import java.io.EOFException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
@ -38,7 +39,7 @@ import okhttp3.Response;
|
||||||
|
|
||||||
public class ChaturbateModel extends AbstractModel {
|
public class ChaturbateModel extends AbstractModel {
|
||||||
|
|
||||||
private static final transient Logger LOG = LoggerFactory.getLogger(ChaturbateModel.class);
|
private static final Logger LOG = LoggerFactory.getLogger(ChaturbateModel.class);
|
||||||
private int[] resolution = new int[2];
|
private int[] resolution = new int[2];
|
||||||
private StreamInfo streamInfo;
|
private StreamInfo streamInfo;
|
||||||
private long streamInfoTimestamp = 0;
|
private long streamInfoTimestamp = 0;
|
||||||
|
@ -149,9 +150,9 @@ public class ChaturbateModel extends AbstractModel {
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url("https://chaturbate.com/tipping/send_tip/"+getName()+"/")
|
.url("https://chaturbate.com/tipping/send_tip/"+getName()+"/")
|
||||||
.post(body)
|
.post(body)
|
||||||
.header("Referer", "https://chaturbate.com/"+getName()+"/")
|
.header(REFERER, "https://chaturbate.com/"+getName()+"/")
|
||||||
.header("X-Requested-With", "XMLHttpRequest")
|
.header(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.build();
|
.build();
|
||||||
try (Response response = getSite().getHttpClient().execute(req)) {
|
try (Response response = getSite().getHttpClient().execute(req)) {
|
||||||
if (!response.isSuccessful()) {
|
if (!response.isSuccessful()) {
|
||||||
|
@ -185,6 +186,7 @@ public class ChaturbateModel extends AbstractModel {
|
||||||
}
|
}
|
||||||
return sources;
|
return sources;
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
|
Thread.currentThread().interrupt();
|
||||||
throw new ExecutionException(e);
|
throw new ExecutionException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -202,7 +204,7 @@ public class ChaturbateModel extends AbstractModel {
|
||||||
private boolean follow(boolean follow) throws IOException {
|
private boolean follow(boolean follow) throws IOException {
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(getUrl())
|
.url(getUrl())
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.build();
|
.build();
|
||||||
Response resp = site.getHttpClient().execute(req);
|
Response resp = site.getHttpClient().execute(req);
|
||||||
resp.close();
|
resp.close();
|
||||||
|
@ -218,12 +220,12 @@ public class ChaturbateModel extends AbstractModel {
|
||||||
req = new Request.Builder()
|
req = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.method("POST", body)
|
.method("POST", body)
|
||||||
.header("Accept", "*/*")
|
.header(ACCEPT, "*/*")
|
||||||
.header("Accept-Language", "en-US,en;q=0.5")
|
.header(ACCEPT_LANGUAGE, "en-US,en;q=0.5")
|
||||||
.header("Referer", getUrl())
|
.header(REFERER, getUrl())
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.header("X-CSRFToken", ((ChaturbateHttpClient)site.getHttpClient()).getToken())
|
.header("X-CSRFToken", ((ChaturbateHttpClient)site.getHttpClient()).getToken())
|
||||||
.header("X-Requested-With", "XMLHttpRequest")
|
.header(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
resp = site.getHttpClient().execute(req);
|
resp = site.getHttpClient().execute(req);
|
||||||
if(resp.isSuccessful()) {
|
if(resp.isSuccessful()) {
|
||||||
|
@ -269,8 +271,8 @@ public class ChaturbateModel extends AbstractModel {
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(getSite().getBaseUrl() + "/get_edge_hls_url_ajax/")
|
.url(getSite().getBaseUrl() + "/get_edge_hls_url_ajax/")
|
||||||
.post(body)
|
.post(body)
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.header("X-Requested-With", "XMLHttpRequest")
|
.header(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
try(Response response = getSite().getHttpClient().execute(req)) {
|
try(Response response = getSite().getHttpClient().execute(req)) {
|
||||||
if(response.isSuccessful()) {
|
if(response.isSuccessful()) {
|
||||||
|
@ -339,7 +341,7 @@ public class ChaturbateModel extends AbstractModel {
|
||||||
LOG.trace("Loading master playlist {}", streamInfo.url);
|
LOG.trace("Loading master playlist {}", streamInfo.url);
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(streamInfo.url)
|
.url(streamInfo.url)
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.build();
|
.build();
|
||||||
try (Response response = getSite().getHttpClient().execute(req)) {
|
try (Response response = getSite().getHttpClient().execute(req)) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package ctbrec.sites.fc2live;
|
package ctbrec.sites.fc2live;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
@ -19,7 +21,7 @@ import okhttp3.WebSocketListener;
|
||||||
|
|
||||||
public class Fc2HttpClient extends HttpClient {
|
public class Fc2HttpClient extends HttpClient {
|
||||||
|
|
||||||
private static final transient Logger LOG = LoggerFactory.getLogger(Fc2HttpClient.class);
|
private static final Logger LOG = LoggerFactory.getLogger(Fc2HttpClient.class);
|
||||||
|
|
||||||
public Fc2HttpClient() {
|
public Fc2HttpClient() {
|
||||||
super("fc2live");
|
super("fc2live");
|
||||||
|
@ -53,7 +55,7 @@ public class Fc2HttpClient extends HttpClient {
|
||||||
.build();
|
.build();
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url("https://secure.id.fc2.com/index.php?mode=login&switch_language=en")
|
.url("https://secure.id.fc2.com/index.php?mode=login&switch_language=en")
|
||||||
.header("Referer", "https://fc2.com/en/login.php")
|
.header(REFERER, "https://fc2.com/en/login.php")
|
||||||
.header("Content-Type", "application/x-www-form-urlencoded")
|
.header("Content-Type", "application/x-www-form-urlencoded")
|
||||||
.post(body)
|
.post(body)
|
||||||
.build();
|
.build();
|
||||||
|
@ -67,7 +69,7 @@ public class Fc2HttpClient extends HttpClient {
|
||||||
LOG.debug("Calling https://secure.id.fc2.com/?login=done");
|
LOG.debug("Calling https://secure.id.fc2.com/?login=done");
|
||||||
req = new Request.Builder()
|
req = new Request.Builder()
|
||||||
.url("https://secure.id.fc2.com/?login=done")
|
.url("https://secure.id.fc2.com/?login=done")
|
||||||
.header("Referer", "https://secure.id.fc2.com/index.php?mode=login&switch_language=en")
|
.header(REFERER, "https://secure.id.fc2.com/index.php?mode=login&switch_language=en")
|
||||||
.build();
|
.build();
|
||||||
try (Response resp2 = execute(req)) {
|
try (Response resp2 = execute(req)) {
|
||||||
if (resp.isSuccessful()) {
|
if (resp.isSuccessful()) {
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
package ctbrec.sites.fc2live;
|
package ctbrec.sites.fc2live;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
@ -70,11 +73,11 @@ public class Fc2Model extends AbstractModel {
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.method("POST", body)
|
.method("POST", body)
|
||||||
.header("Accept", "*/*")
|
.header(ACCEPT, "*/*")
|
||||||
.header("Accept-Language", "en-US,en;q=0.5")
|
.header(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.header("Referer", Fc2Live.BASE_URL)
|
.header(REFERER, Fc2Live.BASE_URL)
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.header("X-Requested-With", "XMLHttpRequest")
|
.header(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
try(Response resp = getSite().getHttpClient().execute(req)) {
|
try(Response resp = getSite().getHttpClient().execute(req)) {
|
||||||
if(resp.isSuccessful()) {
|
if(resp.isSuccessful()) {
|
||||||
|
@ -130,11 +133,11 @@ public class Fc2Model extends AbstractModel {
|
||||||
List<StreamSource> sources = new ArrayList<>();
|
List<StreamSource> sources = new ArrayList<>();
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(playlistUrl)
|
.url(playlistUrl)
|
||||||
.header("Accept", "*/*")
|
.header(ACCEPT, "*/*")
|
||||||
.header("Accept-Language", "en-US,en;q=0.5")
|
.header(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.header("Origin", Fc2Live.BASE_URL)
|
.header(ORIGIN, Fc2Live.BASE_URL)
|
||||||
.header("Referer", getUrl())
|
.header(REFERER, getUrl())
|
||||||
.build();
|
.build();
|
||||||
try(Response response = site.getHttpClient().execute(req)) {
|
try(Response response = site.getHttpClient().execute(req)) {
|
||||||
if(response.isSuccessful()) {
|
if(response.isSuccessful()) {
|
||||||
|
@ -179,11 +182,11 @@ public class Fc2Model extends AbstractModel {
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.method("POST", body)
|
.method("POST", body)
|
||||||
.header("Accept", "*/*")
|
.header(ACCEPT, "*/*")
|
||||||
.header("Accept-Language", "en-US,en;q=0.5")
|
.header(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.header("Referer", Fc2Live.BASE_URL)
|
.header(REFERER, Fc2Live.BASE_URL)
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.header("X-Requested-With", "XMLHttpRequest")
|
.header(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
LOG.debug("Fetching page {}", url);
|
LOG.debug("Fetching page {}", url);
|
||||||
try(Response resp = getSite().getHttpClient().execute(req)) {
|
try(Response resp = getSite().getHttpClient().execute(req)) {
|
||||||
|
@ -239,7 +242,7 @@ public class Fc2Model extends AbstractModel {
|
||||||
.build();
|
.build();
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(getSite().getBaseUrl() + "/api/favoriteManager.php")
|
.url(getSite().getBaseUrl() + "/api/favoriteManager.php")
|
||||||
.header("Referer", getUrl())
|
.header(REFERER, getUrl())
|
||||||
.header("Content-Type", "application/x-www-form-urlencoded")
|
.header("Content-Type", "application/x-www-form-urlencoded")
|
||||||
.post(body)
|
.post(body)
|
||||||
.build();
|
.build();
|
||||||
|
@ -294,9 +297,9 @@ public class Fc2Model extends AbstractModel {
|
||||||
|
|
||||||
Request request = new Request.Builder()
|
Request request = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.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")
|
||||||
.build();
|
.build();
|
||||||
ws = getSite().getHttpClient().newWebSocket(request, new WebSocketListener() {
|
ws = getSite().getHttpClient().newWebSocket(request, new WebSocketListener() {
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package ctbrec.sites.flirt4free;
|
package ctbrec.sites.flirt4free;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -64,7 +66,7 @@ public class Flirt4Free extends AbstractSite {
|
||||||
String url = Flirt4Free.BASE_URI + "/my-account/";
|
String url = Flirt4Free.BASE_URI + "/my-account/";
|
||||||
Request request = new Request.Builder()
|
Request request = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.build();
|
.build();
|
||||||
try(Response response = getHttpClient().execute(request)) {
|
try(Response response = getHttpClient().execute(request)) {
|
||||||
if(response.isSuccessful()) {
|
if(response.isSuccessful()) {
|
||||||
|
@ -92,6 +94,7 @@ public class Flirt4Free extends AbstractSite {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() throws IOException {
|
public void init() throws IOException {
|
||||||
|
// noop
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -121,7 +124,7 @@ public class Flirt4Free extends AbstractSite {
|
||||||
String url = BASE_URI + "/search/?query=" + URLEncoder.encode(q, "utf-8");
|
String url = BASE_URI + "/search/?query=" + URLEncoder.encode(q, "utf-8");
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.build();
|
.build();
|
||||||
try (Response response = getHttpClient().execute(req)) {
|
try (Response response = getHttpClient().execute(req)) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package ctbrec.sites.flirt4free;
|
package ctbrec.sites.flirt4free;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -15,7 +17,7 @@ import okhttp3.Response;
|
||||||
|
|
||||||
public class Flirt4FreeHttpClient extends HttpClient {
|
public class Flirt4FreeHttpClient extends HttpClient {
|
||||||
|
|
||||||
private static final transient Logger LOG = LoggerFactory.getLogger(Flirt4FreeHttpClient.class);
|
private static final Logger LOG = LoggerFactory.getLogger(Flirt4FreeHttpClient.class);
|
||||||
|
|
||||||
public Flirt4FreeHttpClient() {
|
public Flirt4FreeHttpClient() {
|
||||||
super("flirt4free");
|
super("flirt4free");
|
||||||
|
@ -47,7 +49,7 @@ public class Flirt4FreeHttpClient extends HttpClient {
|
||||||
.build();
|
.build();
|
||||||
Request request = new Request.Builder()
|
Request request = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.post(body)
|
.post(body)
|
||||||
.build();
|
.build();
|
||||||
try (Response response = execute(request)) {
|
try (Response response = execute(request)) {
|
||||||
|
@ -68,7 +70,7 @@ public class Flirt4FreeHttpClient extends HttpClient {
|
||||||
String url = Flirt4Free.BASE_URI + "/my-account/";
|
String url = Flirt4Free.BASE_URI + "/my-account/";
|
||||||
Request request = new Request.Builder()
|
Request request = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.build();
|
.build();
|
||||||
try(Response response = execute(request)) {
|
try(Response response = execute(request)) {
|
||||||
if(response.isSuccessful()) {
|
if(response.isSuccessful()) {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package ctbrec.sites.flirt4free;
|
package ctbrec.sites.flirt4free;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
|
@ -70,11 +72,11 @@ public class Flirt4FreeModel extends AbstractModel {
|
||||||
try {
|
try {
|
||||||
Request request = new Request.Builder()
|
Request request = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.header("Accept", "*/*")
|
.header(ACCEPT, "*/*")
|
||||||
.header("Accept-Language", "en-US,en;q=0.5")
|
.header(ACCEPT_LANGUAGE, "en-US,en;q=0.5")
|
||||||
.header("Referer", getUrl())
|
.header(REFERER, getUrl())
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.header("X-Requested-With", "XMLHttpRequest")
|
.header(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
try (Response response = getSite().getHttpClient().execute(request)) {
|
try (Response response = getSite().getHttpClient().execute(request)) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
|
@ -111,11 +113,11 @@ public class Flirt4FreeModel extends AbstractModel {
|
||||||
LOG.trace("Loading url {}", url);
|
LOG.trace("Loading url {}", url);
|
||||||
Request request = new Request.Builder()
|
Request request = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.header("Accept", "*/*")
|
.header(ACCEPT, "*/*")
|
||||||
.header("Accept-Language", "en-US,en;q=0.5")
|
.header(ACCEPT_LANGUAGE, "en-US,en;q=0.5")
|
||||||
.header("Referer", getUrl())
|
.header(REFERER, getUrl())
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.header("X-Requested-With", "XMLHttpRequest")
|
.header(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
try (Response response = getSite().getHttpClient().execute(request)) {
|
try (Response response = getSite().getHttpClient().execute(request)) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
|
@ -182,11 +184,11 @@ public class Flirt4FreeModel extends AbstractModel {
|
||||||
LOG.trace("Loading master playlist {}", streamUrl);
|
LOG.trace("Loading master playlist {}", streamUrl);
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(streamUrl)
|
.url(streamUrl)
|
||||||
.header("Accept", "*/*")
|
.header(ACCEPT, "*/*")
|
||||||
.header("Accept-Language", "en-US,en;q=0.5")
|
.header(ACCEPT_LANGUAGE, "en-US,en;q=0.5")
|
||||||
.header("Referer", getUrl())
|
.header(REFERER, getUrl())
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.header("X-Requested-With", "XMLHttpRequest")
|
.header(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
acquireSlot();
|
acquireSlot();
|
||||||
try (Response response = getSite().getHttpClient().execute(req)) {
|
try (Response response = getSite().getHttpClient().execute(req)) {
|
||||||
|
@ -212,11 +214,11 @@ public class Flirt4FreeModel extends AbstractModel {
|
||||||
LOG.trace("Opening chat websocket {}", url);
|
LOG.trace("Opening chat websocket {}", url);
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.header("Accept", "*/*")
|
.header(ACCEPT, "*/*")
|
||||||
.header("Accept-Language", "en-US,en;q=0.5")
|
.header(ACCEPT_LANGUAGE, "en-US,en;q=0.5")
|
||||||
.header("Referer", getUrl())
|
.header(REFERER, getUrl())
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.header("X-Requested-With", "XMLHttpRequest")
|
.header(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
getSite().getHttpClient().newWebSocket(req, new WebSocketListener() {
|
getSite().getHttpClient().newWebSocket(req, new WebSocketListener() {
|
||||||
|
@ -317,12 +319,12 @@ public class Flirt4FreeModel extends AbstractModel {
|
||||||
LOG.debug("Trying to send tip: {}", url);
|
LOG.debug("Trying to send tip: {}", url);
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.header("Accept", "*/*")
|
.header(ACCEPT, "*/*")
|
||||||
.header("Accept-Language", "en-US,en;q=0.5")
|
.header(ACCEPT_LANGUAGE, "en-US,en;q=0.5")
|
||||||
.header("Referer", getUrl())
|
.header(REFERER, getUrl())
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.header("Referer", getUrl())
|
.header(REFERER, getUrl())
|
||||||
.header("X-Requested-With", "XMLHttpRequest")
|
.header(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
try (Response response = getSite().getHttpClient().execute(req)) {
|
try (Response response = getSite().getHttpClient().execute(req)) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
|
@ -351,10 +353,10 @@ public class Flirt4FreeModel extends AbstractModel {
|
||||||
try {
|
try {
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(getUrl())
|
.url(getUrl())
|
||||||
.header("Accept", "*/*")
|
.header(ACCEPT, "*/*")
|
||||||
.header("Accept-Language", "en-US,en;q=0.5")
|
.header(ACCEPT_LANGUAGE, "en-US,en;q=0.5")
|
||||||
.header("Referer", getUrl())
|
.header(REFERER, getUrl())
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.build();
|
.build();
|
||||||
try (Response response = getSite().getHttpClient().execute(req)) {
|
try (Response response = getSite().getHttpClient().execute(req)) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
|
@ -430,10 +432,10 @@ public class Flirt4FreeModel extends AbstractModel {
|
||||||
LOG.debug("Sending follow/unfollow request: {}", url);
|
LOG.debug("Sending follow/unfollow request: {}", url);
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.header("Accept", "*/*")
|
.header(ACCEPT, "*/*")
|
||||||
.header("Accept-Language", "en-US,en;q=0.5")
|
.header(ACCEPT_LANGUAGE, "en-US,en;q=0.5")
|
||||||
.header("Referer", getUrl())
|
.header(REFERER, getUrl())
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.build();
|
.build();
|
||||||
try (Response response = getSite().getHttpClient().execute(req)) {
|
try (Response response = getSite().getHttpClient().execute(req)) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
package ctbrec.sites.jasmin;
|
package ctbrec.sites.jasmin;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
@ -59,9 +62,13 @@ public class LiveJasmin extends AbstractSite {
|
||||||
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().url(url).addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
Request request = new Request.Builder().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, Locale.ENGLISH.getLanguage())
|
||||||
|
.addHeader(REFERER, getBaseUrl())
|
||||||
|
.addHeader(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
|
.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();
|
||||||
|
@ -132,8 +139,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().url(url).addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent).addHeader("Accept", "*/*")
|
Request request = new Request.Builder().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, Locale.ENGLISH.getLanguage())
|
||||||
|
.addHeader(REFERER, getBaseUrl())
|
||||||
|
.addHeader(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
|
.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();
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
package ctbrec.sites.jasmin;
|
package ctbrec.sites.jasmin;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.NoSuchElementException;
|
import java.util.NoSuchElementException;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
@ -53,11 +56,11 @@ public class LiveJasminHttpClient extends HttpClient {
|
||||||
String url = "https://m." + LiveJasmin.baseDomain + "/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, MIMETYPE_APPLICATION_JSON)
|
||||||
.addHeader("Accept-Language", "en")
|
.addHeader(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.addHeader("Referer", LiveJasmin.baseUrl)
|
.addHeader(REFERER, LiveJasmin.baseUrl)
|
||||||
.addHeader("X-Requested-With", "XMLHttpRequest")
|
.addHeader(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
try(Response response = temp.newCall(request).execute()) {
|
try(Response response = temp.newCall(request).execute()) {
|
||||||
LOG.debug("Login Check {}: {} - {}", url, response.code(), response.message());
|
LOG.debug("Login Check {}: {} - {}", url, response.code(), response.message());
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
package ctbrec.sites.jasmin;
|
package ctbrec.sites.jasmin;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
|
|
||||||
|
@ -36,7 +39,7 @@ import okhttp3.Response;
|
||||||
|
|
||||||
public class LiveJasminModel extends AbstractModel {
|
public class LiveJasminModel extends AbstractModel {
|
||||||
|
|
||||||
private static final transient Logger LOG = LoggerFactory.getLogger(LiveJasminModel.class);
|
private static final Logger LOG = LoggerFactory.getLogger(LiveJasminModel.class);
|
||||||
private String id;
|
private String id;
|
||||||
private boolean online = false;
|
private boolean online = false;
|
||||||
private int[] resolution;
|
private int[] resolution;
|
||||||
|
@ -51,12 +54,13 @@ public class LiveJasminModel extends AbstractModel {
|
||||||
|
|
||||||
protected void loadModelInfo() throws IOException {
|
protected void loadModelInfo() throws IOException {
|
||||||
String url = "https://m." + LiveJasmin.baseDomain + "/en/chat-html5/" + getName();
|
String url = "https://m." + LiveJasmin.baseDomain + "/en/chat-html5/" + getName();
|
||||||
Request req = new Request.Builder().url(url).header("User-Agent",
|
Request req = new Request.Builder().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")
|
"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, MIMETYPE_APPLICATION_JSON)
|
||||||
.header("Accept-Language", "en")
|
.header(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.header("Referer", getSite().getBaseUrl())
|
.header(REFERER, getSite().getBaseUrl())
|
||||||
.header("X-Requested-With", "XMLHttpRequest")
|
.header(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
try (Response response = getSite().getHttpClient().execute(req)) {
|
try (Response response = getSite().getHttpClient().execute(req)) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
|
@ -126,7 +130,7 @@ public class LiveJasminModel extends AbstractModel {
|
||||||
streamSources.clear();
|
streamSources.clear();
|
||||||
for (PlaylistData playlistData : master.getPlaylists()) {
|
for (PlaylistData playlistData : master.getPlaylists()) {
|
||||||
StreamSource streamsource = new StreamSource();
|
StreamSource streamsource = new StreamSource();
|
||||||
String baseUrl = masterUrl.toString();
|
String baseUrl = masterUrl;
|
||||||
baseUrl = baseUrl.substring(0, baseUrl.lastIndexOf('/') + 1);
|
baseUrl = baseUrl.substring(0, baseUrl.lastIndexOf('/') + 1);
|
||||||
streamsource.mediaPlaylistUrl = baseUrl + playlistData.getUri();
|
streamsource.mediaPlaylistUrl = baseUrl + playlistData.getUri();
|
||||||
if (playlistData.hasStreamInfo()) {
|
if (playlistData.hasStreamInfo()) {
|
||||||
|
@ -162,11 +166,11 @@ public class LiveJasminModel extends AbstractModel {
|
||||||
LOG.debug("Getting master playlist URL from {}", url);
|
LOG.debug("Getting master playlist URL from {}", url);
|
||||||
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, MIMETYPE_APPLICATION_JSON)
|
||||||
.addHeader("Accept-Language", "en")
|
.addHeader(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.addHeader("Referer", getUrl())
|
.addHeader(REFERER, getUrl())
|
||||||
.addHeader("X-Requested-With", "XMLHttpRequest")
|
.addHeader(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
try (Response response = site.getHttpClient().execute(request)) {
|
try (Response response = site.getHttpClient().execute(request)) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
|
@ -186,6 +190,7 @@ public class LiveJasminModel extends AbstractModel {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void invalidateCacheEntries() {
|
public void invalidateCacheEntries() {
|
||||||
|
// noop
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -198,6 +203,7 @@ public class LiveJasminModel extends AbstractModel {
|
||||||
try {
|
try {
|
||||||
tippingSocket.sendTip(this, Config.getInstance(), tokens);
|
tippingSocket.sendTip(this, Config.getInstance(), tokens);
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
|
Thread.currentThread().interrupt();
|
||||||
throw new IOException(e);
|
throw new IOException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -243,11 +249,11 @@ public class LiveJasminModel extends AbstractModel {
|
||||||
}
|
}
|
||||||
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", "*/*")
|
.addHeader(ACCEPT, "*/*")
|
||||||
.addHeader("Accept-Language", "en")
|
.addHeader(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.addHeader("Referer", getUrl())
|
.addHeader(REFERER, getUrl())
|
||||||
.addHeader("X-Requested-With", "XMLHttpRequest")
|
.addHeader(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
try (Response response = site.getHttpClient().execute(request)) {
|
try (Response response = site.getHttpClient().execute(request)) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
package ctbrec.sites.jasmin;
|
package ctbrec.sites.jasmin;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
@ -17,7 +20,7 @@ import okhttp3.WebSocketListener;
|
||||||
import okio.ByteString;
|
import okio.ByteString;
|
||||||
|
|
||||||
public class LiveJasminTippingWebSocket {
|
public class LiveJasminTippingWebSocket {
|
||||||
private static final transient Logger LOG = LoggerFactory.getLogger(LiveJasminTippingWebSocket.class);
|
private static final Logger LOG = LoggerFactory.getLogger(LiveJasminTippingWebSocket.class);
|
||||||
|
|
||||||
private String applicationId;
|
private String applicationId;
|
||||||
private String sessionId;
|
private String sessionId;
|
||||||
|
@ -51,10 +54,10 @@ public class LiveJasminTippingWebSocket {
|
||||||
|
|
||||||
Request request = new Request.Builder()
|
Request request = new Request.Builder()
|
||||||
.url("https://" + relayHost + "/")
|
.url("https://" + relayHost + "/")
|
||||||
.header("Origin", LiveJasmin.baseUrl)
|
.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, config.getSettings().httpUserAgent)
|
||||||
.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, Locale.ENGLISH.getLanguage())
|
||||||
.build();
|
.build();
|
||||||
Object monitor = new Object();
|
Object monitor = new Object();
|
||||||
relay = client.newWebSocket(request, new WebSocketListener() {
|
relay = client.newWebSocket(request, new WebSocketListener() {
|
||||||
|
@ -139,11 +142,11 @@ public class LiveJasminTippingWebSocket {
|
||||||
String url = "https://m." + LiveJasmin.baseDomain + "/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, MIMETYPE_APPLICATION_JSON)
|
||||||
.header("Accept-Language", "en")
|
.header(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.header("Referer", LiveJasmin.baseUrl)
|
.header(REFERER, LiveJasmin.baseUrl)
|
||||||
.header("X-Requested-With", "XMLHttpRequest")
|
.header(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
try (Response response = client.execute(req)) {
|
try (Response response = client.execute(req)) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package ctbrec.sites.mfc;
|
package ctbrec.sites.mfc;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -76,12 +78,12 @@ public class DashStreamSourceProvider implements StreamSourceProvider {
|
||||||
// @formatter:off
|
// @formatter:off
|
||||||
Request request = new Request.Builder()
|
Request request = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.header("Accept", "*/*")
|
.header(ACCEPT, "*/*")
|
||||||
.header("Accept-Language", "en-US,en;q=0.5")
|
.header(ACCEPT_LANGUAGE, "en-US,en;q=0.5")
|
||||||
.header("User-Agent", config.getSettings().httpUserAgent)
|
.header(USER_AGENT, config.getSettings().httpUserAgent)
|
||||||
.header("Origin", site.getBaseUrl())
|
.header(ORIGIN, site.getBaseUrl())
|
||||||
.header("Referer", site.getBaseUrl())
|
.header(REFERER, site.getBaseUrl())
|
||||||
.header("Connection", "keep-alive")
|
.header(CONNECTION, KEEP_ALIVE)
|
||||||
.build(); // @formatter:on
|
.build(); // @formatter:on
|
||||||
LOG.trace("Loading manifest {}", url);
|
LOG.trace("Loading manifest {}", url);
|
||||||
try (Response response = site.getHttpClient().execute(request)) {
|
try (Response response = site.getHttpClient().execute(request)) {
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package ctbrec.sites.mfc;
|
package ctbrec.sites.mfc;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
import static ctbrec.sites.mfc.MessageTypes.*;
|
import static ctbrec.sites.mfc.MessageTypes.*;
|
||||||
|
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
|
@ -105,7 +106,7 @@ public class MyFreeCamsClient {
|
||||||
while (running) {
|
while (running) {
|
||||||
if (ws == null && !connecting) {
|
if (ws == null && !connecting) {
|
||||||
LOG.info("Websocket is null. Starting a new connection");
|
LOG.info("Websocket is null. Starting a new connection");
|
||||||
Request req = new Request.Builder().url(wsUrl).addHeader("Origin", "http://m.myfreecams.com").build();
|
Request req = new Request.Builder().url(wsUrl).addHeader(ORIGIN, "http://m.myfreecams.com").build();
|
||||||
ws = createWebSocket(req);
|
ws = createWebSocket(req);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package ctbrec.sites.mfc;
|
package ctbrec.sites.mfc;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.NoSuchElementException;
|
import java.util.NoSuchElementException;
|
||||||
|
@ -25,7 +27,7 @@ import okhttp3.WebSocketListener;
|
||||||
|
|
||||||
public class MyFreeCamsHttpClient extends HttpClient {
|
public class MyFreeCamsHttpClient extends HttpClient {
|
||||||
|
|
||||||
private static final transient Logger LOG = LoggerFactory.getLogger(MyFreeCamsHttpClient.class);
|
private static final Logger LOG = LoggerFactory.getLogger(MyFreeCamsHttpClient.class);
|
||||||
|
|
||||||
public MyFreeCamsHttpClient() {
|
public MyFreeCamsHttpClient() {
|
||||||
super("myfreecams");
|
super("myfreecams");
|
||||||
|
@ -54,7 +56,7 @@ public class MyFreeCamsHttpClient extends HttpClient {
|
||||||
.build();
|
.build();
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(MyFreeCams.baseUrl + "/php/login.php")
|
.url(MyFreeCams.baseUrl + "/php/login.php")
|
||||||
.header("Referer", MyFreeCams.baseUrl)
|
.header(REFERER, MyFreeCams.baseUrl)
|
||||||
.header("Content-Type", "application/x-www-form-urlencoded")
|
.header("Content-Type", "application/x-www-form-urlencoded")
|
||||||
.post(body)
|
.post(body)
|
||||||
.build();
|
.build();
|
||||||
|
@ -93,6 +95,7 @@ public class MyFreeCamsHttpClient extends HttpClient {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public WebSocket newWebSocket(Request req, WebSocketListener webSocketListener) {
|
public WebSocket newWebSocket(Request req, WebSocketListener webSocketListener) {
|
||||||
return client.newWebSocket(req, webSocketListener);
|
return client.newWebSocket(req, webSocketListener);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package ctbrec.sites.mfc;
|
package ctbrec.sites.mfc;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.net.URLDecoder;
|
import java.net.URLDecoder;
|
||||||
|
@ -148,7 +150,7 @@ public class MyFreeCamsModel extends AbstractModel {
|
||||||
req = new Request.Builder()
|
req = new Request.Builder()
|
||||||
.url(tipUrl)
|
.url(tipUrl)
|
||||||
.post(body)
|
.post(body)
|
||||||
.addHeader("Referer", initUrl)
|
.addHeader(REFERER, initUrl)
|
||||||
.build();
|
.build();
|
||||||
try(Response response = site.getHttpClient().execute(req)) {
|
try(Response response = site.getHttpClient().execute(req)) {
|
||||||
if(!response.isSuccessful()) {
|
if(!response.isSuccessful()) {
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
package ctbrec.sites.streamate;
|
package ctbrec.sites.streamate;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
@ -24,7 +27,7 @@ import okhttp3.Response;
|
||||||
|
|
||||||
public class Streamate extends AbstractSite {
|
public class Streamate extends AbstractSite {
|
||||||
|
|
||||||
private static final transient Logger LOG = LoggerFactory.getLogger(Streamate.class);
|
private static final Logger LOG = LoggerFactory.getLogger(Streamate.class);
|
||||||
|
|
||||||
public static final String BASE_URL = "https://www.streamate.com";
|
public static final String BASE_URL = "https://www.streamate.com";
|
||||||
|
|
||||||
|
@ -66,11 +69,11 @@ public class Streamate extends AbstractSite {
|
||||||
// .build();
|
// .build();
|
||||||
// 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, MIMETYPE_APPLICATION_JSON)
|
||||||
// .addHeader("Accept-Language", "en")
|
// .addHeader(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
// .addHeader("Referer", Streamate.BASE_URL)
|
// .addHeader(REFERER, Streamate.BASE_URL)
|
||||||
// .addHeader("X-Requested-With", "XMLHttpRequest")
|
// .addHeader(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
// .post(body)
|
// .post(body)
|
||||||
// .build();
|
// .build();
|
||||||
// try(Response response = getHttpClient().execute(request)) {
|
// try(Response response = getHttpClient().execute(request)) {
|
||||||
|
@ -109,6 +112,7 @@ public class Streamate extends AbstractSite {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() throws IOException {
|
public void init() throws IOException {
|
||||||
|
// nothing to initialize
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -142,11 +146,11 @@ public class Streamate extends AbstractSite {
|
||||||
public List<Model> search(String q) throws IOException, InterruptedException {
|
public List<Model> search(String q) throws IOException, InterruptedException {
|
||||||
String url = BASE_URL + "/api/search/autocomplete?exact=false&skin_search_kids=0&results_per_page=10&query=" + URLEncoder.encode(q, "utf-8");
|
String url = BASE_URL + "/api/search/autocomplete?exact=false&skin_search_kids=0&results_per_page=10&query=" + URLEncoder.encode(q, "utf-8");
|
||||||
Request req = new Request.Builder().url(url)
|
Request req = new Request.Builder().url(url)
|
||||||
.addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.addHeader(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.addHeader("Accept", "application/json, text/javascript, */*")
|
.addHeader(ACCEPT, MIMETYPE_APPLICATION_JSON)
|
||||||
.addHeader("Accept-Language", "en")
|
.addHeader(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.addHeader("Referer", Streamate.BASE_URL)
|
.addHeader(REFERER, Streamate.BASE_URL)
|
||||||
.addHeader("X-Requested-With", "XMLHttpRequest").build();
|
.addHeader(X_REQUESTED_WITH, XML_HTTP_REQUEST).build();
|
||||||
try (Response response = getHttpClient().execute(req)) {
|
try (Response response = getHttpClient().execute(req)) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
String body = response.body().string();
|
String body = response.body().string();
|
||||||
|
@ -167,7 +171,7 @@ public class Streamate extends AbstractSite {
|
||||||
}
|
}
|
||||||
return models;
|
return models;
|
||||||
} else {
|
} else {
|
||||||
LOG.warn("Search result: " + json.toString(2));
|
LOG.warn("Search result: {}", json.toString(2));
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
package ctbrec.sites.streamate;
|
package ctbrec.sites.streamate;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.NoSuchElementException;
|
import java.util.NoSuchElementException;
|
||||||
|
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
@ -19,7 +22,9 @@ import okhttp3.Response;
|
||||||
|
|
||||||
public class StreamateHttpClient extends HttpClient {
|
public class StreamateHttpClient extends HttpClient {
|
||||||
|
|
||||||
private static final transient Logger LOG = LoggerFactory.getLogger(StreamateHttpClient.class);
|
private static final String SAKEY_KEY = "sakey";
|
||||||
|
|
||||||
|
private static final Logger LOG = LoggerFactory.getLogger(StreamateHttpClient.class);
|
||||||
|
|
||||||
private Long userId;
|
private Long userId;
|
||||||
private String saKey = "";
|
private String saKey = "";
|
||||||
|
@ -38,7 +43,7 @@ public class StreamateHttpClient extends HttpClient {
|
||||||
|
|
||||||
// try to load sakey from cookie
|
// try to load sakey from cookie
|
||||||
try {
|
try {
|
||||||
Cookie cookie = getCookieJar().getCookie(HttpUrl.parse("https://www.streamate.com"), "sakey");
|
Cookie cookie = getCookieJar().getCookie(HttpUrl.parse("https://www.streamate.com"), SAKEY_KEY);
|
||||||
saKey = cookie.value();
|
saKey = cookie.value();
|
||||||
} catch (NoSuchElementException e) {
|
} catch (NoSuchElementException e) {
|
||||||
// ignore
|
// ignore
|
||||||
|
@ -71,11 +76,11 @@ public class StreamateHttpClient extends HttpClient {
|
||||||
RequestBody body = RequestBody.create(MediaType.parse("application/json"), loginRequest.toString());
|
RequestBody body = RequestBody.create(MediaType.parse("application/json"), loginRequest.toString());
|
||||||
Request login = new Request.Builder()
|
Request login = new Request.Builder()
|
||||||
.url(Streamate.BASE_URL + "/api/member/login")
|
.url(Streamate.BASE_URL + "/api/member/login")
|
||||||
.addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.addHeader(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.addHeader("Accept", "application/json, text/javascript, */*")
|
.addHeader(ACCEPT, MIMETYPE_APPLICATION_JSON)
|
||||||
.addHeader("Accept-Language", "en")
|
.addHeader(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.addHeader("Referer", Streamate.BASE_URL)
|
.addHeader(REFERER, Streamate.BASE_URL)
|
||||||
.addHeader("X-Requested-With", "XMLHttpRequest")
|
.addHeader(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.post(body)
|
.post(body)
|
||||||
.build();
|
.build();
|
||||||
try (Response response = client.newCall(login).execute()) {
|
try (Response response = client.newCall(login).execute()) {
|
||||||
|
@ -83,15 +88,14 @@ public class StreamateHttpClient extends HttpClient {
|
||||||
if(response.isSuccessful()) {
|
if(response.isSuccessful()) {
|
||||||
JSONObject json = new JSONObject(content);
|
JSONObject json = new JSONObject(content);
|
||||||
//LOG.debug(json.toString(2));
|
//LOG.debug(json.toString(2));
|
||||||
loggedIn = json.has("sakey");
|
loggedIn = json.has(SAKEY_KEY);
|
||||||
saKey = json.optString("sakey");
|
saKey = json.optString(SAKEY_KEY);
|
||||||
JSONObject account = json.getJSONObject("account");
|
JSONObject account = json.getJSONObject("account");
|
||||||
userId = account.getLong("userid");
|
userId = account.getLong("userid");
|
||||||
userNickname = account.getString("nickname");
|
userNickname = account.getString("nickname");
|
||||||
} else {
|
} else {
|
||||||
throw new IOException("Login failed: " + response.code() + " " + response.message());
|
throw new IOException("Login failed: " + response.code() + " " + response.message());
|
||||||
}
|
}
|
||||||
response.close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return loggedIn;
|
return loggedIn;
|
||||||
|
@ -105,20 +109,16 @@ public class StreamateHttpClient extends HttpClient {
|
||||||
url = url + "&page_number=1&results_per_page=48&sakey=" + saKey + "&userid=" + userId;
|
url = url + "&page_number=1&results_per_page=48&sakey=" + saKey + "&userid=" + userId;
|
||||||
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, */*")
|
.addHeader(ACCEPT, MIMETYPE_APPLICATION_JSON)
|
||||||
.addHeader("Accept-Language", "en")
|
.addHeader(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.addHeader("Referer", Streamate.BASE_URL)
|
.addHeader(REFERER, Streamate.BASE_URL)
|
||||||
.build();
|
.build();
|
||||||
try(Response response = execute(request)) {
|
try(Response response = execute(request)) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
String content = response.body().string();
|
String content = response.body().string();
|
||||||
JSONObject json = new JSONObject(content);
|
JSONObject json = new JSONObject(content);
|
||||||
if(json.optString("status").equals("SM_OK")) {
|
return json.optString("status").equals("SM_OK");
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
package ctbrec.sites.streamate;
|
package ctbrec.sites.streamate;
|
||||||
|
|
||||||
import static ctbrec.Model.State.*;
|
import static ctbrec.Model.State.*;
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
|
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
|
@ -31,7 +33,7 @@ import okio.Buffer;
|
||||||
|
|
||||||
public class StreamateModel extends AbstractModel {
|
public class StreamateModel extends AbstractModel {
|
||||||
|
|
||||||
private static final transient Logger LOG = LoggerFactory.getLogger(StreamateModel.class);
|
private static final Logger LOG = LoggerFactory.getLogger(StreamateModel.class);
|
||||||
|
|
||||||
private boolean online = false;
|
private boolean online = false;
|
||||||
private List<StreamSource> streamSources = new ArrayList<>();
|
private List<StreamSource> streamSources = new ArrayList<>();
|
||||||
|
@ -44,11 +46,11 @@ public class StreamateModel extends AbstractModel {
|
||||||
if(ignoreCache) {
|
if(ignoreCache) {
|
||||||
String url = "https://sea1c-ls.naiadsystems.com/sea1c-edge-ls/80/live/s:" + getName() + ".json";
|
String url = "https://sea1c-ls.naiadsystems.com/sea1c-edge-ls/80/live/s:" + getName() + ".json";
|
||||||
Request req = new Request.Builder().url(url)
|
Request req = new Request.Builder().url(url)
|
||||||
.addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.addHeader(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.addHeader("Accept", "*/*")
|
.addHeader(ACCEPT, "*/*")
|
||||||
.addHeader("Accept-Language", "en")
|
.addHeader(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.addHeader("Referer", Streamate.BASE_URL + '/' + getName())
|
.addHeader(REFERER, Streamate.BASE_URL + '/' + getName())
|
||||||
.addHeader("X-Requested-With", "XMLHttpRequest")
|
.addHeader(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
try(Response response = site.getHttpClient().execute(req)) {
|
try(Response response = site.getHttpClient().execute(req)) {
|
||||||
online = response.isSuccessful();
|
online = response.isSuccessful();
|
||||||
|
@ -82,11 +84,11 @@ public class StreamateModel extends AbstractModel {
|
||||||
public List<StreamSource> getStreamSources() throws IOException, ExecutionException, ParseException, PlaylistException {
|
public List<StreamSource> getStreamSources() throws IOException, ExecutionException, ParseException, PlaylistException {
|
||||||
String url = "https://sea1c-ls.naiadsystems.com/sea1c-edge-ls/80/live/s:" + getName() + ".json";
|
String url = "https://sea1c-ls.naiadsystems.com/sea1c-edge-ls/80/live/s:" + getName() + ".json";
|
||||||
Request req = new Request.Builder().url(url)
|
Request req = new Request.Builder().url(url)
|
||||||
.addHeader("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.addHeader(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.addHeader("Accept", "*/*")
|
.addHeader(ACCEPT, "*/*")
|
||||||
.addHeader("Accept-Language", "en")
|
.addHeader(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.addHeader("Referer", Streamate.BASE_URL + '/' + getName())
|
.addHeader(REFERER, Streamate.BASE_URL + '/' + getName())
|
||||||
.addHeader("X-Requested-With", "XMLHttpRequest")
|
.addHeader(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
try(Response response = site.getHttpClient().execute(req)) {
|
try(Response response = site.getHttpClient().execute(req)) {
|
||||||
if(response.isSuccessful()) {
|
if(response.isSuccessful()) {
|
||||||
|
@ -197,11 +199,11 @@ public class StreamateModel extends AbstractModel {
|
||||||
LOG.debug("tip params {}", b.readUtf8());
|
LOG.debug("tip params {}", b.readUtf8());
|
||||||
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, MIMETYPE_APPLICATION_JSON)
|
||||||
.addHeader("Accept-Language", "en")
|
.addHeader(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.addHeader("Referer", Streamate.BASE_URL + '/' + getName())
|
.addHeader(REFERER, Streamate.BASE_URL + '/' + getName())
|
||||||
.addHeader("X-Requested-With", "XMLHttpRequest")
|
.addHeader(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.post(body)
|
.post(body)
|
||||||
.build();
|
.build();
|
||||||
try(Response response = site.getHttpClient().execute(request)) {
|
try(Response response = site.getHttpClient().execute(request)) {
|
||||||
|
@ -228,11 +230,11 @@ public class StreamateModel extends AbstractModel {
|
||||||
+ "&sabasic=&sakey=&sk=www.streamate.com&userid=0&version=6.3.17&ajax=1";
|
+ "&sabasic=&sakey=&sk=www.streamate.com&userid=0&version=6.3.17&ajax=1";
|
||||||
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, MIMETYPE_APPLICATION_JSON)
|
||||||
.addHeader("Accept-Language", "en")
|
.addHeader(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.addHeader("Referer", Streamate.BASE_URL + '/' + getName())
|
.addHeader(REFERER, Streamate.BASE_URL + '/' + getName())
|
||||||
.addHeader("X-Requested-With", "XMLHttpRequest")
|
.addHeader(X_REQUESTED_WITH, XML_HTTP_REQUEST)
|
||||||
.build();
|
.build();
|
||||||
try(Response response = site.getHttpClient().execute(request)) {
|
try(Response response = site.getHttpClient().execute(request)) {
|
||||||
if(response.isSuccessful()) {
|
if(response.isSuccessful()) {
|
||||||
|
@ -297,10 +299,10 @@ public class StreamateModel extends AbstractModel {
|
||||||
String url = site.getBaseUrl() + "/ajax/fav-notify.php?userid="+userId+"&sakey="+saKey+"&pid="+id+"&fav="+follow+"&domain=streamate.com";
|
String url = site.getBaseUrl() + "/ajax/fav-notify.php?userid="+userId+"&sakey="+saKey+"&pid="+id+"&fav="+follow+"&domain=streamate.com";
|
||||||
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, */*")
|
.addHeader(ACCEPT, "application/json, */*")
|
||||||
.addHeader("Accept-Language", "en")
|
.addHeader(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||||
.addHeader("Referer", getSite().getBaseUrl())
|
.addHeader(REFERER, getSite().getBaseUrl())
|
||||||
.post(body)
|
.post(body)
|
||||||
.build();
|
.build();
|
||||||
try(Response response = getSite().getHttpClient().execute(request)) {
|
try(Response response = getSite().getHttpClient().execute(request)) {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package ctbrec.sites.streamate;
|
package ctbrec.sites.streamate;
|
||||||
|
|
||||||
|
import static ctbrec.io.HttpConstants.*;
|
||||||
|
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
@ -16,7 +18,7 @@ import okio.ByteString;
|
||||||
|
|
||||||
public class StreamateWebsocketClient {
|
public class StreamateWebsocketClient {
|
||||||
|
|
||||||
private static final transient Logger LOG = LoggerFactory.getLogger(StreamateWebsocketClient.class);
|
private static final Logger LOG = LoggerFactory.getLogger(StreamateWebsocketClient.class);
|
||||||
private String url;
|
private String url;
|
||||||
private HttpClient client;
|
private HttpClient client;
|
||||||
|
|
||||||
|
@ -30,7 +32,7 @@ public class StreamateWebsocketClient {
|
||||||
LOG.debug("Connecting to {}", url);
|
LOG.debug("Connecting to {}", url);
|
||||||
Object monitor = new Object();
|
Object monitor = new Object();
|
||||||
Request request = new Request.Builder()
|
Request request = new Request.Builder()
|
||||||
.header("User-Agent", Config.getInstance().getSettings().httpUserAgent)
|
.header(USER_AGENT, Config.getInstance().getSettings().httpUserAgent)
|
||||||
.build();
|
.build();
|
||||||
client.newWebSocket(request, new WebSocketListener() {
|
client.newWebSocket(request, new WebSocketListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -51,7 +53,7 @@ public class StreamateWebsocketClient {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onMessage(WebSocket webSocket, ByteString bytes) {
|
public void onMessage(WebSocket webSocket, ByteString bytes) {
|
||||||
LOG.debug("ws btxt {}", bytes.toString());
|
LOG.debug("ws btxt {}", bytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue