diff --git a/src/scrapers/mindgeek.js b/src/scrapers/mindgeek.js index ae8aad67..5d097485 100644 --- a/src/scrapers/mindgeek.js +++ b/src/scrapers/mindgeek.js @@ -121,9 +121,10 @@ function scrapeScene(data, url, _site, networkName) { } function getUrl(site) { - const { search } = new URL(site.url); + const { searchParams } = new URL(site.url); - if (search.match(/\?site=\d+/)) { + // if (search.match(/\?site=\d+/)) { + if (searchParams.has('site')) { return site.url; } @@ -142,11 +143,12 @@ function getUrl(site) { throw new Error(`Mind Geek site '${site.name}' (${site.url}) not supported`); } -async function getSession(url) { +async function getSession(url, site) { const cookieJar = new CookieJar(); const session = bhttp.session({ cookieJar }); - const res = await session.get(url); + // const res = await session.get(url); + const res = await session.get(site.parameters?.siteId ? site.parent.url : site.url); if (res.statusCode === 200) { const cookieString = await cookieJar.getCookieStringAsync(url); @@ -198,10 +200,10 @@ function scrapeProfile(data, html, releases = [], networkName) { async function fetchLatest(site, page = 1) { const url = getUrl(site); - const { search } = new URL(url); - const siteId = new URLSearchParams(search).get('site'); + const { searchParams } = new URL(url); + const siteId = searchParams.get('site'); - const { session, instanceToken } = await getSession(url); + const { session, instanceToken } = await getSession(url, site); const beforeDate = moment().add('1', 'day').format('YYYY-MM-DD'); const limit = 10; @@ -226,7 +228,7 @@ async function fetchLatest(site, page = 1) { async function fetchUpcoming(site) { const url = getUrl(site); - const { session, instanceToken } = await getSession(url); + const { session, instanceToken } = await getSession(url, site); const apiUrl = 'https://site-api.project1service.com/v2/upcoming-releases'; @@ -252,7 +254,7 @@ async function fetchScene(url, site, baseScene) { } const entryId = url.match(/\d+/)[0]; - const { session, instanceToken } = await getSession(url); + const { session, instanceToken } = await getSession(url, site); const res = await session.get(`https://site-api.project1service.com/v2/releases/${entryId}`, { headers: { @@ -269,7 +271,7 @@ 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); + const { session, instanceToken } = await getSession(url, networkOrNetworkSlug); const res = await session.get(`https://site-api.project1service.com/v1/actors/?search=${encodeURI(actorName)}`, { headers: {