Fix loading of model list
This commit is contained in:
parent
a909f2996f
commit
c9caaade9d
|
@ -6,6 +6,7 @@ public class HttpConstants {
|
|||
public static final String ACCEPT_ENCODING = "Accept-Encoding";
|
||||
public static final String ACCEPT_ENCODING_GZIP = "gzip";
|
||||
public static final String ACCEPT_LANGUAGE = "Accept-Language";
|
||||
public static final String AUTHORIZATION = "Authorization";
|
||||
public static final String CACHE_CONTROL = "Cache-Control";
|
||||
public static final String CONNECTION = "Connection";
|
||||
public static final String CONTENT_ENCODING = "Content-Encoding";
|
||||
|
@ -25,5 +26,6 @@ public class HttpConstants {
|
|||
public static final String X_XSRF_TOKEN = "X-XSRF-Token";
|
||||
public static final String X_REQUESTED_WITH = "X-Requested-With";
|
||||
|
||||
private HttpConstants() {}
|
||||
private HttpConstants() {
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,10 +34,8 @@ public class MVLive extends AbstractSite {
|
|||
public static final String BASE_URL = "https://www.manyvids.com";
|
||||
public static final String LIVE_URL = BASE_URL + "/mv-live/";
|
||||
private final Pattern configPattern = Pattern.compile("<script type=\"combinativ-config\">(.*?)</script>");
|
||||
private final Pattern graphQlUrlPattern = Pattern.compile("api:\\s*\"(https://.+?.appsync-api..+?.amazonaws.com/graphql)\",");
|
||||
private final Pattern graphQlApiKeyPattern = Pattern.compile("apiKey:\\s*\"(.*?)\"");
|
||||
private final Pattern graphQlUrlPattern = Pattern.compile("api:\\s*\"(https://.+?.appsync-api..+?.amazonaws.com/graphql)\"");
|
||||
private String graphqlBaseUri;
|
||||
private String apiKey;
|
||||
|
||||
private MVLiveHttpClient httpClient;
|
||||
private String mvtoken;
|
||||
|
@ -149,12 +147,6 @@ public class MVLive extends AbstractSite {
|
|||
Matcher m = graphQlUrlPattern.matcher(content);
|
||||
if (m.find()) {
|
||||
graphqlBaseUri = m.group(1);
|
||||
m = graphQlApiKeyPattern.matcher(content);
|
||||
if (m.find()) {
|
||||
apiKey = m.group(1);
|
||||
} else {
|
||||
throw new IllegalStateException("GraphQL API key not found");
|
||||
}
|
||||
} else {
|
||||
throw new IllegalStateException("GraphQL URL not found");
|
||||
}
|
||||
|
@ -190,7 +182,34 @@ public class MVLive extends AbstractSite {
|
|||
|
||||
public List<Model> getModels() throws IOException {
|
||||
String body = new JSONObject()
|
||||
.put("query", "query LanderLiveSessions($nextToken: String, $limit: Int, $country: String, $subdivision: String, $audience: String) { liveSessions( nextToken: $nextToken limit: $limit country: $country subdivision: $subdivision audience: $audience ) { presenters { id age avatarSrc city country name previewImgSrc starOfTheDay status sessionType streamingStartDate towerImgSrc profileHandle } nextToken }}")
|
||||
.put("query", """
|
||||
query LanderLiveSessions($nextToken: String, $limit: Int, $country: String, $subdivision: String, $audience: String) {
|
||||
liveSessions(
|
||||
nextToken: $nextToken
|
||||
limit: $limit
|
||||
country: $country
|
||||
subdivision: $subdivision
|
||||
audience: $audience
|
||||
) {
|
||||
presenters {
|
||||
id
|
||||
age
|
||||
avatarSrc
|
||||
city
|
||||
country
|
||||
name
|
||||
previewImgSrc
|
||||
starOfTheDay
|
||||
status
|
||||
sessionType
|
||||
streamingStartDate
|
||||
towerImgSrc
|
||||
profileHandle
|
||||
}
|
||||
nextToken
|
||||
}
|
||||
}
|
||||
""")
|
||||
.put("variables", new JSONObject()
|
||||
.put("audience", "public")
|
||||
.put("country", Locale.getDefault().getDisplayCountry(Locale.ENGLISH))
|
||||
|
@ -200,14 +219,7 @@ public class MVLive extends AbstractSite {
|
|||
).toString(2);
|
||||
RequestBody requestBody = RequestBody.Companion.create(body, MediaType.parse("application/json"));
|
||||
|
||||
Request request = new Request.Builder()
|
||||
.url(getGraphQlUrl())
|
||||
.header(ACCEPT, "*/*")
|
||||
.header(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||
.header(USER_AGENT, getConfig().getSettings().httpUserAgent)
|
||||
.header(ORIGIN, MVLive.BASE_URL)
|
||||
.header(REFERER, MVLive.BASE_URL)
|
||||
.header("x-api-key", apiKey)
|
||||
Request request = newRequestBuilder()
|
||||
.post(requestBody)
|
||||
.build();
|
||||
try (Response response = getHttpClient().execute(request)) {
|
||||
|
@ -345,5 +357,16 @@ public class MVLive extends AbstractSite {
|
|||
return super.createModelFromUrl(url);
|
||||
}
|
||||
|
||||
private Request.Builder newRequestBuilder() {
|
||||
return new Request.Builder()
|
||||
.url(getGraphQlUrl())
|
||||
.header(ACCEPT, "*/*")
|
||||
.header(ACCEPT_LANGUAGE, Locale.ENGLISH.getLanguage())
|
||||
.header(USER_AGENT, getConfig().getSettings().httpUserAgent)
|
||||
.header(ORIGIN, MVLive.BASE_URL)
|
||||
.header(REFERER, MVLive.BASE_URL)
|
||||
.header(AUTHORIZATION, "GUEST");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue