Configured Reality Kings to fetch session from RK scene overview.

This commit is contained in:
DebaucheryLibrarian
2022-02-11 22:14:44 +01:00
parent 98a72a4929
commit 496c29e569
11 changed files with 157 additions and 64 deletions

View File

@@ -155,8 +155,8 @@ function getUrl(site) {
throw new Error(`Mind Geek site '${site.name}' (${site.url}) not supported`);
}
async function getSession(site, parameters) {
if (site.slug === 'mindgeek') {
async function getSession(site, parameters, url) {
if (site.slug === 'mindgeek' || site.parameters?.parentSession === false) {
// most MG sites have a parent network to acquire a session from, don't try to acquire session from mindgeek.com for independent channels
return null;
}
@@ -166,7 +166,7 @@ async function getSession(site, parameters) {
const sessionUrl = site.parameters?.siteId && !(site.parameters?.native || site.parameters?.childSession || site.parent?.parameters?.childSession)
? site.parent.url
: site.url;
: (url || site.url);
const res = await http.get(sessionUrl, {
session,
@@ -179,7 +179,9 @@ async function getSession(site, parameters) {
const cookieString = await cookieJar.getCookieStringAsync(sessionUrl);
const { instance_token: instanceToken } = cookie.parse(cookieString);
return { session, instanceToken };
if (instanceToken) {
return { session, instanceToken };
}
}
throw new Error(`Failed to acquire MindGeek session (${res.statusCode})`);
@@ -238,7 +240,9 @@ async function fetchLatest(site, page = 1, options) {
const { searchParams } = new URL(url);
const siteId = searchParams.get('site');
const { session, instanceToken } = options.beforeNetwork?.headers?.Instance ? options.beforeNetwork : await getSession(site, options.parameters);
const { session, instanceToken } = options.beforeNetwork?.headers?.Instance
? options.beforeNetwork
: await getSession(site, options.parameters, url);
const beforeDate = moment().add('1', 'day').format('YYYY-MM-DD');
const limit = 24;
@@ -366,6 +370,7 @@ async function fetchProfile({ name: actorName, slug: actorSlug }, { entity, para
module.exports = {
beforeNetwork: getSession,
beforeFetchScenes: getSession,
requireBeforeNetwork: false,
scrapeLatestX,
fetchLatest,
fetchUpcoming,