Compare commits

...

2 Commits

20 changed files with 80 additions and 11 deletions

2
package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "traxxx",
"version": "1.64.0",
"version": "1.65.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 415 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 841 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

View File

@ -48,6 +48,12 @@ const networks = [
url: 'https://www.digitalplayground.com',
description: 'DigitalPlayground.com is the leader in high quality adult blockbuster movies and award winning sex parodies that feature the most exclusive pornstars online! Adult Film Database of adult movies.',
},
{
slug: 'metrohd',
name: 'Metro HD',
url: 'https://www.metrohd.com',
description: 'Checkout MetroHD official pornsite featuring top rated pornstars and XXX videos.',
},
{
slug: 'dogfartnetwork',
name: 'Dogfart Network',

View File

@ -1602,6 +1602,48 @@ function getSites(networksMap) {
parameters: JSON.stringify({ independent: true }),
network_id: networksMap.legalporno,
},
// METRO HD
{
slug: 'devianthardcore',
name: 'Deviant Hardcore',
url: 'https://www.devianthardcore.com',
description: '',
parameters: JSON.stringify({ siteId: 305 }),
network_id: networksMap.metrohd,
},
{
slug: 'shewillcheat',
name: 'She Will Cheat',
url: 'https://www.shewillcheat.com',
description: '',
parameters: JSON.stringify({ siteId: 306 }),
network_id: networksMap.metrohd,
},
{
slug: 'familyhookups',
name: 'Family Hookups',
url: 'https://www.familyhookups.com',
description: '',
parameters: JSON.stringify({ siteId: 307 }),
network_id: networksMap.metrohd,
},
{
slug: 'kinkyspa',
name: 'Kinky Spa',
url: 'https://www.kinkyspa.com',
description: '',
parameters: JSON.stringify({ siteId: 308 }),
network_id: networksMap.metrohd,
},
{
slug: 'girlgrind',
name: 'Girl Grind',
url: 'https://www.girlgrind.com',
description: '',
parameters: JSON.stringify({ siteId: 309 }),
network_id: networksMap.metrohd,
},
// MIKE ADRIANO
{
slug: 'trueanal',
name: 'True Anal',

View File

@ -138,7 +138,7 @@ function getTags(groupsMap) {
name: 'ass to mouth',
slug: 'ass-to-mouth',
priority: 6,
description: 'Sucking off a cock right after anal, giving your own or someone else`s asshole a second hand taste.',
description: 'Sucking off a cock right after anal, giving your own or someone else\'s asshole a second hand taste.',
alias_for: null,
group_id: groupsMap.oral,
},
@ -1617,12 +1617,16 @@ function getSiteTags() {
cum4k: ['fake-cum', 'creampie', '4k'],
darkx: ['interracial'],
deepthroatlove: ['blowjob', 'deepthroat'],
devianthardcore: ['bdsm'],
divinebitches: ['femdom'],
dpparodies: ['parody'],
eighteenyearsold: ['teen'],
exotic4k: ['4k'],
familyhookups: ['family'],
familystrokes: ['family'],
givemepink: ['solo', 'masturbation'],
girlgrind: ['lesbian'],
kinkyspa: ['massage'],
lesbianx: ['lesbian'],
lubed: ['oil'],
massagecreep: ['massage'],

View File

@ -19,8 +19,9 @@ const tagPosters = Object.entries({
creampie: ['poster'],
ebony: [1, 'Sarah Banks for Brazzers'],
facial: ['poster'],
facefucking: ['1', 'Carrie for Young Throats'],
gangbang: ['poster', 'Kristen Scott in "Interracial Gangbang!" for Jules Jordan'],
gaping: ['poster', 'Paulina in "Anal Buffet 4" for Evil Angel'],
gaping: [0, 'McKenzee Miles in "Anal Buffet 4" for Evil Angel'],
interracial: ['poster'],
latina: ['poster'],
mff: ['poster'],
@ -54,11 +55,11 @@ const tagPhotos = [
['double-penetration', 0],
['dv-tp', 1, 'Adriana Chechik in "Adriana\'s Triple Anal Penetration!"'],
['dv-tp', 0, 'Luna Rival in LegalPorno SZ1490'],
['facefucking', '0', 'Brea for Young Throats'],
['gangbang', 0, '"4 On 1 Gangbangs" for Doghouse Digital'],
['gangbang', 1, 'Ginger Lynn in "Gangbang Mystique", a photoset shot by Suze Randall for Puritan No. 10, 1984. This photo pushed the boundaries of pornography at the time, as depicting a woman \'fully occupied\' was unheard of.'],
['gangbang', 2, 'Riley Reid\'s double anal in "The Gangbang of Riley Reid" for Jules Jordan'],
['gaping', 3, 'Kelsi Monroe in "Brazzers House 2, Day 2" for Brazzers'],
['gaping', 0, 'McKenzee Miles in "Anal Buffet 4" for Evil Angel'],
['gaping', 'poster', 'Paulina in "Anal Buffet 4" for Evil Angel'],
['trainbang', 0, 'Nicole Black in GIO971 for LegalPorno'],
['triple-anal', 1, 'Natasha Teen in SZ2098 for LegalPorno'],
['triple-anal', 2, 'Kira Thorn in GIO1018 for LegalPorno'],

13
src/scrapers/metrohd.js Normal file
View File

@ -0,0 +1,13 @@
'use strict';
const { fetchScene, fetchLatest, fetchProfile } = require('./mindgeek');
async function networkFetchProfile(actorName) {
return fetchProfile(actorName, 'devianthardcore');
}
module.exports = {
fetchLatest,
fetchProfile: networkFetchProfile,
fetchScene,
};

View File

@ -138,11 +138,11 @@ function scrapeProfile(data, html) {
if (data.height) profile.height = inchesToCm(data.height);
if (data.weight) profile.weight = lbsToKg(data.weight);
profile.avatar = data.images.card_main_rect[0].xl?.url
|| data.images.card_main_rect[0].lg?.url
|| data.images.card_main_rect[0].md?.url
|| data.images.card_main_rect[0].sm?.url
|| data.images.card_main_rect[0].xs?.url;
profile.avatar = data.images.card_main_rect?.[0].xl?.url
|| data.images.card_main_rect?.[0].lg?.url
|| data.images.card_main_rect?.[0].md?.url
|| data.images.card_main_rect?.[0].sm?.url
|| data.images.card_main_rect?.[0].xs?.url;
const birthdate = qa('li').find(el => /Date of Birth/.test(el.textContent));
if (birthdate) profile.birthdate = qd(birthdate, 'span', 'MMMM Do, YYYY');

View File

@ -25,6 +25,7 @@ const vogov = require('./vogov');
const blowpass = require('./blowpass');
const brazzers = require('./brazzers');
const ddfnetwork = require('./ddfnetwork');
const metrohd = require('./metrohd');
const evilangel = require('./evilangel');
const julesjordan = require('./julesjordan');
const kellymadison = require('./kellymadison');
@ -48,6 +49,7 @@ module.exports = {
blowpass,
brazzers,
ddfnetwork,
metrohd,
digitalplayground,
dogfart,
dogfartnetwork: dogfart,
@ -83,6 +85,7 @@ module.exports = {
digitalplayground,
fakehub,
babes,
metrohd,
milehighmedia,
julesjordan,
brazzers,