Regarding layout parameters from parent and grandparent entities. Removed Evil Angel and Fantasy Massage scraper wrappers.
|
@ -115,11 +115,11 @@ export default {
|
|||
|
||||
.item-link {
|
||||
height: 100%;
|
||||
margin: 0 0 1rem 0;
|
||||
}
|
||||
|
||||
.item {
|
||||
width: 100%;
|
||||
margin: 0 0 1rem 0;
|
||||
}
|
||||
|
||||
@media(max-width: $breakpoint-kilo) {
|
||||
|
|
|
@ -78,7 +78,9 @@ async function fetchReleases() {
|
|||
this.hasMedia = this.tag.poster || this.tag.photos.length > 0;
|
||||
this.description = this.tag.description && converter.makeHtml(escapeHtml(this.tag.description));
|
||||
|
||||
this.$refs.filter.$el.scrollIntoView();
|
||||
if (this.$refs.filter) {
|
||||
this.$refs.filter.$el.scrollIntoView();
|
||||
}
|
||||
}
|
||||
|
||||
async function mounted() {
|
||||
|
|
After Width: | Height: | Size: 993 KiB |
After Width: | Height: | Size: 8.4 MiB |
After Width: | Height: | Size: 8.0 KiB |
After Width: | Height: | Size: 7.0 KiB |
After Width: | Height: | Size: 1.5 MiB |
After Width: | Height: | Size: 7.2 MiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 9.6 MiB |
After Width: | Height: | Size: 8.0 KiB |
After Width: | Height: | Size: 8.8 MiB |
After Width: | Height: | Size: 38 KiB |
|
@ -200,6 +200,9 @@ const networks = [
|
|||
url: 'https://www.evilangel.com',
|
||||
description: 'Welcome to the award winning Evil Angel website, home to the most popular pornstars of today, yesterday and tomorrow in their most extreme and hardcore porn scenes to date. We feature almost 30 years of rough sex videos and hardcore anal porn like you\'ve never seen before, and have won countless AVN and XBiz awards including \'Best Site\' and \'Best Studio\'.',
|
||||
parent: 'gamma',
|
||||
parameters: {
|
||||
layout: 'api',
|
||||
},
|
||||
},
|
||||
{
|
||||
slug: 'fantasymassage',
|
||||
|
|
|
@ -786,6 +786,7 @@ const tagPhotos = [
|
|||
['double-dildo-kiss', 2, 'Adriana Chechik and Vicki Chase in "Anal Savages" for Jules Jordan'],
|
||||
['double-dildo-dp', 0, 'u/LacyCrow "Sometimes you have to do it yourself"'],
|
||||
['double-dildo-dp', 1, 'Brooklyn Chase and Ana Foxxx for Zebra Girls'],
|
||||
['dp', 7, 'Chloe Lamour in "DP Masters 7" for Jules Jordan'],
|
||||
['dp', 5, 'Lana Rhoades in "Gangbang Me 3" for HardX'],
|
||||
['dp', 6, 'Kira Noir for HardX'],
|
||||
['dp', 2, 'Megan Rain in "DP Masters 4" for Jules Jordan'],
|
||||
|
@ -850,8 +851,9 @@ const tagPhotos = [
|
|||
['milf', 2, 'Shalina Devine for Anal Mom'],
|
||||
// ['milf', 0, 'Olivia Austin in "Dredd 3" for Jules Jordan'],
|
||||
['mff', 0, 'Madison Ivy, Adriana Chechik and Keiran Lee in "Day With A Pornstar" for Brazzers'],
|
||||
['mfm', 7, 'Rose Valerie for Euro Sex Parties'],
|
||||
['mfm', 8, 'Ariana Marie in "DP Masters 7" for Jules Jordan'],
|
||||
['mfm', 1, 'Lana Rhoades in "Gangbang Me 3" for HardX'],
|
||||
['mfm', 7, 'Rose Valerie for Euro Sex Parties'],
|
||||
['mfm', 6, 'Honey Gold in "Slut Puppies 12" for Jules Jordan'],
|
||||
['natural-boobs', 4, 'Miela (Marry Queen) in "Pure" for FemJoy'],
|
||||
['natural-boobs', 3, 'Violet Starr in "Violet Starr 1st Lesbian Anal" for LesbianX'],
|
||||
|
|
|
@ -622,7 +622,7 @@ async function scrapeProfiles(actor, sources, entitiesBySlug, existingProfilesBy
|
|||
const entity = entitiesBySlug[scraperSlug] || null;
|
||||
|
||||
const scraper = scrapers[scraperSlug];
|
||||
const layoutScraper = scraper?.[entity.parameters?.layout] || scraper;
|
||||
const layoutScraper = scraper?.[entity.parameters?.layout] || scraper?.[entity.parent?.parameters?.layout] || scraper?.[entity.parent?.parent?.parameters?.layout] || scraper;
|
||||
|
||||
const context = {
|
||||
...entity,
|
||||
|
|
|
@ -121,8 +121,8 @@ async function scrapeRelease(baseRelease, entities, type = 'scene') {
|
|||
};
|
||||
}
|
||||
|
||||
const scraper = scrapers.releases[entity.slug] || scrapers.releases[entity.parent?.slug];
|
||||
const layoutScraper = scraper[entity.parameters?.layout] || scraper;
|
||||
const scraper = scrapers.releases[entity.slug] || scrapers.releases[entity.parent?.slug] || scrapers.releases[entity.parent?.parent?.slug];
|
||||
const layoutScraper = scraper?.[entity.parameters?.layout] || scraper?.[entity.parent?.parameters?.layout] || scraper?.[entity.parent?.parent?.parameters?.layout] || scraper;
|
||||
|
||||
if (!layoutScraper) {
|
||||
logger.warn(`Could not find scraper for ${baseRelease.url}`);
|
||||
|
|
|
@ -118,6 +118,7 @@ async function fetchIncludedEntities() {
|
|||
SELECT
|
||||
parents.*,
|
||||
json_agg(included_entities ORDER BY included_entities.id) included_children,
|
||||
row_to_json(grandparents) AS parent,
|
||||
(SELECT json_agg(children)
|
||||
FROM entities AS children
|
||||
WHERE children.parent_id = parents.id) children
|
||||
|
@ -125,10 +126,12 @@ async function fetchIncludedEntities() {
|
|||
included_entities
|
||||
LEFT JOIN
|
||||
entities AS parents ON parents.id = included_entities.parent_id
|
||||
LEFT JOIN
|
||||
entities AS grandparents ON grandparents.id = parents.parent_id
|
||||
WHERE
|
||||
included_entities.type = 'channel'
|
||||
GROUP BY
|
||||
parents.id;
|
||||
parents.id, grandparents.id;
|
||||
`, include);
|
||||
|
||||
const curatedNetworks = rawNetworks.rows.map(entity => curateEntity(entity, true));
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
'use strict';
|
||||
|
||||
const { fetchApiLatest, fetchApiUpcoming, fetchScene, fetchMovie, fetchApiProfile } = require('./gamma');
|
||||
|
||||
module.exports = {
|
||||
fetchLatest: fetchApiLatest,
|
||||
fetchProfile: fetchApiProfile,
|
||||
fetchScene,
|
||||
fetchMovie,
|
||||
fetchUpcoming: fetchApiUpcoming,
|
||||
};
|
|
@ -1,9 +0,0 @@
|
|||
'use strict';
|
||||
|
||||
const { fetchLatest, fetchUpcoming, fetchScene } = require('./gamma');
|
||||
|
||||
module.exports = {
|
||||
fetchLatest,
|
||||
fetchScene,
|
||||
fetchUpcoming,
|
||||
};
|
|
@ -735,6 +735,13 @@ module.exports = {
|
|||
fetchProfile,
|
||||
fetchScene,
|
||||
fetchUpcoming,
|
||||
api: {
|
||||
fetchLatest: fetchApiLatest,
|
||||
fetchUpcoming: fetchApiUpcoming,
|
||||
fetchProfile: fetchApiProfile,
|
||||
fetchScene,
|
||||
fetchMovie,
|
||||
},
|
||||
getPhotos,
|
||||
scrapeApiProfile,
|
||||
scrapeApiReleases,
|
||||
|
|
|
@ -18,13 +18,12 @@ const digitalplayground = require('./digitalplayground');
|
|||
const dogfart = require('./dogfart');
|
||||
const dorcel = require('./dorcel');
|
||||
const elegantangel = require('./elegantangel');
|
||||
const evilangel = require('./evilangel');
|
||||
const fakehub = require('./fakehub');
|
||||
const famedigital = require('./famedigital');
|
||||
const fantasymassage = require('./fantasymassage');
|
||||
const firstanalquest = require('./firstanalquest');
|
||||
const fcuk = require('./fcuk');
|
||||
const fullpornnetwork = require('./fullpornnetwork');
|
||||
const gamma = require('./gamma');
|
||||
const girlsway = require('./girlsway');
|
||||
const hitzefrei = require('./hitzefrei');
|
||||
const hookuphotshot = require('./hookuphotshot');
|
||||
|
@ -110,14 +109,13 @@ const scrapers = {
|
|||
dogfartnetwork: dogfart,
|
||||
dorcel,
|
||||
elegantangel,
|
||||
evilangel,
|
||||
fakehub,
|
||||
famedigital,
|
||||
fantasymassage,
|
||||
fcuk,
|
||||
firstanalquest,
|
||||
forbondage: porndoe,
|
||||
fullpornnetwork,
|
||||
gamma,
|
||||
gaywire: bangbros,
|
||||
girlsway,
|
||||
girlgirl: julesjordan,
|
||||
|
@ -210,7 +208,7 @@ const scrapers = {
|
|||
dorcelclub: dorcel,
|
||||
doubleviewcasting: firstanalquest,
|
||||
elegantangel,
|
||||
evilangel,
|
||||
evilangel: gamma,
|
||||
eyeontheguy: hush,
|
||||
fakehub,
|
||||
exploitedcollegegirls: fcuk,
|
||||
|
|
|
@ -209,7 +209,7 @@ async function scrapeChannel(channelEntity, accNetworkReleases) {
|
|||
|| scrapers.releases[channelEntity.parent?.slug]
|
||||
|| scrapers.releases[channelEntity.parent?.parent?.slug];
|
||||
|
||||
const layoutScraper = scraper?.[channelEntity.parameters?.layout] || scraper;
|
||||
const layoutScraper = scraper?.[channelEntity.parameters?.layout] || scraper?.[channelEntity.parent?.parameters?.layout] || scraper?.[channelEntity.parent?.parent?.parameters?.layout] || scraper;
|
||||
|
||||
if (!layoutScraper) {
|
||||
logger.warn(`No scraper found for '${channelEntity.name}' (${channelEntity.parent?.name})`);
|
||||
|
|