Compare commits
3 Commits
0827ced0d7
...
fa57575cc3
Author | SHA1 | Date |
---|---|---|
|
fa57575cc3 | |
|
73b28866ac | |
|
998774fe5c |
|
@ -26,20 +26,14 @@
|
||||||
loading="lazy"
|
loading="lazy"
|
||||||
>
|
>
|
||||||
|
|
||||||
<span
|
|
||||||
v-else-if="release.covers && release.covers.length > 0"
|
|
||||||
class="covers"
|
|
||||||
>
|
|
||||||
<img
|
<img
|
||||||
v-for="cover in release.covers"
|
v-else-if="release.photos && release.photos.length > 0"
|
||||||
:key="cover.id"
|
:src="sfw ? `/img/${release.photos[0].sfw.thumbnail}` : `/media/${release.photos[0].thumbnail}`"
|
||||||
:src="sfw ? `/img/${cover.sfw.thumbnail}` : `/media/${cover.thumbnail}`"
|
:style="{ 'background-image': sfw ? `/img/${release.photos[0].sfw.lazy}` : `/media/${release.photos[0].lazy}` }"
|
||||||
:style="{ 'background-image': sfw ? `/img/${cover.sfw.lazy}` : `/media/${cover.lazy}` }"
|
|
||||||
:alt="release.title"
|
:alt="release.title"
|
||||||
class="thumbnail cover"
|
class="thumbnail"
|
||||||
loading="lazy"
|
loading="lazy"
|
||||||
>
|
>
|
||||||
</span>
|
|
||||||
|
|
||||||
<div
|
<div
|
||||||
v-else
|
v-else
|
||||||
|
|
|
@ -193,6 +193,7 @@ const releaseFields = `
|
||||||
${releaseTagsFragment}
|
${releaseTagsFragment}
|
||||||
${releasePosterFragment}
|
${releasePosterFragment}
|
||||||
${releaseCoversFragment}
|
${releaseCoversFragment}
|
||||||
|
${releasePhotosFragment}
|
||||||
${siteFragment}
|
${siteFragment}
|
||||||
studio {
|
studio {
|
||||||
id
|
id
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "traxxx",
|
"name": "traxxx",
|
||||||
"version": "1.168.4",
|
"version": "1.168.5",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "traxxx",
|
"name": "traxxx",
|
||||||
"version": "1.168.4",
|
"version": "1.168.5",
|
||||||
"description": "All the latest porn releases in one place",
|
"description": "All the latest porn releases in one place",
|
||||||
"main": "src/app.js",
|
"main": "src/app.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
After Width: | Height: | Size: 1.3 MiB |
After Width: | Height: | Size: 6.5 KiB |
After Width: | Height: | Size: 737 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 3.8 MiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 1.7 MiB |
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 31 KiB |
|
@ -588,7 +588,7 @@ const sfw = Object.entries({
|
||||||
const tagPosters = [
|
const tagPosters = [
|
||||||
['69', 1, 'Melody Petite for 21Sextury'],
|
['69', 1, 'Melody Petite for 21Sextury'],
|
||||||
['airtight', 2, 'Dakota Skye in "Dakota Goes Nuts" for ArchAngel'],
|
['airtight', 2, 'Dakota Skye in "Dakota Goes Nuts" for ArchAngel'],
|
||||||
['anal', 0, 'Adriana Chechik in "Manuel Creampies Their Asses 3" for Jules Jordan'],
|
['anal', 5, 'Abella Danger for HardX'],
|
||||||
['anal-fingering', 0, 'Marry Queen in "Queen of Assholes" for Asshole Fever'],
|
['anal-fingering', 0, 'Marry Queen in "Queen of Assholes" for Asshole Fever'],
|
||||||
['anal-creampie', 4, 'Chloe Cherry in "Chloe\'s Big Anal" for DarkX'],
|
['anal-creampie', 4, 'Chloe Cherry in "Chloe\'s Big Anal" for DarkX'],
|
||||||
['anal-fisting', 1, 'Jane Wilde fisting Alexis Tae in "Jane Wilde is AGAPE" for Evil Angel'],
|
['anal-fisting', 1, 'Jane Wilde fisting Alexis Tae in "Jane Wilde is AGAPE" for Evil Angel'],
|
||||||
|
@ -698,6 +698,8 @@ const tagPhotos = [
|
||||||
['atm', 6, 'Jane Wilde in "Teen Anal" for Evil Angel'],
|
['atm', 6, 'Jane Wilde in "Teen Anal" for Evil Angel'],
|
||||||
// ['asian', 1, 'Alina Li in "Oil Overload 11" for Jules Jordan'],
|
// ['asian', 1, 'Alina Li in "Oil Overload 11" for Jules Jordan'],
|
||||||
// ['anal', 'poster', 'Jynx Maze in "Anal Buffet 6" for Evil Angel'],
|
// ['anal', 'poster', 'Jynx Maze in "Anal Buffet 6" for Evil Angel'],
|
||||||
|
['anal', 7, 'Anastasia Brokelyn for Bang Bros'],
|
||||||
|
['anal', 0, 'Adriana Chechik in "Manuel Creampies Their Asses 3" for Jules Jordan'],
|
||||||
['anal', 6, 'Chloe Cherry in "Chloe\'s Big Anal" for DarkX'],
|
['anal', 6, 'Chloe Cherry in "Chloe\'s Big Anal" for DarkX'],
|
||||||
['anal', 4, 'Lana Roy in "Anal In The Club" for 21Naturals'],
|
['anal', 4, 'Lana Roy in "Anal In The Club" for 21Naturals'],
|
||||||
['anal', 3, 'Dakota Skye for Brazzers'],
|
['anal', 3, 'Dakota Skye for Brazzers'],
|
||||||
|
@ -834,6 +836,7 @@ const tagPhotos = [
|
||||||
['fake-cum', 3, 'Alexia Anders in "Thanksgiving Creampies" for Cum 4K'],
|
['fake-cum', 3, 'Alexia Anders in "Thanksgiving Creampies" for Cum 4K'],
|
||||||
['fake-cum', 0, 'Jynx Maze for Cumshot Surprise (Porn Pros)'],
|
['fake-cum', 0, 'Jynx Maze for Cumshot Surprise (Porn Pros)'],
|
||||||
['fake-cum', 1, 'Ricki White for Fucked Up Facials'],
|
['fake-cum', 1, 'Ricki White for Fucked Up Facials'],
|
||||||
|
['femdom', 1, 'Little Caprice in "Femdom" for Little Caprice Dreams'],
|
||||||
['fingering', 2, 'Kylie Page and Hadley Viscara in "Busty Blonde Bombshells" for LesbianX'],
|
['fingering', 2, 'Kylie Page and Hadley Viscara in "Busty Blonde Bombshells" for LesbianX'],
|
||||||
['fingering', 0, 'Ashly Anderson in "Rough Love" for Hookup Hotshot'],
|
['fingering', 0, 'Ashly Anderson in "Rough Love" for Hookup Hotshot'],
|
||||||
['gangbang', 'poster', 'Kristen Scott in "Interracial Gangbang!" for Jules Jordan'],
|
['gangbang', 'poster', 'Kristen Scott in "Interracial Gangbang!" for Jules Jordan'],
|
||||||
|
|
|
@ -240,14 +240,21 @@ async function fetchLatest(entity, page, options) {
|
||||||
release.photos = Array.from({ length: Math.floor(Math.random() * 10) + 1 }, () => `${options.source}?id=${nanoid()}`); // ensure source is unique
|
release.photos = Array.from({ length: Math.floor(Math.random() * 10) + 1 }, () => `${options.source}?id=${nanoid()}`); // ensure source is unique
|
||||||
} else {
|
} else {
|
||||||
// select from local SFW database
|
// select from local SFW database
|
||||||
const [poster, ...photos] = await knex('media')
|
const [/* poster */, ...photos] = await knex('media')
|
||||||
.select('path')
|
.select('path')
|
||||||
.where('is_sfw', true)
|
.where('is_sfw', true)
|
||||||
.pluck('path')
|
.pluck('path')
|
||||||
.orderByRaw('random()')
|
.orderByRaw('random()')
|
||||||
.limit(Math.floor(Math.random() * 10) + 1);
|
.limit(Math.floor(Math.random() * 10) + 1);
|
||||||
|
|
||||||
release.poster = `http://${config.web.host}:${config.web.port}/img/${poster}?id=${nanoid()}`; // ensure source is unique
|
const [poster] = await knex('media')
|
||||||
|
.select('path')
|
||||||
|
.where('is_sfw', true)
|
||||||
|
.pluck('path')
|
||||||
|
.limit(1);
|
||||||
|
|
||||||
|
// release.poster = `http://${config.web.host}:${config.web.port}/img/${poster}?id=${nanoid()}`; // ensure source is unique
|
||||||
|
release.poster = `http://${config.web.host}:${config.web.port}/img/${poster}`; // ensure source is unique
|
||||||
release.photos = photos.map(photo => `http://${config.web.host}:${config.web.port}/img/${photo}?id=${nanoid()}`);
|
release.photos = photos.map(photo => `http://${config.web.host}:${config.web.port}/img/${photo}?id=${nanoid()}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -356,6 +356,8 @@ async function associateMovieScenes(movies, movieScenes) {
|
||||||
return null;
|
return null;
|
||||||
}).filter(Boolean);
|
}).filter(Boolean);
|
||||||
|
|
||||||
|
console.log(movies, movieScenes, associations);
|
||||||
|
|
||||||
await bulkInsert('movies_scenes', associations, false);
|
await bulkInsert('movies_scenes', associations, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|