diff --git a/assets/components/album/album.vue b/assets/components/album/album.vue index 63e5a7b4..1a10c3d7 100644 --- a/assets/components/album/album.vue +++ b/assets/components/album/album.vue @@ -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) { diff --git a/assets/components/tags/tag.vue b/assets/components/tags/tag.vue index 9806416a..7f02f06f 100644 --- a/assets/components/tags/tag.vue +++ b/assets/components/tags/tag.vue @@ -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() { diff --git a/public/img/tags/dp/7.jpeg b/public/img/tags/dp/7.jpeg new file mode 100644 index 00000000..89094c44 Binary files /dev/null and b/public/img/tags/dp/7.jpeg differ diff --git a/public/img/tags/dp/7a.jpeg b/public/img/tags/dp/7a.jpeg new file mode 100644 index 00000000..98168f95 Binary files /dev/null and b/public/img/tags/dp/7a.jpeg differ diff --git a/public/img/tags/dp/lazy/7.jpeg b/public/img/tags/dp/lazy/7.jpeg new file mode 100644 index 00000000..36533aaf Binary files /dev/null and b/public/img/tags/dp/lazy/7.jpeg differ diff --git a/public/img/tags/dp/lazy/7a.jpeg b/public/img/tags/dp/lazy/7a.jpeg new file mode 100644 index 00000000..d0be1202 Binary files /dev/null and b/public/img/tags/dp/lazy/7a.jpeg differ diff --git a/public/img/tags/dp/originals/7.jpeg b/public/img/tags/dp/originals/7.jpeg new file mode 100644 index 00000000..2939c9d4 Binary files /dev/null and b/public/img/tags/dp/originals/7.jpeg differ diff --git a/public/img/tags/dp/originals/7a.jpeg b/public/img/tags/dp/originals/7a.jpeg new file mode 100644 index 00000000..7a313ab5 Binary files /dev/null and b/public/img/tags/dp/originals/7a.jpeg differ diff --git a/public/img/tags/dp/thumbs/7.jpeg b/public/img/tags/dp/thumbs/7.jpeg new file mode 100644 index 00000000..0db49abb Binary files /dev/null and b/public/img/tags/dp/thumbs/7.jpeg differ diff --git a/public/img/tags/dp/thumbs/7a.jpeg b/public/img/tags/dp/thumbs/7a.jpeg new file mode 100644 index 00000000..471852f5 Binary files /dev/null and b/public/img/tags/dp/thumbs/7a.jpeg differ diff --git a/public/img/tags/mfm/8.jpeg b/public/img/tags/mfm/8.jpeg new file mode 100644 index 00000000..5e47b6f0 Binary files /dev/null and b/public/img/tags/mfm/8.jpeg differ diff --git a/public/img/tags/mfm/lazy/8.jpeg b/public/img/tags/mfm/lazy/8.jpeg new file mode 100644 index 00000000..921561e0 Binary files /dev/null and b/public/img/tags/mfm/lazy/8.jpeg differ diff --git a/public/img/tags/mfm/originals/8.jpeg b/public/img/tags/mfm/originals/8.jpeg new file mode 100644 index 00000000..50f8c02b Binary files /dev/null and b/public/img/tags/mfm/originals/8.jpeg differ diff --git a/public/img/tags/mfm/thumbs/8.jpeg b/public/img/tags/mfm/thumbs/8.jpeg new file mode 100644 index 00000000..f4a040c6 Binary files /dev/null and b/public/img/tags/mfm/thumbs/8.jpeg differ diff --git a/seeds/01_networks.js b/seeds/01_networks.js index fe6b2812..28be0286 100644 --- a/seeds/01_networks.js +++ b/seeds/01_networks.js @@ -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', diff --git a/seeds/04_media.js b/seeds/04_media.js index 035529ef..aa1a2b83 100644 --- a/seeds/04_media.js +++ b/seeds/04_media.js @@ -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'], diff --git a/src/actors.js b/src/actors.js index 8be2d209..06868b35 100644 --- a/src/actors.js +++ b/src/actors.js @@ -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, diff --git a/src/deep.js b/src/deep.js index 0f11eb8a..e0246b4c 100644 --- a/src/deep.js +++ b/src/deep.js @@ -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}`); diff --git a/src/entities.js b/src/entities.js index 75dd1770..03e3d661 100644 --- a/src/entities.js +++ b/src/entities.js @@ -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)); diff --git a/src/scrapers/evilangel.js b/src/scrapers/evilangel.js deleted file mode 100644 index c016cf24..00000000 --- a/src/scrapers/evilangel.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -const { fetchApiLatest, fetchApiUpcoming, fetchScene, fetchMovie, fetchApiProfile } = require('./gamma'); - -module.exports = { - fetchLatest: fetchApiLatest, - fetchProfile: fetchApiProfile, - fetchScene, - fetchMovie, - fetchUpcoming: fetchApiUpcoming, -}; diff --git a/src/scrapers/fantasymassage.js b/src/scrapers/fantasymassage.js deleted file mode 100644 index b43b185b..00000000 --- a/src/scrapers/fantasymassage.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -const { fetchLatest, fetchUpcoming, fetchScene } = require('./gamma'); - -module.exports = { - fetchLatest, - fetchScene, - fetchUpcoming, -}; diff --git a/src/scrapers/gamma.js b/src/scrapers/gamma.js index 97417b60..898b50d0 100644 --- a/src/scrapers/gamma.js +++ b/src/scrapers/gamma.js @@ -735,6 +735,13 @@ module.exports = { fetchProfile, fetchScene, fetchUpcoming, + api: { + fetchLatest: fetchApiLatest, + fetchUpcoming: fetchApiUpcoming, + fetchProfile: fetchApiProfile, + fetchScene, + fetchMovie, + }, getPhotos, scrapeApiProfile, scrapeApiReleases, diff --git a/src/scrapers/scrapers.js b/src/scrapers/scrapers.js index 1578ae37..6d02212c 100644 --- a/src/scrapers/scrapers.js +++ b/src/scrapers/scrapers.js @@ -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, diff --git a/src/updates.js b/src/updates.js index 07553829..af18eaef 100644 --- a/src/updates.js +++ b/src/updates.js @@ -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})`);