Compare commits
2 Commits
fe0d450af0
...
176573733b
| Author | SHA1 | Date |
|---|---|---|
|
|
176573733b | |
|
|
e7b9147995 |
|
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "traxxx",
|
"name": "traxxx",
|
||||||
"version": "1.246.19",
|
"version": "1.246.20",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "traxxx",
|
"name": "traxxx",
|
||||||
"version": "1.246.19",
|
"version": "1.246.20",
|
||||||
"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.246.19",
|
"version": "1.246.20",
|
||||||
"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": {
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,16 @@ const unprint = require('unprint');
|
||||||
const slugify = require('../utils/slugify');
|
const slugify = require('../utils/slugify');
|
||||||
const { stripQuery } = require('../utils/url');
|
const { stripQuery } = require('../utils/url');
|
||||||
|
|
||||||
|
const channelMap = {
|
||||||
|
spa: 'thespa',
|
||||||
|
gym: 'thegym',
|
||||||
|
dormroom: 'thedormroom',
|
||||||
|
dressingroom: 'thedressingroom',
|
||||||
|
psepornstarexperience: 'pornstarexperience',
|
||||||
|
office: 'theoffice',
|
||||||
|
ta: 'tanda',
|
||||||
|
};
|
||||||
|
|
||||||
function scrapeLatest(scenes, channel) {
|
function scrapeLatest(scenes, channel) {
|
||||||
return scenes.map(({ query }) => {
|
return scenes.map(({ query }) => {
|
||||||
const release = {};
|
const release = {};
|
||||||
|
|
@ -40,7 +50,9 @@ function scrapeLatest(scenes, channel) {
|
||||||
query.exists('//a[contains(@class, "label-hd") and contains(text(), "HD")]') && 720,
|
query.exists('//a[contains(@class, "label-hd") and contains(text(), "HD")]') && 720,
|
||||||
].filter(Boolean);
|
].filter(Boolean);
|
||||||
|
|
||||||
release.channel = slugify(query.content('.site-title'), '');
|
const channelSlug = slugify(query.content('.site-title'), '');
|
||||||
|
|
||||||
|
release.channel = channelMap[channelSlug] || channelSlug;
|
||||||
|
|
||||||
// NA affiliate prefers to push more traffic to Naughty America VR, all scenes labeled VR seem to be available on NAVR
|
// NA affiliate prefers to push more traffic to Naughty America VR, all scenes labeled VR seem to be available on NAVR
|
||||||
release.url = release.tags?.some((tag) => tag.toLowerCase() === 'vr')
|
release.url = release.tags?.some((tag) => tag.toLowerCase() === 'vr')
|
||||||
|
|
@ -95,6 +107,7 @@ function scrapeScene({ query }, { url }) {
|
||||||
query.img('.play-trailer img[data-srcset*="scenes/"]', { attribute: 'data-srcset' }),
|
query.img('.play-trailer img[data-srcset*="scenes/"]', { attribute: 'data-srcset' }),
|
||||||
query.img('.scenepage-video .playcard'),
|
query.img('.scenepage-video .playcard'),
|
||||||
query.img('.scene-page .start-card'),
|
query.img('.scene-page .start-card'),
|
||||||
|
query.poster('dl8-video[poster]'),
|
||||||
].filter(Boolean);
|
].filter(Boolean);
|
||||||
|
|
||||||
release.photos = query.els('.contain-scene-images.desktop-only .scene-image').map((imgEl) => [
|
release.photos = query.els('.contain-scene-images.desktop-only .scene-image').map((imgEl) => [
|
||||||
|
|
@ -114,7 +127,9 @@ function scrapeScene({ query }, { url }) {
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
release.channel = slugify(query.content('.site-title'), '');
|
const channelSlug = slugify(query.content('.site-title'), '');
|
||||||
|
|
||||||
|
release.channel = channelMap[channelSlug] || channelSlug;
|
||||||
|
|
||||||
release.tags = query.contents('.categories a, .category a');
|
release.tags = query.contents('.categories a, .category a');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
const knex = require('../knex');
|
||||||
|
const slugify = require('../utils/slugify');
|
||||||
|
|
||||||
|
async function init() {
|
||||||
|
const channels = await knex('entities')
|
||||||
|
.select('entities.*')
|
||||||
|
.leftJoin('entities as parents', 'parents.id', 'entities.parent_id')
|
||||||
|
.where('parents.slug', 'in', ['naughtyamerica', 'naughtyamericavr']);
|
||||||
|
|
||||||
|
const mapped = Object.fromEntries(channels.map((channel) => {
|
||||||
|
const path = new URL(channel.url).pathname.match(/\/site\/(.*)/)?.[1];
|
||||||
|
const urlSlug = slugify(path, '');
|
||||||
|
|
||||||
|
if (!urlSlug || urlSlug === channel.slug) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return [urlSlug, channel.slug];
|
||||||
|
}).filter(Boolean));
|
||||||
|
|
||||||
|
console.log(mapped);
|
||||||
|
}
|
||||||
|
|
||||||
|
init();
|
||||||
Loading…
Reference in New Issue