diff --git a/public/img/logos/theflourish/favicon.png b/public/img/logos/theflourish/favicon.png new file mode 100644 index 00000000..9af4ec7b Binary files /dev/null and b/public/img/logos/theflourish/favicon.png differ diff --git a/public/img/logos/theflourish/favicon_dark.png b/public/img/logos/theflourish/favicon_dark.png new file mode 100644 index 00000000..223d4092 Binary files /dev/null and b/public/img/logos/theflourish/favicon_dark.png differ diff --git a/public/img/logos/theflourish/favicon_light.png b/public/img/logos/theflourish/favicon_light.png new file mode 100644 index 00000000..a93a1201 Binary files /dev/null and b/public/img/logos/theflourish/favicon_light.png differ diff --git a/public/img/logos/theflourish/flourish.png b/public/img/logos/theflourish/flourish.png new file mode 100644 index 00000000..29d03255 Binary files /dev/null and b/public/img/logos/theflourish/flourish.png differ diff --git a/public/img/logos/theflourish/lazy/favicon.png b/public/img/logos/theflourish/lazy/favicon.png new file mode 100644 index 00000000..dc08583d Binary files /dev/null and b/public/img/logos/theflourish/lazy/favicon.png differ diff --git a/public/img/logos/theflourish/lazy/favicon_dark.png b/public/img/logos/theflourish/lazy/favicon_dark.png new file mode 100644 index 00000000..b0c83a13 Binary files /dev/null and b/public/img/logos/theflourish/lazy/favicon_dark.png differ diff --git a/public/img/logos/theflourish/lazy/favicon_light.png b/public/img/logos/theflourish/lazy/favicon_light.png new file mode 100644 index 00000000..ba24e612 Binary files /dev/null and b/public/img/logos/theflourish/lazy/favicon_light.png differ diff --git a/public/img/logos/theflourish/lazy/flourish.png b/public/img/logos/theflourish/lazy/flourish.png new file mode 100644 index 00000000..2c695a64 Binary files /dev/null and b/public/img/logos/theflourish/lazy/flourish.png differ diff --git a/public/img/logos/theflourish/lazy/milfcandy.png b/public/img/logos/theflourish/lazy/milfcandy.png new file mode 100644 index 00000000..a04d3d4c Binary files /dev/null and b/public/img/logos/theflourish/lazy/milfcandy.png differ diff --git a/public/img/logos/theflourish/lazy/network.png b/public/img/logos/theflourish/lazy/network.png new file mode 100644 index 00000000..e90bdf32 Binary files /dev/null and b/public/img/logos/theflourish/lazy/network.png differ diff --git a/public/img/logos/theflourish/lazy/theflourishamateurs.png b/public/img/logos/theflourish/lazy/theflourishamateurs.png new file mode 100644 index 00000000..f6e4357c Binary files /dev/null and b/public/img/logos/theflourish/lazy/theflourishamateurs.png differ diff --git a/public/img/logos/theflourish/lazy/theflourishfetish.png b/public/img/logos/theflourish/lazy/theflourishfetish.png new file mode 100644 index 00000000..370136d5 Binary files /dev/null and b/public/img/logos/theflourish/lazy/theflourishfetish.png differ diff --git a/public/img/logos/theflourish/lazy/theflourishpov.png b/public/img/logos/theflourish/lazy/theflourishpov.png new file mode 100644 index 00000000..bafffbba Binary files /dev/null and b/public/img/logos/theflourish/lazy/theflourishpov.png differ diff --git a/public/img/logos/theflourish/lazy/theflourishxxx.png b/public/img/logos/theflourish/lazy/theflourishxxx.png new file mode 100644 index 00000000..d8f6f5bd Binary files /dev/null and b/public/img/logos/theflourish/lazy/theflourishxxx.png differ diff --git a/public/img/logos/theflourish/milfcandy.png b/public/img/logos/theflourish/milfcandy.png new file mode 100644 index 00000000..06b39626 Binary files /dev/null and b/public/img/logos/theflourish/milfcandy.png differ diff --git a/public/img/logos/theflourish/misc/the-flourish-amateurs_bg.png b/public/img/logos/theflourish/misc/the-flourish-amateurs_bg.png new file mode 100644 index 00000000..d7c66ad2 Binary files /dev/null and b/public/img/logos/theflourish/misc/the-flourish-amateurs_bg.png differ diff --git a/public/img/logos/theflourish/misc/the-flourish-amateurs_dark.png b/public/img/logos/theflourish/misc/the-flourish-amateurs_dark.png new file mode 100644 index 00000000..820e308e Binary files /dev/null and b/public/img/logos/theflourish/misc/the-flourish-amateurs_dark.png differ diff --git a/public/img/logos/theflourish/misc/the-flourish-amateurs_light_reconstructed.png b/public/img/logos/theflourish/misc/the-flourish-amateurs_light_reconstructed.png new file mode 100644 index 00000000..dda34408 Binary files /dev/null and b/public/img/logos/theflourish/misc/the-flourish-amateurs_light_reconstructed.png differ diff --git a/public/img/logos/theflourish/misc/the-flourish-pov_tagline.png b/public/img/logos/theflourish/misc/the-flourish-pov_tagline.png new file mode 100644 index 00000000..f7d316af Binary files /dev/null and b/public/img/logos/theflourish/misc/the-flourish-pov_tagline.png differ diff --git a/public/img/logos/theflourishxxx/theflourishxxx.png b/public/img/logos/theflourish/misc/the-flourish-xxx_dark.png similarity index 100% rename from public/img/logos/theflourishxxx/theflourishxxx.png rename to public/img/logos/theflourish/misc/the-flourish-xxx_dark.png diff --git a/public/img/logos/theflourish/misc/the-flourish-xxx_girl.png b/public/img/logos/theflourish/misc/the-flourish-xxx_girl.png new file mode 100644 index 00000000..7ae88a0f Binary files /dev/null and b/public/img/logos/theflourish/misc/the-flourish-xxx_girl.png differ diff --git a/public/img/logos/theflourish/misc/the-flourish-xxx_light.png b/public/img/logos/theflourish/misc/the-flourish-xxx_light.png new file mode 100644 index 00000000..c64d89dd Binary files /dev/null and b/public/img/logos/theflourish/misc/the-flourish-xxx_light.png differ diff --git a/public/img/logos/theflourish/misc/the-flourish-xxx_light_bg.png b/public/img/logos/theflourish/misc/the-flourish-xxx_light_bg.png new file mode 100644 index 00000000..549f0621 Binary files /dev/null and b/public/img/logos/theflourish/misc/the-flourish-xxx_light_bg.png differ diff --git a/public/img/logos/theflourish/network.png b/public/img/logos/theflourish/network.png new file mode 100644 index 00000000..732f1ca8 Binary files /dev/null and b/public/img/logos/theflourish/network.png differ diff --git a/public/img/logos/theflourish/theflourishamateurs.png b/public/img/logos/theflourish/theflourishamateurs.png new file mode 100644 index 00000000..dda34408 Binary files /dev/null and b/public/img/logos/theflourish/theflourishamateurs.png differ diff --git a/public/img/logos/theflourish/theflourishfetish.png b/public/img/logos/theflourish/theflourishfetish.png new file mode 100755 index 00000000..8b68437d Binary files /dev/null and b/public/img/logos/theflourish/theflourishfetish.png differ diff --git a/public/img/logos/theflourish/theflourishpov.png b/public/img/logos/theflourish/theflourishpov.png new file mode 100644 index 00000000..f5348bbf Binary files /dev/null and b/public/img/logos/theflourish/theflourishpov.png differ diff --git a/public/img/logos/theflourish/theflourishxxx.png b/public/img/logos/theflourish/theflourishxxx.png new file mode 100755 index 00000000..91f46717 Binary files /dev/null and b/public/img/logos/theflourish/theflourishxxx.png differ diff --git a/public/img/logos/theflourish/thumbs/favicon.png b/public/img/logos/theflourish/thumbs/favicon.png new file mode 100644 index 00000000..dc08583d Binary files /dev/null and b/public/img/logos/theflourish/thumbs/favicon.png differ diff --git a/public/img/logos/theflourish/thumbs/favicon_dark.png b/public/img/logos/theflourish/thumbs/favicon_dark.png new file mode 100644 index 00000000..b0c83a13 Binary files /dev/null and b/public/img/logos/theflourish/thumbs/favicon_dark.png differ diff --git a/public/img/logos/theflourish/thumbs/favicon_light.png b/public/img/logos/theflourish/thumbs/favicon_light.png new file mode 100644 index 00000000..ba24e612 Binary files /dev/null and b/public/img/logos/theflourish/thumbs/favicon_light.png differ diff --git a/public/img/logos/theflourish/thumbs/flourish.png b/public/img/logos/theflourish/thumbs/flourish.png new file mode 100644 index 00000000..ecce5667 Binary files /dev/null and b/public/img/logos/theflourish/thumbs/flourish.png differ diff --git a/public/img/logos/theflourish/thumbs/milfcandy.png b/public/img/logos/theflourish/thumbs/milfcandy.png new file mode 100644 index 00000000..f9c7ae6b Binary files /dev/null and b/public/img/logos/theflourish/thumbs/milfcandy.png differ diff --git a/public/img/logos/theflourish/thumbs/network.png b/public/img/logos/theflourish/thumbs/network.png new file mode 100644 index 00000000..177b74aa Binary files /dev/null and b/public/img/logos/theflourish/thumbs/network.png differ diff --git a/public/img/logos/theflourish/thumbs/theflourishamateurs.png b/public/img/logos/theflourish/thumbs/theflourishamateurs.png new file mode 100644 index 00000000..a84bb403 Binary files /dev/null and b/public/img/logos/theflourish/thumbs/theflourishamateurs.png differ diff --git a/public/img/logos/theflourish/thumbs/theflourishfetish.png b/public/img/logos/theflourish/thumbs/theflourishfetish.png new file mode 100644 index 00000000..9b4e22f1 Binary files /dev/null and b/public/img/logos/theflourish/thumbs/theflourishfetish.png differ diff --git a/public/img/logos/theflourish/thumbs/theflourishpov.png b/public/img/logos/theflourish/thumbs/theflourishpov.png new file mode 100644 index 00000000..0f027795 Binary files /dev/null and b/public/img/logos/theflourish/thumbs/theflourishpov.png differ diff --git a/public/img/logos/theflourish/thumbs/theflourishxxx.png b/public/img/logos/theflourish/thumbs/theflourishxxx.png new file mode 100644 index 00000000..2cd2434c Binary files /dev/null and b/public/img/logos/theflourish/thumbs/theflourishxxx.png differ diff --git a/public/img/logos/theflourishxxx/theflourishfetish.png b/public/img/logos/theflourishxxx/theflourishfetish.png deleted file mode 100755 index 5b9e6204..00000000 Binary files a/public/img/logos/theflourishxxx/theflourishfetish.png and /dev/null differ diff --git a/seeds/00_tags.js b/seeds/00_tags.js index 4222d2c6..21ee2da9 100755 --- a/seeds/00_tags.js +++ b/seeds/00_tags.js @@ -855,6 +855,10 @@ const tags = [ name: 'pissing', slug: 'pissing', }, + { + name: 'pole dancing', + slug: 'pole-dancing', + }, { name: 'POV', slug: 'pov', @@ -2423,6 +2427,10 @@ const aliases = [ name: 'coroas', for: 'milf', }, + { + name: 'strip pole dancing', + for: 'strip-pole-dancing', + }, ]; const priorities = [ // higher index is higher priority diff --git a/seeds/01_networks.js b/seeds/01_networks.js index 8678d26d..5cdd8954 100755 --- a/seeds/01_networks.js +++ b/seeds/01_networks.js @@ -323,6 +323,11 @@ const networks = [ name: 'First Anal Quest', url: 'http://www.firstanalquest.com', }, + { + slug: 'theflourish', + name: 'The Flourish', + url: 'https://theflourish.io', + }, { slug: 'forbondage', name: 'ForBondage', diff --git a/seeds/02_sites.js b/seeds/02_sites.js index 53f4ef33..b5245216 100755 --- a/seeds/02_sites.js +++ b/seeds/02_sites.js @@ -717,6 +717,9 @@ const sites = [ slug: 'archangel', name: 'ArchAngel', url: 'https://www.archangelvideo.com', + parameters: { + path: '/tour', + }, }, // ASSYLUM { @@ -3842,6 +3845,39 @@ const sites = [ layout: 'c', }, }, + // FLOURISH + { + slug: 'theflourishxxx', + name: 'The Flourish XXX', + url: 'https://tour.theflourishxxx.com', + parent: 'theflourish', + }, + { + slug: 'theflourishamateurs', + name: 'The Flourish Amateurs', + url: 'https://tour.theflourishamateurs.com', + parent: 'theflourish', + }, + { + slug: 'theflourishfetish', + name: 'The Flourish Fetish', + url: 'https://tour.theflourishfetish.com', + parent: 'theflourish', + }, + { + slug: 'theflourishpov', + name: 'The Flourish POV', + url: 'https://tour.theflourishxxx.com', + tags: ['pov'], + parent: 'theflourish', + }, + { + slug: 'milfcandy', + name: 'MILF Candy', + url: 'https://tour.milfcandy.com', + tags: ['milf'], + parent: 'theflourish', + }, // FOR BONDAGE { name: 'Crowd Bondage', diff --git a/src/scrapers/archangel.js b/src/scrapers/archangel.js index 64dc225f..1dc23435 100755 --- a/src/scrapers/archangel.js +++ b/src/scrapers/archangel.js @@ -1,5 +1,7 @@ 'use strict'; +// ALSO USED BY THE FLOURISH + const unprint = require('unprint'); const slugify = require('../utils/slugify'); @@ -29,12 +31,27 @@ function scrapeAll(scenes) { })); const poster = query.img('img.mainThumb'); + const previewCount = query.number('img.mainThumb', { attribute: 'cnt' }); if (poster && !placeholder.test(poster)) { - release.poster = poster; + const posterFallbacks = [ + poster.replace('-1x', '-3x'), + poster.replace('-1x', '-2x'), + poster.replace('-1x', '-4x'), + poster, + ]; + + release.poster = posterFallbacks; } - release.photoCount = query.number('.timeDate'); + if (previewCount) { + release.photos = Array.from( + { length: previewCount - 1 }, + (value, index) => [3, 2, 4, 1].map((scale) => unprint.prefixUrl(query.img('img.mainThumb', { attribute: `src${index + 1}_${scale}x` }))).filter(Boolean), // 4x is unnecessarily big and possibly upscaled + ).filter(Boolean); + } + + release.photoCount = query.number('.timeDate', { match: /(\d+) photos/i, matchIndex: 1 }); release.entryId = getEntryId(release); @@ -42,7 +59,7 @@ function scrapeAll(scenes) { }); } -function scrapeScene({ query, html }, { url }) { +function scrapeScene({ query, html }, { url, entity, baseRelease }) { const release = { url }; release.title = query.content('.title h2'); @@ -56,18 +73,35 @@ function scrapeScene({ query, html }, { url }) { url: unprint.query.url(actorEl, null), })); - const poster = query.img('.update_thumb') || html.match(/poster="(.*\.jpg)"/)?.[1]; + const poster = unprint.prefixUrl(query.img('.update_thumb') || html.match(/poster="(.*\.jpg)"/)?.[1], entity.url); if (poster && !placeholder.test(poster)) { - release.poster = poster; + const posterFallbacks = [ + poster.replace('-1x', '-3x'), + poster.replace('-1x', '-2x'), + poster.replace('-1x', '-4x'), + poster, + ]; + + // scene page poster usually different from overview page, don't replace + if (baseRelease?.poster && baseRelease.poster !== poster) { + release.photos = baseRelease.photos + ? [posterFallbacks, ...baseRelease.photos] + : [posterFallbacks]; + } else { + release.poster = posterFallbacks; + } } - release.trailer = html.match(/src="(.*\.mp4)"/)?.[1]; + const trailer = html.match(/src="(.*\.mp4)"/)?.[1]; - release.photoCount = query.number('.info', { match: /(\d+) photos/i, matchIndex: 1 }); + if (trailer) { + release.trailer = unprint.prefixUrl(encodeURI(trailer), entity.url); + } release.tags = query.contents('.info .tags a'); + release.photoCount = query.number('.info', { match: /(\d+) photos/i, matchIndex: 1 }); release.entryId = getEntryId(release); return release; @@ -129,8 +163,8 @@ function scrapeProfile({ query, element }, { url, entity }) { return profile; } -async function fetchLatest(channel, page = 1) { - const url = `${channel.url}/tour/categories/movies_${page}_d.html`; +async function fetchLatest(channel, page = 1, context) { + const url = `${channel.url}${context.parameters.path || ''}/categories/movies_${page}_d.html`; const res = await unprint.get(url, { selectAll: '.item-video' }); if (res.ok) { @@ -140,11 +174,11 @@ async function fetchLatest(channel, page = 1) { return res.status; } -async function fetchProfile({ name: actorName, url: actorUrl }, { entity, include }) { +async function fetchProfile({ name: actorName, url: actorUrl }, { entity, include, parameters }) { const res = await [ actorUrl, - `${entity.url}/tour/models/${slugify(actorName, '-')}.html`, - `${entity.url}/tour/models/${slugify(actorName, '')}.html`, + `${entity.url}${parameters.path || ''}/models/${slugify(actorName, '-')}.html`, + `${entity.url}${parameters.path || ''}/models/${slugify(actorName, '')}.html`, ].reduce(async (chain, url) => { const prevRes = await chain; diff --git a/src/scrapers/scrapers.js b/src/scrapers/scrapers.js index f266a8df..04e2e701 100755 --- a/src/scrapers/scrapers.js +++ b/src/scrapers/scrapers.js @@ -153,6 +153,7 @@ const scrapers = { sexyhub: mindgeek, spizoo, swallowsalon: julesjordan, + theflourish: archangel, teencoreclub, teenmegaworld, teamskeet, @@ -294,6 +295,11 @@ const scrapers = { silviasaint: famedigital, spizoo, swallowed: mikeadriano, + milfcandy: archangel, + theflourishamateurs: archangel, + theflourishpov: archangel, + theflourishfetish: archangel, + theflourishxxx: archangel, teamskeet, teencoreclub, teenmegaworld, diff --git a/src/scrapers/teenmegaworld.js b/src/scrapers/teenmegaworld.js index 955acea1..4f198100 100755 --- a/src/scrapers/teenmegaworld.js +++ b/src/scrapers/teenmegaworld.js @@ -90,9 +90,6 @@ function scrapeProfile({ query }, url, entity) { profile.avatar = query.img('.model-profile-image-picture source', { origin: entity.url, attribute: 'srcset' }) || query.img('.model-profile-image-picture img', { origin: entity.url }); profile.scenes = scrapeAll(unprint.initAll(query.all('.video-list .thumb')), entity); - console.log(bio); - console.log(profile); - return profile; }