Compare commits

..

2 Commits

Author SHA1 Message Date
DebaucheryLibrarian 8d8c17028b 1.244.87 2025-12-27 01:15:41 +01:00
DebaucheryLibrarian 8b9570bb84 Using latest hostname in scene URL if specified for Whale Member. 2025-12-27 01:15:39 +01:00
3 changed files with 10 additions and 7 deletions

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "traxxx",
"version": "1.244.86",
"version": "1.244.87",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "traxxx",
"version": "1.244.86",
"version": "1.244.87",
"license": "ISC",
"dependencies": {
"@aws-sdk/client-s3": "^3.458.0",

View File

@ -1,6 +1,6 @@
{
"name": "traxxx",
"version": "1.244.86",
"version": "1.244.87",
"description": "All the latest porn releases in one place",
"main": "src/app.js",
"scripts": {

View File

@ -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;