Compare commits
2 Commits
13c33856a2
...
8d8c17028b
| Author | SHA1 | Date |
|---|---|---|
|
|
8d8c17028b | |
|
|
8b9570bb84 |
|
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "traxxx",
|
"name": "traxxx",
|
||||||
"version": "1.244.86",
|
"version": "1.244.87",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "traxxx",
|
"name": "traxxx",
|
||||||
"version": "1.244.86",
|
"version": "1.244.87",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@aws-sdk/client-s3": "^3.458.0",
|
"@aws-sdk/client-s3": "^3.458.0",
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "traxxx",
|
"name": "traxxx",
|
||||||
"version": "1.244.86",
|
"version": "1.244.87",
|
||||||
"description": "All the latest porn releases in one place",
|
"description": "All the latest porn releases in one place",
|
||||||
"main": "src/app.js",
|
"main": "src/app.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,11 @@ const slugify = require('../utils/slugify');
|
||||||
|
|
||||||
const dateRegex = /\d{4}-\d{2}-\d{2}T/;
|
const dateRegex = /\d{4}-\d{2}-\d{2}T/;
|
||||||
|
|
||||||
function scrapeLatest(scenes, fullData, channel) {
|
function scrapeLatest(scenes, fullData, channel, parameters) {
|
||||||
return scenes.map(({ query }) => {
|
return scenes.map(({ query }) => {
|
||||||
const release = {};
|
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.title = query.content('a[href*="/video"] strong');
|
||||||
|
|
||||||
release.entryId = release.url
|
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
|
// 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}`;
|
const url = `${channel.parameters?.latest || channel.url.replace('/series', '/sites')}?page=${page}`;
|
||||||
|
|
||||||
// site uses Nuxt without SSR, easiest to render in browser
|
// site uses Nuxt without SSR, easiest to render in browser
|
||||||
const res = await unprint.browserRequest(url, {
|
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) {
|
async control(ctx) {
|
||||||
await passAgeCheck(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 scenes = unprint.initAll(res.context.query.all('.card-grid > div'));
|
||||||
const data = res.context.query.json('#__NUXT_DATA__');
|
const data = res.context.query.json('#__NUXT_DATA__');
|
||||||
|
|
||||||
return scrapeLatest(scenes, data, channel);
|
return scrapeLatest(scenes, data, channel, parameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
return res.status;
|
return res.status;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue