forked from DebaucheryLibrarian/traxxx
Added screen caps separate from photos. Added Tokyo Hot. Added hair type, shoe size and blood type actor fields.
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
<div class="media-container">
|
||||
<div
|
||||
class="media"
|
||||
:class="{ center: (release.photos?.length || 0) + (release.scenesPhotos?.length || 0) < 2, preview: !me }"
|
||||
:class="{ center: (release.photos?.length || 0) + (release.caps?.length || 0) + (release.scenesPhotos?.length || 0) < 2, preview: !me }"
|
||||
>
|
||||
<div
|
||||
v-if="release.trailer || release.teaser"
|
||||
@@ -169,7 +169,7 @@ function photos() {
|
||||
const clips = this.release.clips || [];
|
||||
const clipPostersById = clips.reduce((acc, clip) => ({ ...acc, [clip.poster.id]: clip.poster }), {});
|
||||
const uniqueClipPosters = Array.from(new Set(clips.map((clip) => clip.poster.id) || [])).map((posterId) => clipPostersById[posterId]);
|
||||
const photosWithClipPosters = (this.release.photos || []).concat(this.release.scenesPhotos || []).concat(uniqueClipPosters);
|
||||
const photosWithClipPosters = (this.release.photos || []).concat(this.release.caps || []).concat(this.release.scenesPhotos || []).concat(uniqueClipPosters);
|
||||
|
||||
if (this.release.trailer || (this.release.teaser && this.release.teaser.mime !== 'image/gif')) {
|
||||
// poster will be on trailer video
|
||||
|
||||
@@ -21,14 +21,14 @@
|
||||
<Details :release="release" />
|
||||
|
||||
<button
|
||||
v-if="release.photos?.length > 0 || release.scenesPhotos?.length > 0"
|
||||
v-if="showAlbum"
|
||||
class="album-toggle"
|
||||
@click="$router.push({ hash: '#album' })"
|
||||
><Icon icon="grid3" />View album</button>
|
||||
|
||||
<Album
|
||||
v-if="showAlbum"
|
||||
:items="[release.poster, ...(release.photos || []), ...(release.scenesPhotos || [])]"
|
||||
v-if="showAlbum && $route.hash === '#album'"
|
||||
:items="[release.poster, ...(release.photos || []), ...(release.caps || []), ...(release.scenesPhotos || [])]"
|
||||
:title="release.title"
|
||||
:path="config.media.mediaPath"
|
||||
@close="$router.replace({ hash: undefined })"
|
||||
@@ -391,7 +391,7 @@ function pageTitle() {
|
||||
}
|
||||
|
||||
function showAlbum() {
|
||||
return (this.release.photos?.length > 0 || this.release.scenesPhotos?.length > 0) && this.$route.hash === '#album';
|
||||
return this.release.photos?.length > 0 || this.release.caps?.length > 0 || this.release.scenesPhotos?.length > 0;
|
||||
}
|
||||
|
||||
async function mounted() {
|
||||
|
||||
@@ -80,6 +80,7 @@ function curateRelease(release, type = 'scene', context = {}) {
|
||||
curatedRelease.series = release.series?.filter(Boolean).map(({ serie }) => curateRelease(serie, 'serie', context)) || [];
|
||||
curatedRelease.chapters = release.chapters?.filter(Boolean).map((chapter) => curateRelease(chapter, 'chapter', context)) || [];
|
||||
curatedRelease.photos = release.photos?.filter(Boolean).map((photo) => photo.media || photo) || [];
|
||||
curatedRelease.caps = release.caps?.filter(Boolean).map((cap) => cap.media || cap) || [];
|
||||
curatedRelease.scenesPhotos = release.scenesPhotos?.filter(Boolean).map((photo) => photo.media || photo) || [];
|
||||
curatedRelease.covers = release.covers?.filter(Boolean).map(({ media }) => media) || [];
|
||||
|
||||
|
||||
@@ -89,21 +89,34 @@ function initEntitiesActions(store, router) {
|
||||
offset: $offset
|
||||
orderBy: $orderBy
|
||||
filter: {
|
||||
not: { tags: { overlaps: $exclude } }
|
||||
effectiveDate: { lessThan: $before, greaterThan: $after }
|
||||
showcased: { equalTo: true }
|
||||
or: [
|
||||
and: [
|
||||
{
|
||||
channelSlug: { equalTo: $entitySlug }
|
||||
channelType: { equalTo: $entityType }
|
||||
or: [
|
||||
{
|
||||
not: { tags: { overlaps: $exclude } }
|
||||
}
|
||||
{
|
||||
tags: { isNull: true }
|
||||
}
|
||||
]
|
||||
}
|
||||
{
|
||||
networkSlug: { equalTo: $entitySlug }
|
||||
networkType: { equalTo: $entityType }
|
||||
}
|
||||
{
|
||||
parentNetworkSlug: { equalTo: $entitySlug }
|
||||
parentNetworkType: { equalTo: $entityType }
|
||||
or: [
|
||||
{
|
||||
channelSlug: { equalTo: $entitySlug }
|
||||
channelType: { equalTo: $entityType }
|
||||
}
|
||||
{
|
||||
networkSlug: { equalTo: $entitySlug }
|
||||
networkType: { equalTo: $entityType }
|
||||
}
|
||||
{
|
||||
parentNetworkSlug: { equalTo: $entitySlug }
|
||||
parentNetworkType: { equalTo: $entityType }
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -354,6 +354,31 @@ const releasePhotosFragment = `
|
||||
}
|
||||
`;
|
||||
|
||||
const releaseCapsFragment = `
|
||||
caps: releasesCaps(orderBy: MEDIA_BY_MEDIA_ID__INDEX_ASC) {
|
||||
media {
|
||||
id
|
||||
index
|
||||
path
|
||||
thumbnail
|
||||
width
|
||||
height
|
||||
thumbnailWidth
|
||||
thumbnailHeight
|
||||
lazy
|
||||
isS3
|
||||
comment
|
||||
sfw: sfwMedia {
|
||||
id
|
||||
thumbnail
|
||||
lazy
|
||||
path
|
||||
comment
|
||||
}
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
const releaseTrailerFragment = `
|
||||
trailer: releasesTrailer {
|
||||
media {
|
||||
@@ -398,6 +423,7 @@ const releaseFields = `
|
||||
${releaseTagsFragment}
|
||||
${releasePosterFragment}
|
||||
${releasePhotosFragment}
|
||||
${releaseCapsFragment}
|
||||
${siteFragment}
|
||||
studio {
|
||||
id
|
||||
@@ -470,7 +496,14 @@ const releasesFragment = `
|
||||
offset: $offset
|
||||
orderBy: $orderBy
|
||||
filter: {
|
||||
not: { tags: { overlaps: $exclude } }
|
||||
or: [
|
||||
{
|
||||
not: { tags: { overlaps: $exclude } }
|
||||
}
|
||||
{
|
||||
tags: { isNull: true }
|
||||
}
|
||||
]
|
||||
effectiveDate: { lessThan: $before, greaterThan: $after }
|
||||
showcased: { equalTo: true }
|
||||
}
|
||||
@@ -535,6 +568,7 @@ const releaseFragment = `
|
||||
${releaseTagsFragment}
|
||||
${releasePosterFragment}
|
||||
${releasePhotosFragment}
|
||||
${releaseCapsFragment}
|
||||
${releaseCoversFragment}
|
||||
${releaseTrailerFragment}
|
||||
${releaseTeaserFragment}
|
||||
|
||||
@@ -161,7 +161,14 @@ function initTagsActions(store, _router) {
|
||||
offset: $offset
|
||||
orderBy: $orderBy
|
||||
filter: {
|
||||
not: { tags: { overlaps: $exclude } }
|
||||
or: [
|
||||
{
|
||||
not: { tags: { overlaps: $exclude } }
|
||||
}
|
||||
{
|
||||
tags: { isNull: true }
|
||||
}
|
||||
]
|
||||
tags: { anyEqualTo: $tagSlug }
|
||||
effectiveDate: { lessThan: $before, greaterThan: $after }
|
||||
showcased: { equalTo: true }
|
||||
|
||||
Reference in New Issue
Block a user