From 3c9468b0f124600e9b8c338ea10ba8bdcec99232 Mon Sep 17 00:00:00 2001 From: DebaucheryLibrarian Date: Fri, 18 Sep 2020 03:27:00 +0200 Subject: [PATCH] Fixed wrong MindGeek session acquire URL. --- seeds/01_networks.js | 3 +++ src/entities.js | 2 +- src/scrapers/mindgeek.js | 20 ++++++++++++-------- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/seeds/01_networks.js b/seeds/01_networks.js index af51d21e..e9f45366 100644 --- a/seeds/01_networks.js +++ b/seeds/01_networks.js @@ -130,6 +130,9 @@ const networks = [ url: 'https://www.brazzers.com', description: 'Brazzers homepage is updated daily with official HD porn scenes. Our hottest videos and sex series are filled with big tits, sexy milf, top pornstars and special events.', parent: 'mindgeek', + parameters: { + childSession: true, + }, }, { slug: 'boobpedia', diff --git a/src/entities.js b/src/entities.js index 73ff4e41..6a5e3b8d 100644 --- a/src/entities.js +++ b/src/entities.js @@ -19,7 +19,7 @@ function curateEntity(entity, includeParameters = false) { slug: entity.slug, type: entity.type, parameters: includeParameters ? entity.parameters : null, - parent: curateEntity(entity.parent), + parent: curateEntity(entity.parent, includeParameters), } : {}; if (entity.children) { diff --git a/src/scrapers/mindgeek.js b/src/scrapers/mindgeek.js index 5d097485..44680fdf 100644 --- a/src/scrapers/mindgeek.js +++ b/src/scrapers/mindgeek.js @@ -143,15 +143,19 @@ function getUrl(site) { throw new Error(`Mind Geek site '${site.name}' (${site.url}) not supported`); } -async function getSession(url, site) { +async function getSession(site) { const cookieJar = new CookieJar(); const session = bhttp.session({ cookieJar }); // const res = await session.get(url); - const res = await session.get(site.parameters?.siteId ? site.parent.url : site.url); + const sessionUrl = site.parameters?.siteId && !(site.parameters?.childSession || site.parent?.parameters?.childSession) + ? site.parent.url + : site.url; + + const res = await session.get(sessionUrl); if (res.statusCode === 200) { - const cookieString = await cookieJar.getCookieStringAsync(url); + const cookieString = await cookieJar.getCookieStringAsync(sessionUrl); const { instance_token: instanceToken } = cookieToData(cookieString); return { session, instanceToken }; @@ -203,7 +207,7 @@ async function fetchLatest(site, page = 1) { const { searchParams } = new URL(url); const siteId = searchParams.get('site'); - const { session, instanceToken } = await getSession(url, site); + const { session, instanceToken } = await getSession(site); const beforeDate = moment().add('1', 'day').format('YYYY-MM-DD'); const limit = 10; @@ -228,7 +232,7 @@ async function fetchLatest(site, page = 1) { async function fetchUpcoming(site) { const url = getUrl(site); - const { session, instanceToken } = await getSession(url, site); + const { session, instanceToken } = await getSession(site); const apiUrl = 'https://site-api.project1service.com/v2/upcoming-releases'; @@ -254,7 +258,7 @@ async function fetchScene(url, site, baseScene) { } const entryId = url.match(/\d+/)[0]; - const { session, instanceToken } = await getSession(url, site); + const { session, instanceToken } = await getSession(site); const res = await session.get(`https://site-api.project1service.com/v2/releases/${entryId}`, { headers: { @@ -270,8 +274,8 @@ async function fetchScene(url, site, baseScene) { } async function fetchProfile({ name: actorName }, networkOrNetworkSlug, actorPath = 'model') { - const url = `https://www.${networkOrNetworkSlug.slug || networkOrNetworkSlug}.com`; - const { session, instanceToken } = await getSession(url, networkOrNetworkSlug); + // const url = `https://www.${networkOrNetworkSlug.slug || networkOrNetworkSlug}.com`; + const { session, instanceToken } = await getSession(networkOrNetworkSlug); const res = await session.get(`https://site-api.project1service.com/v1/actors/?search=${encodeURI(actorName)}`, { headers: {