diff --git a/public/img/tags/airtight/lazy/savannah_bond_julesjordan.jpeg b/public/img/tags/airtight/lazy/savannah_bond_julesjordan.jpeg index 635cd574..ae26a20d 100644 Binary files a/public/img/tags/airtight/lazy/savannah_bond_julesjordan.jpeg and b/public/img/tags/airtight/lazy/savannah_bond_julesjordan.jpeg differ diff --git a/public/img/tags/airtight/lazy/yoha_boundgangbangs.jpeg b/public/img/tags/airtight/lazy/yoha_boundgangbangs.jpeg new file mode 100644 index 00000000..78089b5a Binary files /dev/null and b/public/img/tags/airtight/lazy/yoha_boundgangbangs.jpeg differ diff --git a/public/img/tags/airtight/thumbs/savannah_bond_julesjordan.jpeg b/public/img/tags/airtight/thumbs/savannah_bond_julesjordan.jpeg index d8e705c1..917d5496 100644 Binary files a/public/img/tags/airtight/thumbs/savannah_bond_julesjordan.jpeg and b/public/img/tags/airtight/thumbs/savannah_bond_julesjordan.jpeg differ diff --git a/public/img/tags/airtight/thumbs/yoha_boundgangbangs.jpeg b/public/img/tags/airtight/thumbs/yoha_boundgangbangs.jpeg new file mode 100644 index 00000000..90fb3fa2 Binary files /dev/null and b/public/img/tags/airtight/thumbs/yoha_boundgangbangs.jpeg differ diff --git a/public/img/tags/airtight/yoha_boundgangbangs.jpeg b/public/img/tags/airtight/yoha_boundgangbangs.jpeg new file mode 100644 index 00000000..7973e5dc Binary files /dev/null and b/public/img/tags/airtight/yoha_boundgangbangs.jpeg differ diff --git a/seeds/00_tags.js b/seeds/00_tags.js index e31e117c..e0529f95 100644 --- a/seeds/00_tags.js +++ b/seeds/00_tags.js @@ -1533,6 +1533,10 @@ const aliases = [ name: 'double anal (dap)', for: 'dap', }, + { + name: 'double anal penetration', + for: 'dap', + }, { name: 'double anal penetration (dap)', for: 'dap', @@ -1547,6 +1551,10 @@ const aliases = [ for: 'tvp', secondary: true, }, + { + name: 'double vaginal penetration', + for: 'dvp', + }, { name: 'double vaginal (dvp)', for: 'dvp', diff --git a/seeds/02_sites.js b/seeds/02_sites.js index 2f4c3b89..f03b922c 100644 --- a/seeds/02_sites.js +++ b/seeds/02_sites.js @@ -6932,6 +6932,9 @@ const sites = [ url: 'http://dpdiva.com', parent: 'pervcity', tags: ['dp', 'anal'], + parameters: { + native: true, + }, }, // PIERRE WOODMAN { diff --git a/seeds/04_media.js b/seeds/04_media.js index 504ca714..0bd9a5cd 100644 --- a/seeds/04_media.js +++ b/seeds/04_media.js @@ -598,6 +598,7 @@ const tagMedia = [ ['airtight', 7, 'Lana Rhoades in "Gangbang Me 3"', 'hardx'], ['airtight', 'hime_marie_blackedraw', 'Hime Marie', 'blackedraw'], ['airtight', 6, 'Remy Lacroix in "Ass Worship 14"', 'julesjordan'], + ['airtight', 'yoha_boundgangbangs', 'Yoha in "Home Invasion"', 'boundgangbangs'], ['airtight', 'anissa_kate_legalporno', 'Anissa Kate in GP1962', 'analvids'], ['airtight', 'emily_willis_blacked', 'Emily Willis', 'blacked'], ['airtight', 'savannah_bond_julesjordan', 'Savannah Bond', 'julesjordan'], diff --git a/src/scrapers/pervcity.js b/src/scrapers/pervcity.js index bbe44c4e..6791bcf2 100644 --- a/src/scrapers/pervcity.js +++ b/src/scrapers/pervcity.js @@ -43,7 +43,7 @@ function scrapeAll(scenes, entity) { }); } -function scrapeScene({ query }) { +function scrapeScene({ query }, channel) { const release = {}; release.entryId = query.q('.trailerLeft img', 'id').match(/set-target-(\d+)/)[1]; @@ -62,7 +62,7 @@ function scrapeScene({ query }) { const trailer = query.q('script')?.textContent.match(/\/trailers\/.+\.mp4/)?.[0]; if (trailer) { - release.trailer = `https://pervcity.com${trailer}`; + release.trailer = `${channel.url}${trailer}`; release.channel = channelCodes[release.trailer.match(channelRegExp)?.[0]]; } @@ -95,15 +95,28 @@ function scrapeProfile({ query }) { return profile; } -async function fetchLatest(channel, page = 1) { +function getLatestUrl(channel, page) { if (channel.parameters?.siteId) { - const url = `https://pervcity.com/search.php?site[]=${channel.parameters.siteId}&page=${page}`; + return `https://pervcity.com/search.php?site[]=${channel.parameters.siteId}&page=${page}`; + } + + if (channel.parameters?.native) { + return `${channel.url}/search.php?site[]=&page=${page}`; + } + + return null; +} + +async function fetchLatest(channel, page = 1) { + const url = getLatestUrl(channel, page); + + if (url) { const res = await qu.getAll(url, '.videoBlock'); return res.ok ? scrapeAll(res.items, channel) : res.status; } - return null; + return []; } async function fetchUpcoming(channel) {