Compare commits

...

2 Commits

Author SHA1 Message Date
DebaucheryLibrarian
5bea829acb 1.248.50 2026-02-09 01:26:00 +01:00
DebaucheryLibrarian
66acacc71a Fixed Teen Mega World assets loading attempt from native site instead of network site. 2026-02-09 01:25:57 +01:00
3 changed files with 15 additions and 8 deletions

4
package-lock.json generated
View File

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

View File

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

View File

@@ -12,6 +12,9 @@ function scrapeAll(scenes, channel) {
release.url = query.url('.thumb__title-link');
release.entryId = new URL(release.url).pathname.match(/\/trailers\/(.+).html/)?.[1].toLowerCase();
// channel origin doesn't always match the site we're fetching the assets from
const { origin } = new URL(release.url);
release.title = query.content('.thumb__title-link');
release.date = query.date('time', unprint.dateConstants.DATETIME_LOCAL_SECONDS, { attribute: 'datetime' }) || query.date('time', 'MMMM D, YYYY');
@@ -20,14 +23,14 @@ function scrapeAll(scenes, channel) {
url: unprint.query.url(el, null),
}));
release.poster = query.sourceSet('.thumb__picture img', 'srcset', { origin: channel.origin });
release.poster = query.sourceSet('.thumb__picture img', 'srcset', { origin });
release.photos = Object
.entries(query.el('.thumb__image').dataset)
.filter(([key]) => key.includes('srcset-'))
.map(([_key, value]) => unprint.extractSourceSet(value, { origin: channel.origin }));
.map(([_key, value]) => unprint.extractSourceSet(value, { origin }));
release.teaser = query.video('.thumb__video', { origin: network.url });
release.teaser = query.video('.thumb__video', { origin });
release.likes = query.number('.thumb__rating-value');
@@ -54,6 +57,8 @@ async function fetchLatest(channel, page = 1, { parameters }) {
function scrapeScene({ query }, context) {
const release = {};
const { origin } = new URL(context.url);
// channel origin doesn't always match the site we're fetching the assets from
release.entryId = new URL(context.url).pathname.match(/\/trailers\/(.+).html/)[1].toLowerCase();
@@ -70,7 +75,7 @@ function scrapeScene({ query }, context) {
release.tags = query.contents('.video-tag-link');
const poster = query.sourceSet('.video-cover__image', 'srcset', { origin: context.entity.origin });
const poster = query.sourceSet('.video-cover__image', 'srcset', { origin });
if (!poster?.includes('error')) {
release.poster = poster;
@@ -98,7 +103,9 @@ function scrapeProfile({ query }, url, entity) {
profile.hairColor = bio.hair;
profile.eyes = bio.eyes;
profile.avatar = query.img('.model-profile-image-picture source', { origin: entity.url, attribute: 'srcset' }) || query.img('.model-profile-image-picture img', { origin: entity.url });
profile.avatar = query.img('.model-profile-image-picture source', { origin: entity.oorigin, attribute: 'srcset' })
|| query.img('.model-profile-image-picture img', { origin: entity.origin });
profile.scenes = scrapeAll(unprint.initAll(query.all('.video-list .thumb')), entity);
return profile;