Configured Reality Kings to fetch session from RK scene overview.
This commit is contained in:
@@ -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,
|
||||
|
||||
43
src/tools/realitykings.js
Normal file
43
src/tools/realitykings.js
Normal file
@@ -0,0 +1,43 @@
|
||||
'use strict';
|
||||
|
||||
const https = require('https');
|
||||
const bhttp = require('bhttp');
|
||||
const fetch = require('node-fetch');
|
||||
const { request } = require('undici');
|
||||
const express = require('express');
|
||||
|
||||
async function init() {
|
||||
const res = await fetch('https://www.realitykings.com/scenes?site=45', {
|
||||
method: 'HEAD',
|
||||
headers: {
|
||||
'user-agent': 'HTTPie/2.6.0',
|
||||
'accept-encoding': 'gzip, deflate, br',
|
||||
accept: '*/*',
|
||||
connection: 'keep-alive',
|
||||
},
|
||||
});
|
||||
|
||||
console.log(res.status, res.headers);
|
||||
|
||||
const app = express();
|
||||
|
||||
app.get('/', (appReq, appRes) => {
|
||||
console.log(appReq.headers);
|
||||
appRes.status(204).send();
|
||||
});
|
||||
|
||||
app.listen(8000, () => {
|
||||
console.log('Listening on port 8000');
|
||||
|
||||
fetch('http://127.0.0.1:8000', {
|
||||
headers: {
|
||||
'user-agent': 'HTTPie/2.6.0',
|
||||
'accept-encoding': 'gzip, deflate, br',
|
||||
accept: '*/*',
|
||||
connection: 'keep-alive',
|
||||
},
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
init();
|
||||
@@ -267,8 +267,20 @@ async function scrapeNetworkSequential(networkEntity) {
|
||||
return releases.uniqueReleases;
|
||||
}
|
||||
|
||||
async function getBeforeNetwork(networkEntity) {
|
||||
try {
|
||||
return await networkEntity.scraper?.beforeNetwork?.(networkEntity);
|
||||
} catch (error) {
|
||||
if (networkEntity.scraper?.requireBeforeNetwork === false) {
|
||||
return null;
|
||||
}
|
||||
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
async function scrapeNetworkParallel(networkEntity) {
|
||||
const beforeNetwork = await networkEntity.scraper?.beforeNetwork?.(networkEntity);
|
||||
const beforeNetwork = await getBeforeNetwork(networkEntity);
|
||||
|
||||
return Promise.map(
|
||||
networkEntity.includedChildren,
|
||||
|
||||
Reference in New Issue
Block a user