Merge branch 'dev' into v4
# Conflicts: # client/pom.xml # common/pom.xml # master/pom.xml # server/pom.xml
This commit is contained in:
commit
bd9645105b
|
@ -1,3 +1,8 @@
|
|||
3.13.1
|
||||
========================
|
||||
* Fixed Streamate tabs
|
||||
* Fixed MVLive recordings
|
||||
|
||||
3.13.0
|
||||
========================
|
||||
* Added "Recently watched" tab. Can be disabled in Settings -> General
|
||||
|
|
|
@ -2,6 +2,7 @@ package ctbrec.ui.sites.streamate;
|
|||
|
||||
import static ctbrec.Model.State.*;
|
||||
import static ctbrec.io.HttpConstants.*;
|
||||
import static ctbrec.sites.streamate.Streamate.*;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
|
@ -42,7 +43,7 @@ public class StreamateFollowedService extends PaginatedScheduledService {
|
|||
public StreamateFollowedService(Streamate streamate) {
|
||||
this.streamate = streamate;
|
||||
this.httpClient = (StreamateHttpClient) streamate.getHttpClient();
|
||||
this.url = "https://member.naiadsystems.com/search/v3/favorites?domain=streamate.com&filters=";
|
||||
this.url = NAIAD_URL + "/favorites?domain=streamate.com&filters=";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -15,7 +15,7 @@ import javafx.scene.Scene;
|
|||
import javafx.scene.control.Tab;
|
||||
|
||||
public class StreamateTabProvider extends TabProvider {
|
||||
private static final transient Logger LOG = LoggerFactory.getLogger(StreamateTabProvider.class);
|
||||
private static final Logger LOG = LoggerFactory.getLogger(StreamateTabProvider.class);
|
||||
private Streamate streamate;
|
||||
private Recorder recorder;
|
||||
private ThumbOverviewTab followedTab;
|
||||
|
@ -29,15 +29,17 @@ public class StreamateTabProvider extends TabProvider {
|
|||
public List<Tab> getTabs(Scene scene) {
|
||||
List<Tab> tabs = new ArrayList<>();
|
||||
try {
|
||||
tabs.add(createTab("Girls", Streamate.BASE_URL + "/api/search/list?domain=streamate.com&index=availperf&filters=gender:f"));
|
||||
tabs.add(createTab("Guys", Streamate.BASE_URL + "/api/search/list?domain=streamate.com&index=availperf&filters=gender:m"));
|
||||
tabs.add(createTab("Couples", Streamate.BASE_URL + "/api/search/list?domain=streamate.com&index=availperf&filters=gender:mf"));
|
||||
tabs.add(createTab("Lesbian", Streamate.BASE_URL + "/api/search/list?domain=streamate.com&index=availperf&filters=gender:ff"));
|
||||
tabs.add(createTab("Gay", Streamate.BASE_URL + "/api/search/list?domain=streamate.com&index=availperf&filters=gender:mm"));
|
||||
tabs.add(createTab("Groups", Streamate.BASE_URL + "/api/search/list?domain=streamate.com&index=availperf&filters=gender:g"));
|
||||
tabs.add(createTab("Trans female", Streamate.BASE_URL + "/api/search/list?domain=streamate.com&index=availperf&filters=gender:tm2f"));
|
||||
tabs.add(createTab("Trans male", Streamate.BASE_URL + "/api/search/list?domain=streamate.com&index=availperf&filters=gender:tf2m"));
|
||||
tabs.add(createTab("New", Streamate.BASE_URL + "/api/search/list?domain=streamate.com&index=availperf&filters=new:true"));
|
||||
// performers?domain=streamate.com&from=0&size=48&useProductScore=false&filters=gender:f,ff,mf,tm2f,g;online:true&boostedFilters=&excludedFilters=&country=DE&language=de&genderSetting=f
|
||||
//https://member.naiadsystems.com/search/v3/performers?domain=streamate.com&filters=gender:f;online:true&from=0&size=48
|
||||
tabs.add(createTab("Girls", Streamate.NAIAD_URL + "/performers?domain=streamate.com&boostedFilters=&excludedFilters=&useProductScore=false&filters=gender:f;online:true"));
|
||||
tabs.add(createTab("Guys", Streamate.NAIAD_URL + "/performers?domain=streamate.com&boostedFilters=&excludedFilters=&useProductScore=false&filters=gender:m;online:true"));
|
||||
tabs.add(createTab("Couples", Streamate.NAIAD_URL + "/performers?domain=streamate.com&boostedFilters=&excludedFilters=&useProductScore=false&filters=gender:mf;online:true"));
|
||||
tabs.add(createTab("Lesbian", Streamate.NAIAD_URL + "/performers?domain=streamate.com&boostedFilters=&excludedFilters=&useProductScore=false&filters=gender:ff;online:true"));
|
||||
tabs.add(createTab("Gay", Streamate.NAIAD_URL + "/performers?domain=streamate.com&boostedFilters=&excludedFilters=&useProductScore=false&filters=gender:mm;online:true"));
|
||||
tabs.add(createTab("Groups", Streamate.NAIAD_URL + "/performers?domain=streamate.com&boostedFilters=&excludedFilters=&useProductScore=false&filters=gender:g;online:true"));
|
||||
tabs.add(createTab("Trans female", Streamate.NAIAD_URL + "/performers?domain=streamate.com&boostedFilters=&excludedFilters=&useProductScore=false&filters=gender:tm2f;online:true"));
|
||||
tabs.add(createTab("Trans male", Streamate.NAIAD_URL + "/performers?domain=streamate.com&boostedFilters=&excludedFilters=&useProductScore=false&filters=gender:tf2m;online:true"));
|
||||
tabs.add(createTab("New", Streamate.NAIAD_URL + "/performers?domain=streamate.com&boostedFilters=&excludedFilters=&useProductScore=false&filters=new:true;online:true"));
|
||||
|
||||
followedTab = new StreamateFollowedTab(streamate);
|
||||
followedTab.setRecorder(recorder);
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
package ctbrec.ui.sites.streamate;
|
||||
|
||||
import static ctbrec.Model.State.*;
|
||||
import static ctbrec.io.HttpConstants.*;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import javax.xml.xpath.XPathExpressionException;
|
||||
|
@ -46,9 +48,18 @@ public class StreamateUpdateService extends PaginatedScheduledService {
|
|||
@Override
|
||||
public List<Model> call() throws IOException, SAXException, ParserConfigurationException, XPathExpressionException {
|
||||
int from = (page - 1) * MODELS_PER_PAGE;
|
||||
String saKey = httpClient.getSaKey();
|
||||
String pageUrl = url + "&from=" + from + "&size=" + MODELS_PER_PAGE;
|
||||
LOG.debug("Fetching page {}", pageUrl);
|
||||
Request request = httpClient.newRequestBuilder().url(pageUrl).build();
|
||||
Request request = httpClient.newRequestBuilder()
|
||||
.url(pageUrl)
|
||||
.header(ORIGIN, streamate.getBaseUrl())
|
||||
.header("sakey", saKey)
|
||||
.header("platform", "SCP")
|
||||
.header("smtid", UUID.randomUUID().toString() + "G0211569057409")
|
||||
.header("smeid", UUID.randomUUID().toString() + "G0211569057409")
|
||||
.header("smvid", UUID.randomUUID().toString() + "G0211569057409")
|
||||
.build();
|
||||
try (Response response = httpClient.execute(request)) {
|
||||
if (response.isSuccessful()) {
|
||||
List<Model> models = new ArrayList<>();
|
||||
|
@ -60,7 +71,6 @@ public class StreamateUpdateService extends PaginatedScheduledService {
|
|||
String nickname = p.getString("nickname");
|
||||
StreamateModel model = (StreamateModel) streamate.createModel(nickname);
|
||||
model.setId(p.getLong("id"));
|
||||
//model.setPreview(p.getString("thumbnail"));
|
||||
model.setPreview("https://cdn.nsimg.net/snap/320x240/" + model.getId() + ".jpg");
|
||||
model.setDescription(p.optString("headlineMessage"));
|
||||
boolean online = p.optBoolean("online");
|
||||
|
|
|
@ -34,7 +34,7 @@ public class MVLive extends AbstractSite {
|
|||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(MVLive.class);
|
||||
|
||||
public static final String APP_HOST = "app-v1.live.manyvids.com";
|
||||
public static final String APP_HOST = "app-v2.live.manyvids.com";
|
||||
public static final String WS_URL = "wss://" + APP_HOST;
|
||||
public static final String WS_ORIGIN = "https://live.manyvids.com";
|
||||
public static final String BASE_URL = "https://www.manyvids.com/MVLive/";
|
||||
|
|
|
@ -1,10 +1,13 @@
|
|||
package ctbrec.sites.streamate;
|
||||
|
||||
import static ctbrec.io.HttpConstants.*;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
|
@ -27,6 +30,7 @@ public class Streamate extends AbstractSite {
|
|||
private static final Logger LOG = LoggerFactory.getLogger(Streamate.class);
|
||||
|
||||
public static final String BASE_URL = "https://www.streamate.com";
|
||||
public static final String NAIAD_URL = "https://member.naiadsystems.com/search/v3";
|
||||
|
||||
private StreamateHttpClient httpClient;
|
||||
|
||||
|
@ -43,7 +47,6 @@ public class Streamate extends AbstractSite {
|
|||
@Override
|
||||
public String getAffiliateLink() {
|
||||
return BASE_URL + "/landing/click/?AFNO=2-11329.1";
|
||||
// return BASE_URL + "/landing/click/?AFNO=2-11330.2";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -141,8 +144,18 @@ public class Streamate extends AbstractSite {
|
|||
|
||||
@Override
|
||||
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");
|
||||
Request req = httpClient.newRequestBuilder().url(url).build();
|
||||
String url = NAIAD_URL + "/autocomplete?filters=gender:&performerCount=10&domain=streamate.com&tagCount=5&query=" + URLEncoder.encode(q, "utf-8");
|
||||
LOG.debug("Search: {}", url);
|
||||
String saKey = httpClient.getSaKey();
|
||||
Request req = httpClient.newRequestBuilder()
|
||||
.url(url)
|
||||
.header(ORIGIN, getBaseUrl())
|
||||
.header("sakey", saKey)
|
||||
.header("platform", "SCP")
|
||||
.header("smtid", UUID.randomUUID().toString() + "G0211569057409")
|
||||
.header("smeid", UUID.randomUUID().toString() + "G0211569057409")
|
||||
.header("smvid", UUID.randomUUID().toString() + "G0211569057409")
|
||||
.build();
|
||||
try (Response response = getHttpClient().execute(req)) {
|
||||
if (response.isSuccessful()) {
|
||||
String body = response.body().string();
|
||||
|
|
Loading…
Reference in New Issue