Merge branch 'dev' into v4

# Conflicts:
#	client/pom.xml
#	common/pom.xml
#	master/pom.xml
#	server/pom.xml
This commit is contained in:
0xb00bface 2021-01-24 12:36:10 +01:00
commit bd9645105b
6 changed files with 48 additions and 17 deletions

View File

@ -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

View File

@ -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

View File

@ -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);

View File

@ -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");

View File

@ -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/";

View File

@ -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();