Added Anal Only and upcoming scraping to Mike Adriano. Fixed profile expand arrow color.
|
@ -51,7 +51,7 @@
|
||||||
<Expand
|
<Expand
|
||||||
v-if="bioExpanded"
|
v-if="bioExpanded"
|
||||||
:expanded="bioExpanded"
|
:expanded="bioExpanded"
|
||||||
class="expand expand-dark"
|
class="expand expand-light"
|
||||||
@expand="(state) => bioExpanded = state"
|
@expand="(state) => bioExpanded = state"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
@ -310,7 +310,7 @@
|
||||||
|
|
||||||
<Expand
|
<Expand
|
||||||
:expanded="bioExpanded"
|
:expanded="bioExpanded"
|
||||||
class="expand expand-dark"
|
class="expand expand-light"
|
||||||
@expand="(state) => bioExpanded = state"
|
@expand="(state) => bioExpanded = state"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 73 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 8.8 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 73 KiB |
After Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 7.1 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 56 KiB |
|
@ -43,6 +43,7 @@ const parentNetworks = [
|
||||||
url: 'https://www.21sextury.com',
|
url: 'https://www.21sextury.com',
|
||||||
description: 'Watch all the latest scenes and porn video updates on 21Sextury.com, the best European porn site with the hottest pornstars from all over the world! Watch porn videos from the large network here.',
|
description: 'Watch all the latest scenes and porn video updates on 21Sextury.com, the best European porn site with the hottest pornstars from all over the world! Watch porn videos from the large network here.',
|
||||||
parameters: {
|
parameters: {
|
||||||
|
layout: 'api',
|
||||||
mobile: 'https://m.dpfanatics.com/en/video',
|
mobile: 'https://m.dpfanatics.com/en/video',
|
||||||
},
|
},
|
||||||
parent: 'gamma',
|
parent: 'gamma',
|
||||||
|
@ -56,6 +57,7 @@ const networks = [
|
||||||
url: 'https://www.21sextreme.com',
|
url: 'https://www.21sextreme.com',
|
||||||
description: 'Welcome to 21Sextreme.com, your portal to fisting porn, old and young lesbians, horny grannies & extreme BDSM featuring the best Euro & American Pornstars',
|
description: 'Welcome to 21Sextreme.com, your portal to fisting porn, old and young lesbians, horny grannies & extreme BDSM featuring the best Euro & American Pornstars',
|
||||||
parameters: {
|
parameters: {
|
||||||
|
layout: 'api',
|
||||||
mobile: 'https://m.dpfanatics.com/en/video',
|
mobile: 'https://m.dpfanatics.com/en/video',
|
||||||
},
|
},
|
||||||
parent: '21sextury',
|
parent: '21sextury',
|
||||||
|
@ -66,6 +68,7 @@ const networks = [
|
||||||
url: 'https://www.21naturals.com',
|
url: 'https://www.21naturals.com',
|
||||||
description: 'Welcome to 21Naturals.com, the porn network featuring the hottest pornstars from all over the world in all natural porn and erotic sex videos. Watch thousands of girls with natural tits',
|
description: 'Welcome to 21Naturals.com, the porn network featuring the hottest pornstars from all over the world in all natural porn and erotic sex videos. Watch thousands of girls with natural tits',
|
||||||
parameters: {
|
parameters: {
|
||||||
|
layout: 'api',
|
||||||
mobile: 'https://m.dpfanatics.com/en/video',
|
mobile: 'https://m.dpfanatics.com/en/video',
|
||||||
},
|
},
|
||||||
parent: '21sextury',
|
parent: '21sextury',
|
||||||
|
|
|
@ -4710,6 +4710,13 @@ const sites = [
|
||||||
tags: ['anal'],
|
tags: ['anal'],
|
||||||
parent: 'mikeadriano',
|
parent: 'mikeadriano',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
slug: 'analonly',
|
||||||
|
name: 'Anal Only',
|
||||||
|
url: 'https://analonly.com',
|
||||||
|
tags: ['anal'],
|
||||||
|
parent: 'mikeadriano',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
slug: 'allanal',
|
slug: 'allanal',
|
||||||
name: 'All Anal',
|
name: 'All Anal',
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
'use strict';
|
|
||||||
|
|
||||||
const { fetchApiLatest, fetchApiUpcoming, fetchScene, fetchApiProfile } = require('./gamma');
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
fetchLatest: fetchApiLatest,
|
|
||||||
fetchProfile: fetchApiProfile,
|
|
||||||
fetchUpcoming: fetchApiUpcoming,
|
|
||||||
fetchScene,
|
|
||||||
};
|
|
|
@ -1,10 +0,0 @@
|
||||||
'use strict';
|
|
||||||
|
|
||||||
const { fetchApiLatest, fetchApiUpcoming, fetchScene, fetchApiProfile } = require('./gamma');
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
fetchLatest: fetchApiLatest,
|
|
||||||
fetchProfile: fetchApiProfile,
|
|
||||||
fetchUpcoming: fetchApiUpcoming,
|
|
||||||
fetchScene,
|
|
||||||
};
|
|
|
@ -1,10 +0,0 @@
|
||||||
'use strict';
|
|
||||||
|
|
||||||
const { fetchApiLatest, fetchApiUpcoming, fetchScene, fetchApiProfile } = require('./gamma');
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
fetchLatest: fetchApiLatest,
|
|
||||||
fetchProfile: fetchApiProfile,
|
|
||||||
fetchUpcoming: fetchApiUpcoming,
|
|
||||||
fetchScene,
|
|
||||||
};
|
|
|
@ -67,6 +67,29 @@ async function fetchLatest(channel, page = 1) {
|
||||||
return res.status;
|
return res.status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function fetchUpcoming(channel) {
|
||||||
|
const { host } = new URL(channel.url);
|
||||||
|
const url = `https://tour.${host}`;
|
||||||
|
|
||||||
|
const res = await qu.get(url);
|
||||||
|
|
||||||
|
if (res.ok) {
|
||||||
|
if (res.item.query.exists('a[href*="stackpath.com"]')) {
|
||||||
|
throw new Error('URL blocked by StackPath');
|
||||||
|
}
|
||||||
|
|
||||||
|
const sceneItem = qu.init(res.item.el, '#upcoming-content');
|
||||||
|
|
||||||
|
if (sceneItem) {
|
||||||
|
return scrapeAll([sceneItem], channel);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return res.status;
|
||||||
|
}
|
||||||
|
|
||||||
async function fetchScene(url, channel) {
|
async function fetchScene(url, channel) {
|
||||||
const cookieJar = http.cookieJar();
|
const cookieJar = http.cookieJar();
|
||||||
const session = http.session({ cookieJar });
|
const session = http.session({ cookieJar });
|
||||||
|
@ -122,6 +145,7 @@ async function fetchProfile({ name: actorName }, context , site) {
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
fetchLatest,
|
fetchLatest,
|
||||||
|
fetchUpcoming,
|
||||||
// fetchProfile,
|
// fetchProfile,
|
||||||
fetchScene,
|
fetchScene,
|
||||||
};
|
};
|
||||||
|
|
|
@ -47,7 +47,6 @@ const mikeadriano = require('./mikeadriano');
|
||||||
const milehighmedia = require('./milehighmedia');
|
const milehighmedia = require('./milehighmedia');
|
||||||
const mindgeek = require('./mindgeek');
|
const mindgeek = require('./mindgeek');
|
||||||
const mofos = require('./mofos');
|
const mofos = require('./mofos');
|
||||||
const naturals = require('./21naturals');
|
|
||||||
const naughtyamerica = require('./naughtyamerica');
|
const naughtyamerica = require('./naughtyamerica');
|
||||||
const newsensations = require('./newsensations');
|
const newsensations = require('./newsensations');
|
||||||
const nubiles = require('./nubiles');
|
const nubiles = require('./nubiles');
|
||||||
|
@ -62,8 +61,6 @@ const privateNetwork = require('./private'); // reserved keyword
|
||||||
const puretaboo = require('./puretaboo');
|
const puretaboo = require('./puretaboo');
|
||||||
const realitykings = require('./realitykings');
|
const realitykings = require('./realitykings');
|
||||||
const score = require('./score');
|
const score = require('./score');
|
||||||
const sextreme = require('./21sextreme');
|
|
||||||
const sextury = require('./21sextury');
|
|
||||||
const teamskeet = require('./teamskeet');
|
const teamskeet = require('./teamskeet');
|
||||||
const teencoreclub = require('./teencoreclub');
|
const teencoreclub = require('./teencoreclub');
|
||||||
const topwebmodels = require('./topwebmodels');
|
const topwebmodels = require('./topwebmodels');
|
||||||
|
@ -85,9 +82,6 @@ const freeones = require('./freeones');
|
||||||
|
|
||||||
const scrapers = {
|
const scrapers = {
|
||||||
releases: {
|
releases: {
|
||||||
'21naturals': naturals,
|
|
||||||
'21sextreme': sextreme,
|
|
||||||
'21sextury': sextury,
|
|
||||||
adulttime,
|
adulttime,
|
||||||
amateurallure,
|
amateurallure,
|
||||||
americanpornstar,
|
americanpornstar,
|
||||||
|
@ -176,7 +170,7 @@ const scrapers = {
|
||||||
zerotolerance,
|
zerotolerance,
|
||||||
},
|
},
|
||||||
actors: {
|
actors: {
|
||||||
'21sextury': sextury,
|
'21sextury': gamma,
|
||||||
allanal: mikeadriano,
|
allanal: mikeadriano,
|
||||||
amateureuro: porndoe,
|
amateureuro: porndoe,
|
||||||
americanpornstar,
|
americanpornstar,
|
||||||
|
|
|
@ -164,6 +164,7 @@ function attachReleaseIds(releases, storedReleases) {
|
||||||
|
|
||||||
function filterInternalDuplicateReleases(releases) {
|
function filterInternalDuplicateReleases(releases) {
|
||||||
const releasesByEntityIdAndEntryId = releases.reduce((acc, release) => {
|
const releasesByEntityIdAndEntryId = releases.reduce((acc, release) => {
|
||||||
|
console.log(release);
|
||||||
if (!release.entity) {
|
if (!release.entity) {
|
||||||
return acc;
|
return acc;
|
||||||
}
|
}
|
||||||
|
|
|
@ -205,6 +205,8 @@ async function scrapeChannelReleases(scraper, channelEntity, preData) {
|
||||||
}
|
}
|
||||||
|
|
||||||
async function scrapeChannel(channelEntity, accNetworkReleases) {
|
async function scrapeChannel(channelEntity, accNetworkReleases) {
|
||||||
|
console.log(channelEntity);
|
||||||
|
|
||||||
const scraper = scrapers.releases[channelEntity.slug]
|
const scraper = scrapers.releases[channelEntity.slug]
|
||||||
|| scrapers.releases[channelEntity.parent?.slug]
|
|| scrapers.releases[channelEntity.parent?.slug]
|
||||||
|| scrapers.releases[channelEntity.parent?.parent?.slug];
|
|| scrapers.releases[channelEntity.parent?.parent?.slug];
|
||||||
|
|