From 8b9570bb84c2652584b44f996251c500ad5eed00 Mon Sep 17 00:00:00 2001 From: DebaucheryLibrarian Date: Sat, 27 Dec 2025 01:15:39 +0100 Subject: [PATCH] Using latest hostname in scene URL if specified for Whale Member. --- src/scrapers/whalemember.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/scrapers/whalemember.js b/src/scrapers/whalemember.js index be89ea69..c5f791b8 100755 --- a/src/scrapers/whalemember.js +++ b/src/scrapers/whalemember.js @@ -7,11 +7,11 @@ const slugify = require('../utils/slugify'); const dateRegex = /\d{4}-\d{2}-\d{2}T/; -function scrapeLatest(scenes, fullData, channel) { +function scrapeLatest(scenes, fullData, channel, parameters) { return scenes.map(({ query }) => { const release = {}; - release.url = query.url('[href*="/video"]', { origin: new URL(channel.url).origin }); + release.url = query.url('[href*="/video"]', { origin: new URL(parameters.latest || channel.url).origin }); release.title = query.content('a[href*="/video"] strong'); release.entryId = release.url @@ -59,12 +59,15 @@ async function passAgeCheck(ctx) { } } -async function fetchLatest(channel, page = 1) { +async function fetchLatest(channel, page = 1, { parameters }) { // going to e.g. https://holed.com/sites/holed defined by parameter gets rid of 'top rated' section, simplifying query const url = `${channel.parameters?.latest || channel.url.replace('/series', '/sites')}?page=${page}`; // site uses Nuxt without SSR, easiest to render in browser const res = await unprint.browserRequest(url, { + page: { + timeout: 120_000, // update pages can be very slow to respond, but they usually do + }, async control(ctx) { await passAgeCheck(ctx); }, @@ -74,7 +77,7 @@ async function fetchLatest(channel, page = 1) { const scenes = unprint.initAll(res.context.query.all('.card-grid > div')); const data = res.context.query.json('#__NUXT_DATA__'); - return scrapeLatest(scenes, data, channel); + return scrapeLatest(scenes, data, channel, parameters); } return res.status;