diff --git a/assets/js/releases/actions.js b/assets/js/releases/actions.js index 4ae82b80..b09c8b6e 100644 --- a/assets/js/releases/actions.js +++ b/assets/js/releases/actions.js @@ -6,7 +6,7 @@ function curateRelease(release) { actors: release.actors.map(({ actor }) => ({ ...actor, avatar: actor.avatar[0], - origin: { + origin: actor.originCountry && { country: actor.originCountry, }, })), @@ -31,7 +31,7 @@ function initReleasesActions(_store, _router) { */ const { releases } = await graphql(` - query Releases($limit:Int) { + query Releases($limit:Int!) { releases(first:$limit, orderBy: DATE_DESC) { id title @@ -63,7 +63,7 @@ function initReleasesActions(_store, _router) { thumbnail } tags: releasesTagsByTargetId { - tag { + tag: releaseTag { name priority slug @@ -137,7 +137,7 @@ function initReleasesActions(_store, _router) { thumbnail } tags: releasesTagsByTargetId { - tag { + tag: releaseTag { name priority slug diff --git a/migrations/20190325001339_releases.js b/migrations/20190325001339_releases.js index 172ae9ca..ae8eb4d8 100644 --- a/migrations/20190325001339_releases.js +++ b/migrations/20190325001339_releases.js @@ -300,7 +300,7 @@ exports.up = knex => Promise.resolve() COMMENT ON VIEW actors_media IS E'@foreignKey (target_id) references actors (id)|@fieldName actorMedia'; COMMENT ON VIEW tags_media IS E'@foreignKey (target_id) references tags (id)|@fieldName tagMedia'; - COMMENT ON VIEW releases_tags IS E'@foreignKey (target_id) references releases (id)\n@foreignKey (tag_id) references tags (id)|@fieldName releaseTags'; + COMMENT ON VIEW releases_tags IS E'@foreignKey (target_id) references releases (id)\n@foreignKey (tag_id) references tags (id)|@fieldName releaseTag'; `)); exports.down = knex => Promise.resolve() diff --git a/public/css/style.css b/public/css/style.css index 80ce38d3..770d34a6 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -1,48 +1,1403 @@ -.filters[data-v-e35db0d8]{display:inline-block;list-style:none;padding:.5rem;margin:0}.filters[data-v-e35db0d8]:not(:last-child){border-right:solid 1px rgba(0,0,0,0.1)}.filter[data-v-e35db0d8]{display:inline-block}.compact .filters[data-v-e35db0d8]{padding:0;border:none}.compact .filter[data-v-e35db0d8]{margin:0 0 1.5rem 0}.toggle[data-v-e35db0d8]{color:rgba(0,0,0,0.2);box-sizing:border-box;padding:.5rem;margin:0 .25rem;border:solid 1px transparent;font-size:.9rem;font-weight:bold;cursor:pointer}.toggle .check[data-v-e35db0d8]{display:none}.toggle[data-v-e35db0d8]:hover{color:rgba(0,0,0,0.5)}.toggle.active[data-v-e35db0d8]{color:#ff6c88;box-shadow:0 0 2px rgba(0,0,0,0.2)} +/* $primary: #ff886c; */ +.filters[data-v-e35db0d8] { + display: inline-block; + list-style: none; + padding: .5rem; + margin: 0; +} +.filters[data-v-e35db0d8]:not(:last-child) { + border-right: solid 1px rgba(0, 0, 0, 0.1); +} +.filter[data-v-e35db0d8] { + display: inline-block; +} +.compact .filters[data-v-e35db0d8] { + padding: 0; + border: none; +} +.compact .filter[data-v-e35db0d8] { + margin: 0 0 1.5rem 0; +} +.toggle[data-v-e35db0d8] { + color: rgba(0, 0, 0, 0.2); + box-sizing: border-box; + padding: .5rem; + margin: 0 .25rem; + border: solid 1px transparent; + font-size: .9rem; + font-weight: bold; + cursor: pointer; +} +.toggle .check[data-v-e35db0d8] { + display: none; +} +.toggle[data-v-e35db0d8]:hover { + color: rgba(0, 0, 0, 0.5); +} +.toggle.active[data-v-e35db0d8] { + color: #ff6c88; + box-shadow: 0 0 2px rgba(0, 0, 0, 0.2); +} -.filter-bar[data-v-6db17c96]{background:#fff;display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;padding:.5rem 1rem;z-index:1;font-size:0;box-shadow:0 0 3px rgba(0,0,0,0.5)}.filter-bar .icon[data-v-6db17c96]{fill:rgba(0,0,0,0.5)}.filters-container[data-v-6db17c96]{display:inline-block}.filters-compact[data-v-6db17c96]{font-size:1rem;font-weight:bold;display:none;margin:0 0 0 .5rem}.range-button[data-v-6db17c96]{color:rgba(0,0,0,0.5);background:#fff;display:inline-block;padding:.5rem 1rem;border:none;box-shadow:0 0 2px rgba(0,0,0,0.2);font-size:.8rem;font-weight:bold}.range-button[data-v-6db17c96]:hover{color:#222;cursor:pointer}.range-input[data-v-6db17c96]{display:none}.range-input:checked+.range-button[data-v-6db17c96]{color:#ff6c88}@media (max-width: 720px){.filters-container[data-v-6db17c96]{display:none}.filters-compact[data-v-6db17c96]{display:inline-block}} +/* $primary: #ff886c; */ +.filter-bar[data-v-6db17c96] { + background: #fff; + display: -webkit-box; + display: flex; + -webkit-box-pack: justify; + justify-content: space-between; + padding: .5rem 1rem; + z-index: 1; + font-size: 0; + box-shadow: 0 0 3px rgba(0, 0, 0, 0.5); +} +.filter-bar .icon[data-v-6db17c96] { + fill: rgba(0, 0, 0, 0.5); +} +.filters-container[data-v-6db17c96] { + display: inline-block; +} +.filters-compact[data-v-6db17c96] { + font-size: 1rem; + font-weight: bold; + display: none; + margin: 0 0 0 .5rem; +} +.range-button[data-v-6db17c96] { + color: rgba(0, 0, 0, 0.5); + background: #fff; + display: inline-block; + padding: .5rem 1rem; + border: none; + box-shadow: 0 0 2px rgba(0, 0, 0, 0.2); + font-size: .8rem; + font-weight: bold; +} +.range-button[data-v-6db17c96]:hover { + color: #222; + cursor: pointer; +} +.range-input[data-v-6db17c96] { + display: none; +} +.range-input:checked + .range-button[data-v-6db17c96] { + color: #ff6c88; +} +@media (max-width: 720px) { +.filters-container[data-v-6db17c96] { + display: none; +} +.filters-compact[data-v-6db17c96] { + display: inline-block; +} +} -.tile[data-v-3abcf101]{background:#fff;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;box-sizing:border-box;padding:0 0 .5rem 0;overflow:hidden;box-shadow:0 0 3px rgba(0,0,0,0.2);height:100%}.banner[data-v-3abcf101]{position:relative;margin:0 0 .5rem 0}.thumbnail[data-v-3abcf101]{width:100%;height:12rem;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;-o-object-fit:cover;object-fit:cover;background-position:center;background-size:cover;background-color:rgba(0,0,0,0.1);color:rgba(0,0,0,0.5);text-shadow:1px 1px 0 rgba(255,255,255,0.5)}.row[data-v-3abcf101]{display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;-webkit-box-align:center;align-items:center;box-sizing:border-box;padding:0 .5rem;margin:0 0 .25rem 0}.details[data-v-3abcf101]{width:100%;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between;position:absolute;font-size:0}.site[data-v-3abcf101],.date[data-v-3abcf101]{color:#fff;background:rgba(0,0,0,0.5);position:relative;font-size:.8rem;padding:.25rem;text-decoration:none}.date.upcoming[data-v-3abcf101]:before{content:'';color:#fff;background:#ff6c88;width:.25rem;display:inline-block;position:absolute;top:0;bottom:0;left:-.75rem;padding:.25rem;font-size:.8rem;font-weight:bold}.site[data-v-3abcf101]{font-weight:bold}.info[data-v-3abcf101]{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-flex:1;flex-grow:1}.link[data-v-3abcf101]{text-decoration:none}.title[data-v-3abcf101]{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin:0 .25rem .25rem 0;color:#222;font-size:1rem;max-height:3rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.title .icon[data-v-3abcf101]{margin:0 .25rem 0 0}.network[data-v-3abcf101]{color:#555;margin:0 .25rem 0 0;font-size:.8rem}.actors[data-v-3abcf101]{word-wrap:break-word;overflow:hidden;max-height:2.75rem;line-height:1.5rem}.tags[data-v-3abcf101]{max-height:2.5rem;padding:.25rem .5rem 1rem .5rem;line-height:1.5rem;word-wrap:break-word;overflow-y:hidden}.actor[data-v-3abcf101]{margin:0 .25rem 0 0}.tag[data-v-3abcf101]{margin:0 .25rem .25rem 0}.actor[data-v-3abcf101]:not(:last-of-type)::after{content:","}.actor-link[data-v-3abcf101]{text-decoration:none}.actor-link[data-v-3abcf101]:hover{color:#ff6c88}.actor-link[data-v-3abcf101]{color:#c46}.tag-link[data-v-3abcf101]{color:rgba(0,0,0,0.5);display:inline-block;padding:.25rem;font-size:.75rem;font-weight:bold;text-decoration:none;line-height:1;border:solid 1px rgba(0,0,0,0.1)}.tag-link[data-v-3abcf101]:hover{color:#ff6c88} +/* $primary: #ff886c; */ +.tile[data-v-3abcf101] { + background: #fff; + display: -webkit-box; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + flex-direction: column; + box-sizing: border-box; + padding: 0 0 .5rem 0; + overflow: hidden; + box-shadow: 0 0 3px rgba(0, 0, 0, 0.2); + height: 100%; +} +.banner[data-v-3abcf101] { + position: relative; + margin: 0 0 .5rem 0; +} +.thumbnail[data-v-3abcf101] { + width: 100%; + height: 12rem; + display: -webkit-box; + display: flex; + -webkit-box-pack: center; + justify-content: center; + -webkit-box-align: center; + align-items: center; + -o-object-fit: cover; + object-fit: cover; + background-position: center; + background-size: cover; + background-color: rgba(0, 0, 0, 0.1); + color: rgba(0, 0, 0, 0.5); + text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.5); +} +.row[data-v-3abcf101] { + display: -webkit-box; + display: flex; + -webkit-box-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + align-items: center; + box-sizing: border-box; + padding: 0 .5rem; + margin: 0 0 .25rem 0; +} +.details[data-v-3abcf101] { + width: 100%; + display: -webkit-box; + display: flex; + -webkit-box-align: center; + align-items: center; + -webkit-box-pack: justify; + justify-content: space-between; + position: absolute; + font-size: 0; +} +.site[data-v-3abcf101], +.date[data-v-3abcf101] { + color: #fff; + background: rgba(0, 0, 0, 0.5); + position: relative; + font-size: .8rem; + padding: .25rem; + text-decoration: none; +} +.date.upcoming[data-v-3abcf101]:before { + content: ''; + color: #fff; + background: #ff6c88; + width: .25rem; + display: inline-block; + position: absolute; + top: 0; + bottom: 0; + left: -.75rem; + padding: .25rem; + font-size: .8rem; + font-weight: bold; +} +.site[data-v-3abcf101] { + font-weight: bold; +} +.info[data-v-3abcf101] { + display: -webkit-box; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + flex-direction: column; + -webkit-box-flex: 1; + flex-grow: 1; +} +.link[data-v-3abcf101] { + text-decoration: none; +} +.title[data-v-3abcf101] { + display: -webkit-box; + display: flex; + -webkit-box-align: center; + align-items: center; + margin: 0 .25rem .25rem 0; + color: #222; + font-size: 1rem; + max-height: 3rem; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.title .icon[data-v-3abcf101] { + margin: 0 .25rem 0 0; +} +.network[data-v-3abcf101] { + color: #555; + margin: 0 .25rem 0 0; + font-size: .8rem; +} +.actors[data-v-3abcf101] { + word-wrap: break-word; + overflow: hidden; + max-height: 2.75rem; + line-height: 1.5rem; +} +.tags[data-v-3abcf101] { + max-height: 2.5rem; + padding: .25rem .5rem 1rem .5rem; + line-height: 1.5rem; + word-wrap: break-word; + overflow-y: hidden; +} +.actor[data-v-3abcf101] { + margin: 0 .25rem 0 0; +} +.tag[data-v-3abcf101] { + margin: 0 .25rem .25rem 0; +} +.actor[data-v-3abcf101]:not(:last-of-type)::after { + content: ","; +} +.actor-link[data-v-3abcf101] { + text-decoration: none; +} +.actor-link[data-v-3abcf101]:hover { + color: #ff6c88; +} +.actor-link[data-v-3abcf101] { + color: #cc4466; +} +.tag-link[data-v-3abcf101] { + color: rgba(0, 0, 0, 0.5); + display: inline-block; + padding: .25rem; + font-size: .75rem; + font-weight: bold; + text-decoration: none; + line-height: 1; + border: solid 1px rgba(0, 0, 0, 0.1); +} +.tag-link[data-v-3abcf101]:hover { + color: #ff6c88; +} -.heading[data-v-22ffe3e4]{padding:0;margin:0 0 1rem 0}.heading .range[data-v-22ffe3e4]{text-transform:capitalize}.tiles[data-v-22ffe3e4]{width:100%;display:grid;grid-template-columns:repeat(auto-fit, minmax(20rem, 0.33fr));grid-gap:1rem}@media (max-width: 1500px){.tiles[data-v-22ffe3e4]{grid-template-columns:repeat(auto-fit, minmax(20rem, 0.5fr))}}@media (max-width: 720px){.tiles[data-v-22ffe3e4]{grid-template-columns:repeat(auto-fit, minmax(20rem, 1fr))}} +/* $primary: #ff886c; */ +.heading[data-v-22ffe3e4] { + padding: 0; + margin: 0 0 1rem 0; +} +.heading .range[data-v-22ffe3e4] { + text-transform: capitalize; +} +.tiles[data-v-22ffe3e4] { + width: 100%; + display: grid; + grid-template-columns: repeat(auto-fit, minmax(20rem, 0.33fr)); + grid-gap: 1rem; +} +@media (max-width: 1500px) { +.tiles[data-v-22ffe3e4] { + grid-template-columns: repeat(auto-fit, minmax(20rem, 0.5fr)); +} +} +@media (max-width: 720px) { +.tiles[data-v-22ffe3e4] { + grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); +} +} -.banner[data-v-42bb19c4]{background:#222;flex-shrink:0;white-space:nowrap;overflow-x:auto;scrollbar-width:none;box-shadow:0 0 3px rgba(0,0,0,0.5);font-size:0}.banner[data-v-42bb19c4]::-webkit-scrollbar{display:none}.trailer[data-v-42bb19c4]{display:inline-block;max-width:100vw}.trailer-video[data-v-42bb19c4]{max-width:100%}.item[data-v-42bb19c4]{height:18rem;vertical-align:middle} +/* $primary: #ff886c; */ +.banner[data-v-42bb19c4] { + background: #222; + flex-shrink: 0; + white-space: nowrap; + overflow-x: auto; + scrollbar-width: none; + box-shadow: 0 0 3px rgba(0, 0, 0, 0.5); + font-size: 0; +} +.banner[data-v-42bb19c4]::-webkit-scrollbar { + display: none; +} +.trailer[data-v-42bb19c4] { + display: inline-block; + max-width: 100vw; +} +.trailer-video[data-v-42bb19c4] { + max-width: 100%; +} +.item[data-v-42bb19c4] { + height: 18rem; + vertical-align: middle; +} -.actor[data-v-6989dc6f]{width:10rem;background:#fff;display:inline-block;margin:0 .5rem .5rem 0;position:relative;box-shadow:0 0 3px rgba(0,0,0,0.2)}.link[data-v-6989dc6f]{color:#c46;text-decoration:none;text-align:center}.link[data-v-6989dc6f]:hover{color:#ff6c88}.name[data-v-6989dc6f]{display:block;padding:.5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:bold}.avatar[data-v-6989dc6f]{color:rgba(0,0,0,0.2);background:rgba(0,0,0,0.1);height:12rem;width:100%;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;-o-object-fit:cover;object-fit:cover;-o-object-position:50% 0;object-position:50% 0}.details[data-v-6989dc6f]{background:rgba(0,0,0,0.5);color:#fff;width:100%;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between;box-sizing:border-box;padding:.5rem;position:absolute;bottom:0;font-size:.8rem;font-weight:bold}.age-then[data-v-6989dc6f]{color:rgba(255,255,255,0.5)} +/* $primary: #ff886c; */ +.actor[data-v-6989dc6f] { + width: 10rem; + background: #fff; + display: inline-block; + margin: 0 .5rem .5rem 0; + position: relative; + box-shadow: 0 0 3px rgba(0, 0, 0, 0.2); +} +.link[data-v-6989dc6f] { + color: #cc4466; + text-decoration: none; + text-align: center; +} +.link[data-v-6989dc6f]:hover { + color: #ff6c88; +} +.name[data-v-6989dc6f] { + display: block; + padding: .5rem; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + font-weight: bold; +} +.avatar[data-v-6989dc6f] { + color: rgba(0, 0, 0, 0.2); + background: rgba(0, 0, 0, 0.1); + height: 12rem; + width: 100%; + display: -webkit-box; + display: flex; + -webkit-box-align: center; + align-items: center; + -webkit-box-pack: center; + justify-content: center; + -o-object-fit: cover; + object-fit: cover; + -o-object-position: 50% 0; + object-position: 50% 0; +} +.details[data-v-6989dc6f] { + background: rgba(0, 0, 0, 0.5); + color: #fff; + width: 100%; + display: -webkit-box; + display: flex; + -webkit-box-align: center; + align-items: center; + -webkit-box-pack: justify; + justify-content: space-between; + box-sizing: border-box; + padding: .5rem; + position: absolute; + bottom: 0; + font-size: .8rem; + font-weight: bold; +} +.age-then[data-v-6989dc6f] { + color: rgba(255, 255, 255, 0.5); +} -.column[data-v-d4b03dc2]{width:1200px;max-width:100%;padding:0 1rem;margin:0 auto;box-sizing:border-box}.row[data-v-d4b03dc2]{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin:0 0 1rem 0}.row .icon[data-v-d4b03dc2]{display:inline-block;width:1rem;fill:rgba(0,0,0,0.7);margin:0 1rem 0 0}.info[data-v-d4b03dc2]{background:#fff;margin:0 0 1.5rem 0;box-shadow:0 0 3px rgba(0,0,0,0.2);cursor:default}.info .column[data-v-d4b03dc2]{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:0 1rem}.tidbit[data-v-d4b03dc2]{display:inline-block;height:100%}.tidbit[data-v-d4b03dc2]:not(:last-child){border-right:solid 1px rgba(0,0,0,0.1)}.tidbit .icon[data-v-d4b03dc2]{fill:rgba(0,0,0,0.7);margin:0 .25rem 0 0}.tidbit.date[data-v-d4b03dc2],.tidbit.duration[data-v-d4b03dc2],.tidbit.shoot[data-v-d4b03dc2]{flex-shrink:0;padding:1.25rem 1rem 1.25rem 0;margin:0 1rem 0 0}.site[data-v-d4b03dc2]{display:-webkit-inline-box;display:inline-flex;-webkit-box-flex:1;flex-grow:1;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;padding:.25rem 0;font-size:0}.logo[data-v-d4b03dc2]{display:inline-block;-webkit-filter:drop-shadow(1px 0 0 rgba(0,0,0,0.2)) drop-shadow(-1px 0 0 rgba(0,0,0,0.2)) drop-shadow(0 1px 0 rgba(0,0,0,0.2)) drop-shadow(0 -1px 0 rgba(0,0,0,0.2));filter:drop-shadow(1px 0 0 rgba(0,0,0,0.2)) drop-shadow(-1px 0 0 rgba(0,0,0,0.2)) drop-shadow(0 1px 0 rgba(0,0,0,0.2)) drop-shadow(0 -1px 0 rgba(0,0,0,0.2))}.logo-site[data-v-d4b03dc2]{height:3rem;max-width:15rem;-o-object-fit:contain;object-fit:contain;-o-object-position:100% 50%;object-position:100% 50%}.logo-network[data-v-d4b03dc2]{height:1.5rem;max-width:10rem;-o-object-fit:contain;object-fit:contain;-o-object-position:100% 50%;object-position:100% 50%}.chain[data-v-d4b03dc2]{color:rgba(0,0,0,0.5);padding:0 .5rem;font-weight:bold;font-size:.8rem}.title[data-v-d4b03dc2]{margin:0 0 1.5rem 0}.description[data-v-d4b03dc2]{line-height:1.25}.duration[data-v-d4b03dc2]{font-size:0}.duration-segment[data-v-d4b03dc2]{font-size:1rem}.actors[data-v-d4b03dc2]{display:-webkit-box;display:flex;flex-wrap:wrap}.link[data-v-d4b03dc2]{display:inline-block;color:#c46;text-decoration:none}.link[data-v-d4b03dc2]:hover{color:#ff6c88}.link:hover .icon[data-v-d4b03dc2]{fill:#ff6c88}.tag .link[data-v-d4b03dc2]{background:#fff;display:inline-block;padding:.5rem;margin:0 .25rem .25rem 0;box-shadow:0 0 2px rgba(0,0,0,0.2);text-decoration:none;text-transform:capitalize}.tag .link[data-v-d4b03dc2]:hover{color:#ff6c88}.showable[data-v-d4b03dc2]{display:none}@media (max-width: 1200px){.logo-network[data-v-d4b03dc2],.chain[data-v-d4b03dc2]{display:none}}@media (max-width: 720px){.hideable[data-v-d4b03dc2]{display:none}.row .showable[data-v-d4b03dc2]{display:block}.tidbit .showable[data-v-d4b03dc2]{display:inline-block}.logo-site[data-v-d4b03dc2]{width:15rem;max-width:100%}} +/* $primary: #ff886c; */ +.column[data-v-d4b03dc2] { + width: 1200px; + max-width: 100%; + padding: 0 1rem; + margin: 0 auto; + box-sizing: border-box; +} +.row[data-v-d4b03dc2] { + display: -webkit-box; + display: flex; + -webkit-box-align: center; + align-items: center; + margin: 0 0 1rem 0; +} +.row .icon[data-v-d4b03dc2] { + display: inline-block; + width: 1rem; + fill: rgba(0, 0, 0, 0.7); + margin: 0 1rem 0 0; +} +.info[data-v-d4b03dc2] { + background: #fff; + margin: 0 0 1.5rem 0; + box-shadow: 0 0 3px rgba(0, 0, 0, 0.2); + cursor: default; +} +.info .column[data-v-d4b03dc2] { + display: -webkit-box; + display: flex; + -webkit-box-align: center; + align-items: center; + padding: 0 1rem; +} +.tidbit[data-v-d4b03dc2] { + display: inline-block; + height: 100%; +} +.tidbit[data-v-d4b03dc2]:not(:last-child) { + border-right: solid 1px rgba(0, 0, 0, 0.1); +} +.tidbit .icon[data-v-d4b03dc2] { + fill: rgba(0, 0, 0, 0.7); + margin: 0 .25rem 0 0; +} +.tidbit.date[data-v-d4b03dc2], .tidbit.duration[data-v-d4b03dc2], .tidbit.shoot[data-v-d4b03dc2] { + flex-shrink: 0; + padding: 1.25rem 1rem 1.25rem 0; + margin: 0 1rem 0 0; +} +.site[data-v-d4b03dc2] { + display: -webkit-inline-box; + display: inline-flex; + -webkit-box-flex: 1; + flex-grow: 1; + -webkit-box-align: center; + align-items: center; + -webkit-box-pack: end; + justify-content: flex-end; + padding: .25rem 0; + font-size: 0; +} +.logo[data-v-d4b03dc2] { + display: inline-block; + -webkit-filter: drop-shadow(1px 0 0 rgba(0, 0, 0, 0.2)) drop-shadow(-1px 0 0 rgba(0, 0, 0, 0.2)) drop-shadow(0 1px 0 rgba(0, 0, 0, 0.2)) drop-shadow(0 -1px 0 rgba(0, 0, 0, 0.2)); + filter: drop-shadow(1px 0 0 rgba(0, 0, 0, 0.2)) drop-shadow(-1px 0 0 rgba(0, 0, 0, 0.2)) drop-shadow(0 1px 0 rgba(0, 0, 0, 0.2)) drop-shadow(0 -1px 0 rgba(0, 0, 0, 0.2)); +} +.logo-site[data-v-d4b03dc2] { + height: 3rem; + max-width: 15rem; + -o-object-fit: contain; + object-fit: contain; + -o-object-position: 100% 50%; + object-position: 100% 50%; +} +.logo-network[data-v-d4b03dc2] { + height: 1.5rem; + max-width: 10rem; + -o-object-fit: contain; + object-fit: contain; + -o-object-position: 100% 50%; + object-position: 100% 50%; +} +.chain[data-v-d4b03dc2] { + color: rgba(0, 0, 0, 0.5); + padding: 0 .5rem; + font-weight: bold; + font-size: .8rem; +} +.title[data-v-d4b03dc2] { + margin: 0 0 1.5rem 0; +} +.description[data-v-d4b03dc2] { + line-height: 1.25; +} +.duration[data-v-d4b03dc2] { + font-size: 0; +} +.duration-segment[data-v-d4b03dc2] { + font-size: 1rem; +} +.actors[data-v-d4b03dc2] { + display: -webkit-box; + display: flex; + flex-wrap: wrap; +} +.link[data-v-d4b03dc2] { + display: inline-block; + color: #cc4466; + text-decoration: none; +} +.link[data-v-d4b03dc2]:hover { + color: #ff6c88; +} +.link:hover .icon[data-v-d4b03dc2] { + fill: #ff6c88; +} +.tag .link[data-v-d4b03dc2] { + background: #fff; + display: inline-block; + padding: .5rem; + margin: 0 .25rem .25rem 0; + box-shadow: 0 0 2px rgba(0, 0, 0, 0.2); + text-decoration: none; + text-transform: capitalize; +} +.tag .link[data-v-d4b03dc2]:hover { + color: #ff6c88; +} +.showable[data-v-d4b03dc2] { + display: none; +} +@media (max-width: 1200px) { +.logo-network[data-v-d4b03dc2], + .chain[data-v-d4b03dc2] { + display: none; +} +} +@media (max-width: 720px) { +.hideable[data-v-d4b03dc2] { + display: none; +} +.row .showable[data-v-d4b03dc2] { + display: block; +} +.tidbit .showable[data-v-d4b03dc2] { + display: inline-block; +} +.logo-site[data-v-d4b03dc2] { + width: 15rem; + max-width: 100%; +} +} -.header[data-v-3e57cf44]{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-pack:justify;justify-content:space-between}.title[data-v-3e57cf44]{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:top;align-items:top;margin:0 1rem 0 0}.title:hover .icon[data-v-3e57cf44]{fill:#ff6c88}.heading[data-v-3e57cf44]{padding:0;margin:0 0 1rem 0}.link[data-v-3e57cf44]{display:-webkit-box;display:flex;flex-shrink:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:end;align-items:flex-end}.logo[data-v-3e57cf44]{width:20rem;max-height:8rem;-o-object-fit:contain;object-fit:contain;margin:0 .5rem 1rem 0}.networklogo-container[data-v-3e57cf44]{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.networklogo[data-v-3e57cf44]{color:#222;width:15rem;max-height:6rem;font-weight:bold;-o-object-fit:contain;object-fit:contain;-o-object-position:100% 0;object-position:100% 0;margin:0 0 0 .5rem}.sites[data-v-3e57cf44],.scenes[data-v-3e57cf44]{display:grid;grid-gap:1rem;margin:0 0 1rem 0}.sites[data-v-3e57cf44]{grid-template-columns:repeat(auto-fit, 15rem)} +/* $primary: #ff886c; */ +.header[data-v-3e57cf44] { + display: -webkit-box; + display: flex; + flex-wrap: wrap; + -webkit-box-pack: justify; + justify-content: space-between; +} +.title[data-v-3e57cf44] { + display: -webkit-inline-box; + display: inline-flex; + -webkit-box-align: top; + align-items: top; + margin: 0 1rem 0 0; +} +.title:hover .icon[data-v-3e57cf44] { + fill: #ff6c88; +} +.heading[data-v-3e57cf44] { + padding: 0; + margin: 0 0 1rem 0; +} +.link[data-v-3e57cf44] { + display: -webkit-box; + display: flex; + flex-shrink: 0; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + flex-direction: column; + -webkit-box-align: end; + align-items: flex-end; +} +.logo[data-v-3e57cf44] { + width: 20rem; + max-height: 8rem; + -o-object-fit: contain; + object-fit: contain; + margin: 0 .5rem 1rem 0; +} +.networklogo-container[data-v-3e57cf44] { + display: -webkit-box; + display: flex; + -webkit-box-align: center; + align-items: center; +} +.networklogo[data-v-3e57cf44] { + color: #222; + width: 15rem; + max-height: 6rem; + font-weight: bold; + -o-object-fit: contain; + object-fit: contain; + -o-object-position: 100% 0; + object-position: 100% 0; + margin: 0 0 0 .5rem; +} +.sites[data-v-3e57cf44], +.scenes[data-v-3e57cf44] { + display: grid; + grid-gap: 1rem; + margin: 0 0 1rem 0; +} +.sites[data-v-3e57cf44] { + grid-template-columns: repeat(auto-fit, 15rem); +} -.tile[data-v-f4958086]{background:#fff;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:center;align-items:center;box-sizing:border-box;padding:.5rem 1rem;border-radius:.25rem;box-shadow:0 0 3px rgba(0,0,0,0.25);height:100%;text-align:center}.link[data-v-f4958086]{text-decoration:none}.logo[data-v-f4958086]{width:100%;height:5rem;color:#222;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;-o-object-fit:contain;object-fit:contain;font-size:1rem;font-weight:bold;-webkit-filter:drop-shadow(1px 0 0 rgba(0,0,0,0.2)) drop-shadow(-1px 0 0 rgba(0,0,0,0.2)) drop-shadow(0 1px 0 rgba(0,0,0,0.2)) drop-shadow(0 -1px 0 rgba(0,0,0,0.2));filter:drop-shadow(1px 0 0 rgba(0,0,0,0.2)) drop-shadow(-1px 0 0 rgba(0,0,0,0.2)) drop-shadow(0 1px 0 rgba(0,0,0,0.2)) drop-shadow(0 -1px 0 rgba(0,0,0,0.2))}.title[data-v-f4958086]{color:#222;height:100%;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin:0} +/* $primary: #ff886c; */ +.tile[data-v-f4958086] { + background: #fff; + display: -webkit-box; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + flex-direction: column; + -webkit-box-align: center; + align-items: center; + box-sizing: border-box; + padding: .5rem 1rem; + border-radius: .25rem; + box-shadow: 0 0 3px rgba(0, 0, 0, 0.25); + height: 100%; + text-align: center; +} +.link[data-v-f4958086] { + text-decoration: none; +} +.logo[data-v-f4958086] { + width: 100%; + height: 5rem; + color: #222; + display: -webkit-box; + display: flex; + -webkit-box-align: center; + align-items: center; + -webkit-box-pack: center; + justify-content: center; + -o-object-fit: contain; + object-fit: contain; + font-size: 1rem; + font-weight: bold; + -webkit-filter: drop-shadow(1px 0 0 rgba(0, 0, 0, 0.2)) drop-shadow(-1px 0 0 rgba(0, 0, 0, 0.2)) drop-shadow(0 1px 0 rgba(0, 0, 0, 0.2)) drop-shadow(0 -1px 0 rgba(0, 0, 0, 0.2)); + filter: drop-shadow(1px 0 0 rgba(0, 0, 0, 0.2)) drop-shadow(-1px 0 0 rgba(0, 0, 0, 0.2)) drop-shadow(0 1px 0 rgba(0, 0, 0, 0.2)) drop-shadow(0 -1px 0 rgba(0, 0, 0, 0.2)); +} +.title[data-v-f4958086] { + color: #222; + height: 100%; + display: -webkit-box; + display: flex; + -webkit-box-align: center; + align-items: center; + margin: 0; +} -.header[data-v-e2e12602]{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-pack:justify;justify-content:space-between;-webkit-box-align:top;align-items:top;margin:0 0 2rem 0}.title[data-v-e2e12602]{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:top;align-items:top;margin:0 1rem 0 0}.title:hover .icon[data-v-e2e12602]{fill:#ff6c88}.logo[data-v-e2e12602]{width:20rem;max-height:8rem;-o-object-fit:contain;object-fit:contain;margin:0 .5rem 0 0}.sites[data-v-e2e12602]{display:grid;grid-gap:1rem;margin:0 0 2rem 0}.sites[data-v-e2e12602]{grid-template-columns:repeat(auto-fit, 15rem)}@media (max-width: 720px){.sites[data-v-e2e12602]{grid-template-columns:repeat(auto-fit, minmax(15rem, 1fr))}} +/* $primary: #ff886c; */ +.header[data-v-e2e12602] { + display: -webkit-box; + display: flex; + flex-wrap: wrap; + -webkit-box-pack: justify; + justify-content: space-between; + -webkit-box-align: top; + align-items: top; + margin: 0 0 2rem 0; +} +.title[data-v-e2e12602] { + display: -webkit-inline-box; + display: inline-flex; + -webkit-box-align: top; + align-items: top; + margin: 0 1rem 0 0; +} +.title:hover .icon[data-v-e2e12602] { + fill: #ff6c88; +} +.logo[data-v-e2e12602] { + width: 20rem; + max-height: 8rem; + -o-object-fit: contain; + object-fit: contain; + margin: 0 .5rem 0 0; +} +.sites[data-v-e2e12602] { + display: grid; + grid-gap: 1rem; + margin: 0 0 2rem 0; +} +.sites[data-v-e2e12602] { + grid-template-columns: repeat(auto-fit, 15rem); +} +@media (max-width: 720px) { +.sites[data-v-e2e12602] { + grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); +} +} -.tile[data-v-8b4c90b0]{background:#fff;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:center;align-items:center;box-sizing:border-box;padding:.5rem 1rem;box-shadow:0 0 3px rgba(0,0,0,0.25);height:100%;text-align:center}.link[data-v-8b4c90b0]{text-decoration:none}.logo[data-v-8b4c90b0]{width:100%;height:5rem;color:#222;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;-o-object-fit:contain;object-fit:contain;font-size:1rem;font-weight:bold;-webkit-filter:drop-shadow(1px 0 0 rgba(0,0,0,0.2)) drop-shadow(-1px 0 0 rgba(0,0,0,0.2)) drop-shadow(0 1px 0 rgba(0,0,0,0.2)) drop-shadow(0 -1px 0 rgba(0,0,0,0.2));filter:drop-shadow(1px 0 0 rgba(0,0,0,0.2)) drop-shadow(-1px 0 0 rgba(0,0,0,0.2)) drop-shadow(0 1px 0 rgba(0,0,0,0.2)) drop-shadow(0 -1px 0 rgba(0,0,0,0.2))}.title[data-v-8b4c90b0]{color:#222;height:100%;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin:0} +/* $primary: #ff886c; */ +.tile[data-v-8b4c90b0] { + background: #fff; + display: -webkit-box; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + flex-direction: column; + -webkit-box-align: center; + align-items: center; + box-sizing: border-box; + padding: .5rem 1rem; + box-shadow: 0 0 3px rgba(0, 0, 0, 0.25); + height: 100%; + text-align: center; +} +.link[data-v-8b4c90b0] { + text-decoration: none; +} +.logo[data-v-8b4c90b0] { + width: 100%; + height: 5rem; + color: #222; + display: -webkit-box; + display: flex; + -webkit-box-align: center; + align-items: center; + -webkit-box-pack: center; + justify-content: center; + -o-object-fit: contain; + object-fit: contain; + font-size: 1rem; + font-weight: bold; + -webkit-filter: drop-shadow(1px 0 0 rgba(0, 0, 0, 0.2)) drop-shadow(-1px 0 0 rgba(0, 0, 0, 0.2)) drop-shadow(0 1px 0 rgba(0, 0, 0, 0.2)) drop-shadow(0 -1px 0 rgba(0, 0, 0, 0.2)); + filter: drop-shadow(1px 0 0 rgba(0, 0, 0, 0.2)) drop-shadow(-1px 0 0 rgba(0, 0, 0, 0.2)) drop-shadow(0 1px 0 rgba(0, 0, 0, 0.2)) drop-shadow(0 -1px 0 rgba(0, 0, 0, 0.2)); +} +.title[data-v-8b4c90b0] { + color: #222; + height: 100%; + display: -webkit-box; + display: flex; + -webkit-box-align: center; + align-items: center; + margin: 0; +} -.networks[data-v-4709d404]{display:grid;grid-template-columns:repeat(auto-fit, minmax(15rem, 1fr));grid-gap:1rem;padding:1rem} +.networks[data-v-4709d404] { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); + grid-gap: 1rem; + padding: 1rem; +} -.photos[data-v-0a0430c7]{display:inline-grid;grid-template-columns:repeat(auto-fit, 12rem);grid-gap:.5rem;font-size:0}.photos .avatar-link[data-v-0a0430c7]{display:none}.photo[data-v-0a0430c7]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;box-shadow:0 0 3px rgba(0,0,0,0.2)}@media (min-width: 1200px){.photos.wide[data-v-0a0430c7]{max-width:30vw}}@media (max-width: 1200px){.photos[data-v-0a0430c7]{width:100%;max-width:100%;display:-webkit-box;display:flex;overflow-x:scroll;scrollbar-width:none}.photos .avatar-link[data-v-0a0430c7]{display:inline-block}.photos[data-v-0a0430c7]::-webkit-scrollbar{display:none}.photo-link[data-v-0a0430c7]{height:15rem;flex-shrink:0;margin:0 .5rem 0 0}} +/* $primary: #ff886c; */ +.photos[data-v-0a0430c7] { + display: inline-grid; + grid-template-columns: repeat(auto-fit, 12rem); + grid-gap: .5rem; + font-size: 0; +} +.photos .avatar-link[data-v-0a0430c7] { + display: none; +} +.photo[data-v-0a0430c7] { + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; + box-shadow: 0 0 3px rgba(0, 0, 0, 0.2); +} +@media (min-width: 1200px) { +.photos.wide[data-v-0a0430c7] { + max-width: 30vw; +} +} +@media (max-width: 1200px) { +.photos[data-v-0a0430c7] { + width: 100%; + max-width: 100%; + display: -webkit-box; + display: flex; + overflow-x: scroll; + scrollbar-width: none; +} +.photos .avatar-link[data-v-0a0430c7] { + display: inline-block; +} +.photos[data-v-0a0430c7]::-webkit-scrollbar { + display: none; +} +.photo-link[data-v-0a0430c7] { + height: 15rem; + flex-shrink: 0; + margin: 0 .5rem 0 0; +} +} -.actor-inner[data-v-ea0483c2]{height:100%;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding:0;overflow-x:auto}.profile[data-v-ea0483c2]{background:#222;color:rgba(255,255,255,0.9);width:100%;display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;flex-shrink:0}.profile .avatar-link[data-v-ea0483c2]{font-size:0;padding:1rem 0 1rem 1rem}.profile .avatar[data-v-ea0483c2]{height:15rem;width:12rem;flex-shrink:0;margin:0 1rem 0 0;-o-object-fit:cover;object-fit:cover;-o-object-position:50% 0;object-position:50% 0}.bio[data-v-ea0483c2]{-webkit-box-flex:1;flex-grow:1;min-width:20rem;box-sizing:border-box;padding:1rem;margin:0 2rem 0 0}.bio-header[data-v-ea0483c2]{display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;-webkit-box-align:center;align-items:center;margin:0 0 1rem 0}.bio-item[data-v-ea0483c2]{display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;padding:0 0 .25rem 0;margin:0 0 .25rem 0;line-height:1.75;text-align:right;font-size:.9rem;font-weight:600}.bio-item[data-v-ea0483c2]:not(:last-of-type){border-bottom:solid 1px rgba(255,255,255,0.075)}.bio-label[data-v-ea0483c2]{color:rgba(255,255,255,0.5);margin:0 1rem 0 0;flex-shrink:0;font-style:normal;font-weight:400}.bio-label .icon[data-v-ea0483c2]{fill:rgba(255,255,255,0.5);margin:0 .5rem 0 0}.bio-value[data-v-ea0483c2]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.flag[data-v-ea0483c2]{margin:0 .25rem 0 0}.bio-name[data-v-ea0483c2]{display:inline-block;padding:0;margin:0}.bio-gender[data-v-ea0483c2]{display:inline-block;font-weight:bold;text-transform:capitalize;font-weight:normal}.bio-gender .icon[data-v-ea0483c2]{width:1.25rem;height:1.25rem}.bio-gender.female .icon[data-v-ea0483c2]{fill:#f0a}.bio-gender.male .icon[data-v-ea0483c2]{fill:#0af}.birthdate[data-v-ea0483c2]{display:block}.age[data-v-ea0483c2]{font-weight:bold;padding:0 0 0 .5rem;border-left:solid 1px rgba(255,255,255,0.2);margin:0 0 0 .5rem}.country[data-v-ea0483c2]{display:block}.height-imperial[data-v-ea0483c2],.weight-imperial[data-v-ea0483c2]{padding:0 0 0 .5rem;border-left:solid 1px rgba(255,255,255,0.2);margin:0 0 0 .5rem}.enhanced.icon[data-v-ea0483c2]{fill:#ff6c88;padding:0 .5rem}.scraped[data-v-ea0483c2]{color:rgba(255,255,255,0.2);margin:1rem 0 0 0;font-size:.8rem}.extra[data-v-ea0483c2]{-webkit-box-flex:1;flex-grow:1}.description[data-v-ea0483c2]{max-height:12rem;position:relative;display:block;box-sizing:border-box;padding:1rem 0 0 0;margin:0 2rem 0 0;line-height:1.5;text-overflow:ellipsis;font-size:.9rem;overflow:auto;scrollbar-width:none}.description[data-v-ea0483c2]::-webkit-scrollbar{display:none}.social[data-v-ea0483c2]{display:block;margin:1rem 0}.social-link[data-v-ea0483c2]{display:inline-block;padding:0 1rem 0 0}.social-link .icon[data-v-ea0483c2]{color:rgba(255,255,255,0.5);fill:rgba(255,255,255,0.5);width:1.5rem;height:1.5rem}.social-link:hover .icon[data-v-ea0483c2]{fill:#ff6c88}.actor-content[data-v-ea0483c2]{display:-webkit-box;display:flex;-webkit-box-flex:1;flex-grow:1;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.heading[data-v-ea0483c2]{padding:0;margin:0 0 1rem 0}.photos-container[data-v-ea0483c2]{min-width:15rem;box-sizing:border-box;border-right:solid 1px rgba(0,0,0,0.1);padding:1rem 1.5rem 1rem 1rem;margin:0 .5rem 0 0}.photos.compact[data-v-ea0483c2]{display:none}.releases[data-v-ea0483c2]{-webkit-box-flex:1;flex-grow:1;padding:1rem}@media (max-width: 1500px){.description[data-v-ea0483c2]{display:none}}@media (max-width: 1200px){.profile .avatar-link[data-v-ea0483c2],.extra[data-v-ea0483c2]{display:none}.actor-content[data-v-ea0483c2]{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}.photos-container[data-v-ea0483c2]{border:none;border-bottom:solid 1px rgba(0,0,0,0.1);padding:1rem 1rem 1.5rem 1rem;margin:0 0 .5rem 0}.photos[data-v-ea0483c2]{display:none}.photos.compact[data-v-ea0483c2]{display:-webkit-box;display:flex}}@media (max-width: 720px){.profile[data-v-ea0483c2]{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding:0 0 .5rem 0}.bio[data-v-ea0483c2]{width:100%;padding:0 1rem;margin:0}.bio-header[data-v-ea0483c2]{margin:1rem 0}.city[data-v-ea0483c2],.state[data-v-ea0483c2],.ethnicity[data-v-ea0483c2],.residence[data-v-ea0483c2],.weight[data-v-ea0483c2],.tattoos[data-v-ea0483c2],.piercings[data-v-ea0483c2],.scraped[data-v-ea0483c2]{display:none}.social[data-v-ea0483c2]{padding:0 1rem}} +/* $primary: #ff886c; */ +.actor-inner[data-v-ea0483c2] { + height: 100%; + display: -webkit-box; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + flex-direction: column; + padding: 0; + overflow-x: auto; +} +.profile[data-v-ea0483c2] { + background: #222; + color: rgba(255, 255, 255, 0.9); + width: 100%; + display: -webkit-box; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + flex-direction: row; + flex-shrink: 0; +} +.profile .avatar-link[data-v-ea0483c2] { + font-size: 0; + padding: 1rem 0 1rem 1rem; +} +.profile .avatar[data-v-ea0483c2] { + height: 15rem; + width: 12rem; + flex-shrink: 0; + margin: 0 1rem 0 0; + -o-object-fit: cover; + object-fit: cover; + -o-object-position: 50% 0; + object-position: 50% 0; +} +.bio[data-v-ea0483c2] { + -webkit-box-flex: 1; + flex-grow: 1; + min-width: 20rem; + box-sizing: border-box; + padding: 1rem; + margin: 0 2rem 0 0; +} +.bio-header[data-v-ea0483c2] { + display: -webkit-box; + display: flex; + -webkit-box-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + align-items: center; + margin: 0 0 1rem 0; +} +.bio-item[data-v-ea0483c2] { + display: -webkit-box; + display: flex; + -webkit-box-pack: justify; + justify-content: space-between; + padding: 0 0 .25rem 0; + margin: 0 0 .25rem 0; + line-height: 1.75; + text-align: right; + font-size: .9rem; + font-weight: 600; +} +.bio-item[data-v-ea0483c2]:not(:last-of-type) { + border-bottom: solid 1px rgba(255, 255, 255, 0.075); +} +.bio-label[data-v-ea0483c2] { + color: rgba(255, 255, 255, 0.5); + margin: 0 1rem 0 0; + flex-shrink: 0; + font-style: normal; + font-weight: 400; +} +.bio-label .icon[data-v-ea0483c2] { + fill: rgba(255, 255, 255, 0.5); + margin: 0 .5rem 0 0; +} +.bio-value[data-v-ea0483c2] { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.flag[data-v-ea0483c2] { + margin: 0 .25rem 0 0; +} +.bio-name[data-v-ea0483c2] { + display: inline-block; + padding: 0; + margin: 0; +} +.bio-gender[data-v-ea0483c2] { + display: inline-block; + font-weight: bold; + text-transform: capitalize; + font-weight: normal; +} +.bio-gender .icon[data-v-ea0483c2] { + width: 1.25rem; + height: 1.25rem; +} +.bio-gender.female .icon[data-v-ea0483c2] { + fill: #f0a; +} +.bio-gender.male .icon[data-v-ea0483c2] { + fill: #0af; +} +.birthdate[data-v-ea0483c2] { + display: block; +} +.age[data-v-ea0483c2] { + font-weight: bold; + padding: 0 0 0 .5rem; + border-left: solid 1px rgba(255, 255, 255, 0.2); + margin: 0 0 0 .5rem; +} +.country[data-v-ea0483c2] { + display: block; +} +.height-imperial[data-v-ea0483c2], +.weight-imperial[data-v-ea0483c2] { + padding: 0 0 0 .5rem; + border-left: solid 1px rgba(255, 255, 255, 0.2); + margin: 0 0 0 .5rem; +} +.enhanced.icon[data-v-ea0483c2] { + fill: #ff6c88; + padding: 0 .5rem; +} +.scraped[data-v-ea0483c2] { + color: rgba(255, 255, 255, 0.2); + margin: 1rem 0 0 0; + font-size: .8rem; +} +.extra[data-v-ea0483c2] { + -webkit-box-flex: 1; + flex-grow: 1; +} +.description[data-v-ea0483c2] { + max-height: 12rem; + position: relative; + display: block; + box-sizing: border-box; + padding: 1rem 0 0 0; + margin: 0 2rem 0 0; + line-height: 1.5; + text-overflow: ellipsis; + font-size: .9rem; + overflow: auto; + scrollbar-width: none; +} +.description[data-v-ea0483c2]::-webkit-scrollbar { + display: none; +} +.social[data-v-ea0483c2] { + display: block; + margin: 1rem 0; +} +.social-link[data-v-ea0483c2] { + display: inline-block; + padding: 0 1rem 0 0; +} +.social-link .icon[data-v-ea0483c2] { + color: rgba(255, 255, 255, 0.5); + fill: rgba(255, 255, 255, 0.5); + width: 1.5rem; + height: 1.5rem; +} +.social-link:hover .icon[data-v-ea0483c2] { + fill: #ff6c88; +} +.actor-content[data-v-ea0483c2] { + display: -webkit-box; + display: flex; + -webkit-box-flex: 1; + flex-grow: 1; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + flex-direction: row; +} +.heading[data-v-ea0483c2] { + padding: 0; + margin: 0 0 1rem 0; +} +.photos-container[data-v-ea0483c2] { + min-width: 15rem; + box-sizing: border-box; + border-right: solid 1px rgba(0, 0, 0, 0.1); + padding: 1rem 1.5rem 1rem 1rem; + margin: 0 .5rem 0 0; +} +.photos.compact[data-v-ea0483c2] { + display: none; +} +.releases[data-v-ea0483c2] { + -webkit-box-flex: 1; + flex-grow: 1; + padding: 1rem; +} +@media (max-width: 1500px) { +.description[data-v-ea0483c2] { + display: none; +} +} +@media (max-width: 1200px) { +.profile .avatar-link[data-v-ea0483c2], + .extra[data-v-ea0483c2] { + display: none; +} +.actor-content[data-v-ea0483c2] { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + flex-direction: column; +} +.photos-container[data-v-ea0483c2] { + border: none; + border-bottom: solid 1px rgba(0, 0, 0, 0.1); + padding: 1rem 1rem 1.5rem 1rem; + margin: 0 0 .5rem 0; +} +.photos[data-v-ea0483c2] { + display: none; +} +.photos.compact[data-v-ea0483c2] { + display: -webkit-box; + display: flex; +} +} +@media (max-width: 720px) { +.profile[data-v-ea0483c2] { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + flex-direction: column; + padding: 0 0 .5rem 0; +} +.bio[data-v-ea0483c2] { + width: 100%; + padding: 0 1rem; + margin: 0; +} +.bio-header[data-v-ea0483c2] { + margin: 1rem 0; +} +.city[data-v-ea0483c2], + .state[data-v-ea0483c2], + .ethnicity[data-v-ea0483c2], + .residence[data-v-ea0483c2], + .weight[data-v-ea0483c2], + .tattoos[data-v-ea0483c2], + .piercings[data-v-ea0483c2], + .scraped[data-v-ea0483c2] { + display: none; +} +.social[data-v-ea0483c2] { + padding: 0 1rem; +} +} -.actors[data-v-4f34b238]{display:grid;grid-template-columns:repeat(auto-fit, 10rem);grid-gap:0 .5rem;padding:1rem} +.actors[data-v-4f34b238] { + display: grid; + grid-template-columns: repeat(auto-fit, 10rem); + grid-gap: 0 .5rem; + padding: 1rem; +} -.description a{color:#c46;text-decoration:inherit}.description a:hover{color:#ff6c88} +/* $primary: #ff886c; */ +.description a { + color: #cc4466; + text-decoration: inherit; +} +.description a:hover { + color: #ff6c88; +} -.tag[data-v-7f130e7f]{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-webkit-box-flex:1;flex-grow:1;-webkit-box-pack:stretch;justify-content:stretch}.sidebar[data-v-7f130e7f]{background:#222;color:#fff;width:25rem;box-sizing:border-box;padding:1rem}.poster[data-v-7f130e7f]{width:100%;height:15rem;-o-object-fit:cover;object-fit:cover}.title[data-v-7f130e7f]{padding:0;margin:1rem 0;text-transform:capitalize}.title .icon[data-v-7f130e7f]{fill:#fff;width:1.25rem;height:1.25rem}.description[data-v-7f130e7f]{padding:0;margin:0 0 1rem 0;line-height:1.5}.photo[data-v-7f130e7f]{width:100%} +/* $primary: #ff886c; */ +.tag[data-v-7f130e7f] { + display: -webkit-box; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + flex-direction: row; + -webkit-box-flex: 1; + flex-grow: 1; + -webkit-box-pack: stretch; + justify-content: stretch; +} +.sidebar[data-v-7f130e7f] { + background: #222; + color: #fff; + width: 25rem; + box-sizing: border-box; + padding: 1rem; +} +.poster[data-v-7f130e7f] { + width: 100%; + height: 15rem; + -o-object-fit: cover; + object-fit: cover; +} +.title[data-v-7f130e7f] { + padding: 0; + margin: 1rem 0; + text-transform: capitalize; +} +.title .icon[data-v-7f130e7f] { + fill: #fff; + width: 1.25rem; + height: 1.25rem; +} +.description[data-v-7f130e7f] { + padding: 0; + margin: 0 0 1rem 0; + line-height: 1.5; +} +.photo[data-v-7f130e7f] { + width: 100%; +} -.tile[data-v-602c6fd8]{color:#222;background:#fff;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:center;align-items:center;box-sizing:border-box;box-shadow:0 0 3px rgba(0,0,0,0.25);text-align:center;text-decoration:none}.poster[data-v-602c6fd8]{width:100%;height:14rem;-o-object-fit:cover;object-fit:cover}.title[data-v-602c6fd8]{height:100%;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;font-size:1rem;padding:.5rem 1rem;font-weight:bold;text-transform:capitalize} +/* $primary: #ff886c; */ +.tile[data-v-602c6fd8] { + color: #222; + background: #fff; + display: -webkit-box; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + flex-direction: column; + -webkit-box-align: center; + align-items: center; + box-sizing: border-box; + box-shadow: 0 0 3px rgba(0, 0, 0, 0.25); + text-align: center; + text-decoration: none; +} +.poster[data-v-602c6fd8] { + width: 100%; + height: 14rem; + -o-object-fit: cover; + object-fit: cover; +} +.title[data-v-602c6fd8] { + height: 100%; + display: -webkit-box; + display: flex; + -webkit-box-align: center; + align-items: center; + -webkit-box-pack: center; + justify-content: center; + font-size: 1rem; + padding: .5rem 1rem; + font-weight: bold; + text-transform: capitalize; +} -.tags[data-v-66fa6284]{padding:1rem}.tiles[data-v-66fa6284]{display:grid;grid-template-columns:repeat(auto-fit, minmax(20rem, 1fr));grid-gap:.5rem} +/* $primary: #ff886c; */ +.tags[data-v-66fa6284] { + padding: 1rem; +} +.tiles[data-v-66fa6284] { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); + grid-gap: .5rem; +} -.errorpage[data-v-29109daf]{background:#fff;color:#ff6c88;height:100%;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;font-size:2rem}.error[data-v-29109daf]{margin:0}.home[data-v-29109daf]{color:rgba(0,0,0,0.5);margin:3rem 0} +/* $primary: #ff886c; */ +.errorpage[data-v-29109daf] { + background: #fff; + color: #ff6c88; + height: 100%; + display: -webkit-box; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + flex-direction: column; + -webkit-box-align: center; + align-items: center; + -webkit-box-pack: center; + justify-content: center; + font-size: 2rem; +} +.error[data-v-29109daf] { + margin: 0; +} +.home[data-v-29109daf] { + color: rgba(0, 0, 0, 0.5); + margin: 3rem 0; +} -.noselect{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-tap-highlight-color:transparent}.nolist{list-style:none;padding:0;margin:0}.nolist li{display:inline-block;padding:0;margin:0}.tooltip{display:block !important;z-index:10000}.tooltip .tooltip-inner{max-width:20rem;background:#222;color:white;border-radius:16px;padding:5px 10px 4px}.tooltip .tooltip-arrow{width:0;height:0;border-style:solid;position:absolute;margin:5px;border-color:#222;z-index:1}.tooltip[x-placement^="top"]{margin-bottom:5px}.tooltip[x-placement^="top"] .tooltip-arrow{border-width:5px 5px 0 5px;border-left-color:transparent !important;border-right-color:transparent !important;border-bottom-color:transparent !important;bottom:-5px;left:calc(50% - 5px);margin-top:0;margin-bottom:0}.tooltip[x-placement^="bottom"]{margin-top:5px}.tooltip[x-placement^="bottom"] .tooltip-arrow{border-width:0 5px 5px 5px;border-left-color:transparent !important;border-right-color:transparent !important;border-top-color:transparent !important;top:-5px;left:calc(50% - 5px);margin-top:0;margin-bottom:0}.tooltip[x-placement^="right"]{margin-left:5px}.tooltip[x-placement^="right"] .tooltip-arrow{border-width:5px 5px 5px 0;border-left-color:transparent !important;border-top-color:transparent !important;border-bottom-color:transparent !important;left:-5px;top:calc(50% - 5px);margin-left:0;margin-right:0}.tooltip[x-placement^="left"]{margin-right:5px}.tooltip[x-placement^="left"] .tooltip-arrow{border-width:5px 0 5px 5px;border-top-color:transparent !important;border-right-color:transparent !important;border-bottom-color:transparent !important;right:-5px;top:calc(50% - 5px);margin-left:0;margin-right:0}.tooltip.popover .popover-inner{background:#f9f9f9;color:black;padding:24px;border-radius:5px;box-shadow:0 5px 30px rgba(0,0,0,0.1)}.tooltip.popover .popover-arrow{border-color:#f9f9f9}.tooltip[aria-hidden='true']{visibility:hidden;opacity:0}.tooltip[aria-hidden='false']{visibility:visible;opacity:1}html,body{height:100%}body{color:#222;margin:0;font-family:Verdana, sans-serif}.nolist{list-style:none;padding:0;margin:0}.nolist li{display:inline-block}.heading{color:rgba(0,0,0,0.5);padding:0;margin:0 0 1rem 0;font-size:1.5rem}.icon.icon-href{fill:rgba(0,0,0,0.5)}.icon.icon-href :hover{fill:#ff6c88} +/* $primary: #ff886c; */ +.noselect { + user-select: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -webkit-tap-highlight-color: transparent; } -.header[data-v-10b7ec04]{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;background:#fff;color:#ff6c88;border-bottom:solid 1px rgba(0,0,0,0.1);font-size:0}.logo-link[data-v-10b7ec04]{color:inherit;display:inline-block;text-decoration:none}.logo[data-v-10b7ec04]{display:inline-block;padding:.5rem 1rem;margin:0 1rem 0 0;font-size:2rem}.nav[data-v-10b7ec04]{display:inline-block}.nav-link[data-v-10b7ec04]{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;padding:1rem;border-bottom:solid 5px transparent;color:rgba(0,0,0,0.5);text-decoration:none;font-size:.9rem;font-weight:bold}.nav-link .icon[data-v-10b7ec04]{fill:rgba(0,0,0,0.5);margin:0 .5rem 0 0}.nav-link.active[data-v-10b7ec04]{color:#ff6c88;border-bottom:solid 5px #ff6c88}.nav-link.active .icon[data-v-10b7ec04]{fill:#ff6c88}.nav-link[data-v-10b7ec04]:hover:not(.active){color:#ff6c88}.nav-link:hover:not(.active) .icon[data-v-10b7ec04]{fill:#ff6c88}@media (max-width: 540px){.nav-label[data-v-10b7ec04]{display:none}.nav .nolist[data-v-10b7ec04]{display:-webkit-box;display:flex}.nav[data-v-10b7ec04],.nav-item[data-v-10b7ec04]{-webkit-box-flex:1;flex-grow:1}} +.nolist { + list-style: none; + padding: 0; + margin: 0; } + .nolist li { + display: inline-block; + padding: 0; + margin: 0; } -.container{background:#fafafa;height:100%;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;overflow:hidden}.content{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-flex:1;flex-grow:1;overflow-y:auto}.content-inner{-webkit-box-flex:1;flex-grow:1;padding:1rem;overflow-y:auto} +.tooltip { + display: block !important; + z-index: 10000; } + .tooltip .tooltip-inner { + max-width: 20rem; + background: #222; + color: white; + border-radius: 16px; + padding: 5px 10px 4px; } + .tooltip .tooltip-arrow { + width: 0; + height: 0; + border-style: solid; + position: absolute; + margin: 5px; + border-color: #222; + z-index: 1; } + .tooltip[x-placement^="top"] { + margin-bottom: 5px; } + .tooltip[x-placement^="top"] .tooltip-arrow { + border-width: 5px 5px 0 5px; + border-left-color: transparent !important; + border-right-color: transparent !important; + border-bottom-color: transparent !important; + bottom: -5px; + left: calc(50% - 5px); + margin-top: 0; + margin-bottom: 0; } + .tooltip[x-placement^="bottom"] { + margin-top: 5px; } + .tooltip[x-placement^="bottom"] .tooltip-arrow { + border-width: 0 5px 5px 5px; + border-left-color: transparent !important; + border-right-color: transparent !important; + border-top-color: transparent !important; + top: -5px; + left: calc(50% - 5px); + margin-top: 0; + margin-bottom: 0; } + .tooltip[x-placement^="right"] { + margin-left: 5px; } + .tooltip[x-placement^="right"] .tooltip-arrow { + border-width: 5px 5px 5px 0; + border-left-color: transparent !important; + border-top-color: transparent !important; + border-bottom-color: transparent !important; + left: -5px; + top: calc(50% - 5px); + margin-left: 0; + margin-right: 0; } + .tooltip[x-placement^="left"] { + margin-right: 5px; } + .tooltip[x-placement^="left"] .tooltip-arrow { + border-width: 5px 0 5px 5px; + border-top-color: transparent !important; + border-right-color: transparent !important; + border-bottom-color: transparent !important; + right: -5px; + top: calc(50% - 5px); + margin-left: 0; + margin-right: 0; } + .tooltip.popover .popover-inner { + background: #f9f9f9; + color: black; + padding: 24px; + border-radius: 5px; + box-shadow: 0 5px 30px rgba(0, 0, 0, 0.1); } + .tooltip.popover .popover-arrow { + border-color: #f9f9f9; } + .tooltip[aria-hidden='true'] { + visibility: hidden; + opacity: 0; + /* transition: opacity .15s, visibility .15s; */ } + .tooltip[aria-hidden='false'] { + visibility: visible; + opacity: 1; + /* transition: opacity .15s; */ } -.icon{fill:#222;display:inline-block;flex-shrink:0;width:1rem;height:1rem}.icon svg{width:100%;height:100%}.icon.active{fill:rgba(0,0,0,0.5)}.icon.active:hover{fill:#222;cursor:pointer} +html, +body { + height: 100%; } + +body { + color: #222; + margin: 0; + font-family: Verdana, sans-serif; } + +.nolist { + list-style: none; + padding: 0; + margin: 0; } + .nolist li { + display: inline-block; } + +.heading { + color: rgba(0, 0, 0, 0.5); + padding: 0; + margin: 0 0 1rem 0; + font-size: 1.5rem; } + +.icon.icon-href { + fill: rgba(0, 0, 0, 0.5); } + .icon.icon-href :hover { + fill: #ff6c88; } + +/* $primary: #ff886c; */ +.header[data-v-10b7ec04] { + display: -webkit-box; + display: flex; + -webkit-box-align: center; + align-items: center; + background: #fff; + color: #ff6c88; + border-bottom: solid 1px rgba(0, 0, 0, 0.1); + font-size: 0; +} +.logo-link[data-v-10b7ec04] { + color: inherit; + display: inline-block; + text-decoration: none; +} +.logo[data-v-10b7ec04] { + display: inline-block; + padding: .5rem 1rem; + margin: 0 1rem 0 0; + font-size: 2rem; +} +.nav[data-v-10b7ec04] { + display: inline-block; +} +.nav-link[data-v-10b7ec04] { + display: -webkit-box; + display: flex; + -webkit-box-align: center; + align-items: center; + -webkit-box-pack: center; + justify-content: center; + padding: 1rem; + border-bottom: solid 5px transparent; + color: rgba(0, 0, 0, 0.5); + text-decoration: none; + font-size: .9rem; + font-weight: bold; +} +.nav-link .icon[data-v-10b7ec04] { + fill: rgba(0, 0, 0, 0.5); + margin: 0 .5rem 0 0; +} +.nav-link.active[data-v-10b7ec04] { + color: #ff6c88; + border-bottom: solid 5px #ff6c88; +} +.nav-link.active .icon[data-v-10b7ec04] { + fill: #ff6c88; +} +.nav-link[data-v-10b7ec04]:hover:not(.active) { + color: #ff6c88; +} +.nav-link:hover:not(.active) .icon[data-v-10b7ec04] { + fill: #ff6c88; +} +@media (max-width: 540px) { +.nav-label[data-v-10b7ec04] { + display: none; +} +.nav .nolist[data-v-10b7ec04] { + display: -webkit-box; + display: flex; +} +.nav[data-v-10b7ec04], + .nav-item[data-v-10b7ec04] { + -webkit-box-flex: 1; + flex-grow: 1; +} +} + +/* $primary: #ff886c; */ +.container { + background: #fafafa; + height: 100%; + display: -webkit-box; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + flex-direction: column; + overflow: hidden; +} +.content { + display: -webkit-box; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + flex-direction: column; + -webkit-box-flex: 1; + flex-grow: 1; + overflow-y: auto; +} +.content-inner { + -webkit-box-flex: 1; + flex-grow: 1; + padding: 1rem; + overflow-y: auto; +} + +/* $primary: #ff886c; */ +.icon { + fill: #222; + display: inline-block; + flex-shrink: 0; + width: 1rem; + height: 1rem; +} +.icon svg { + width: 100%; + height: 100%; +} +.icon.active { + fill: rgba(0, 0, 0, 0.5); +} +.icon.active:hover { + fill: #222; + cursor: pointer; +} diff --git a/src/releases.js b/src/releases.js index 0ef75ce6..1c96f338 100644 --- a/src/releases.js +++ b/src/releases.js @@ -49,223 +49,102 @@ function commonQuery(queryBuilder, { .limit(limit); } -async function curateMovie(release, deep = true) { - const [scenes, actors, tags, media] = await Promise.all([ - knex('releases') - .where('releases.parent_id', release.id) - .modify(commonQuery, {}), - knex('actors_associated') - .select( - 'actors.id', 'actors.name', 'actors.gender', 'actors.slug', 'actors.birthdate', - 'birth_countries.alpha2 as birth_country_alpha2', 'birth_countries.name as birth_country_name', 'birth_countries.alias as birth_country_alias', - 'media.thumbnail as avatar', - ) - .where({ release_id: release.id }) - .leftJoin('actors', 'actors.id', 'actors_associated.actor_id') - .leftJoin('countries as birth_countries', 'actors.birth_country_alpha2', 'birth_countries.alpha2') - .leftJoin('media', (builder) => { - builder - .on('media.target_id', 'actors.id') - .andOnVal('media.domain', 'actors') - .andOnVal('media.index', '0'); - }) - .orderBy('actors.gender'), - knex('tags_associated') - .select('tags.name', 'tags.slug') - .where({ - domain: 'releases', - target_id: release.id, - }) - .leftJoin('tags', 'tags.id', 'tags_associated.tag_id') - .orderBy('tags.priority', 'desc'), - knex('media') - .where({ - target_id: release.id, - domain: 'releases', - }) - .orderBy(['role', 'index']), - ]); - - const curatedRelease = { - id: release.id, - type: release.type, - title: release.title, - date: release.date, - dateAdded: release.created_at, - description: release.description, - url: release.url, - shootId: release.shoot_id, - entryId: release.entry_id, - actors: actors.map(actor => ({ - id: actor.id, - slug: actor.slug, - name: actor.name, - gender: actor.gender, - birthdate: actor.birthdate, - age: moment().diff(actor.birthdate, 'years'), - ageThen: moment(release.date).diff(actor.birthdate, 'years'), - avatar: actor.avatar, - origin: actor.birth_country_alpha2 - ? { - country: { - name: actor.birth_country_alias, - alpha2: actor.birth_country_alpha2, - }, - } - : null, - })), - director: release.director, - tags, - duration: release.duration, - photos: media.filter(item => item.role === 'photo'), - poster: media.filter(item => item.role === 'poster')[0], - covers: media.filter(item => item.role === 'cover'), - trailer: media.filter(item => item.role === 'trailer')[0], - site: { - id: release.site_id, - name: release.site_name, - independent: release.site_parameters - ? (JSON.parse(release.site_parameters).independent || false) - : false, - slug: release.site_slug, - url: release.site_url, - }, - studio: release.studio_id - ? { - id: release.studio_id, - name: release.studio_name, - slug: release.studio_slug, - url: release.studio_url, - } - : null, - network: { - id: release.network_id, - name: release.network_name, - description: release.network_description, - slug: release.network_slug, - url: release.network_url, - }, - }; - - if (scenes && scenes.length > 0 && deep) { - curatedRelease.scenes = await Promise.map(scenes, scene => curateRelease(scene, false)); - } - - return curatedRelease; -} - -async function curateScene(release, deep = true) { - const [movie, actors, tags, media] = await Promise.all([ - knex('releases') - .where('releases.id', release.parent_id) - .modify(commonQuery, {}) - .first(), - knex('actors_associated') - .select( - 'actors.id', 'actors.name', 'actors.gender', 'actors.slug', 'actors.birthdate', - 'birth_countries.alpha2 as birth_country_alpha2', 'birth_countries.name as birth_country_name', 'birth_countries.alias as birth_country_alias', - 'media.thumbnail as avatar', - ) - .where({ release_id: release.id }) - .leftJoin('actors', 'actors.id', 'actors_associated.actor_id') - .leftJoin('countries as birth_countries', 'actors.birth_country_alpha2', 'birth_countries.alpha2') - .leftJoin('media', (builder) => { - builder - .on('media.target_id', 'actors.id') - .andOnVal('media.domain', 'actors') - .andOnVal('media.index', '0'); - }) - .orderBy('actors.gender'), - knex('tags_associated') - .select('tags.name', 'tags.slug') - .where({ - domain: 'releases', - target_id: release.id, - }) - .leftJoin('tags', 'tags.id', 'tags_associated.tag_id') - .orderBy('tags.priority', 'desc'), - knex('media') - .where({ - target_id: release.id, - domain: 'releases', - }) - .orderBy(['role', 'index']), - ]); - - const curatedRelease = { - id: release.id, - type: release.type, - title: release.title, - date: release.date, - dateAdded: release.created_at, - description: release.description, - url: release.url, - shootId: release.shoot_id, - entryId: release.entry_id, - actors: actors.map(actor => ({ - id: actor.id, - slug: actor.slug, - name: actor.name, - gender: actor.gender, - birthdate: actor.birthdate, - age: moment().diff(actor.birthdate, 'years'), - ageThen: moment(release.date).diff(actor.birthdate, 'years'), - avatar: actor.avatar, - origin: actor.birth_country_alpha2 - ? { - country: { - name: actor.birth_country_alias, - alpha2: actor.birth_country_alpha2, - }, - } - : null, - })), - director: release.director, - tags, - duration: release.duration, - photos: media.filter(item => item.role === 'photo'), - poster: media.filter(item => item.role === 'poster')[0], - covers: media.filter(item => item.role === 'cover'), - trailer: media.filter(item => item.role === 'trailer')[0], - site: { - id: release.site_id, - name: release.site_name, - independent: release.site_parameters - ? (JSON.parse(release.site_parameters).independent || false) - : false, - slug: release.site_slug, - url: release.site_url, - }, - studio: release.studio_id - ? { - id: release.studio_id, - name: release.studio_name, - slug: release.studio_slug, - url: release.studio_url, - } - : null, - network: { - id: release.network_id, - name: release.network_name, - description: release.network_description, - slug: release.network_slug, - url: release.network_url, - }, - }; - - if (movie && deep) { - curatedRelease.movie = await curateMovie(movie, false); - } - - return curatedRelease; -} - async function curateRelease(release) { - if (release.type === 'movie') { - return curateMovie(release); - } + const [actors, tags, media] = await Promise.all([ + knex('actors_associated') + .select( + 'actors.id', 'actors.name', 'actors.gender', 'actors.slug', 'actors.birthdate', + 'birth_countries.alpha2 as birth_country_alpha2', 'birth_countries.name as birth_country_name', 'birth_countries.alias as birth_country_alias', + 'media.thumbnail as avatar', + ) + .where({ release_id: release.id }) + .leftJoin('actors', 'actors.id', 'actors_associated.actor_id') + .leftJoin('countries as birth_countries', 'actors.birth_country_alpha2', 'birth_countries.alpha2') + .leftJoin('media', (builder) => { + builder + .on('media.target_id', 'actors.id') + .andOnVal('media.domain', 'actors') + .andOnVal('media.index', '0'); + }) + .orderBy('actors.gender'), + knex('tags_associated') + .select('tags.name', 'tags.slug') + .where({ + domain: 'releases', + target_id: release.id, + }) + .leftJoin('tags', 'tags.id', 'tags_associated.tag_id') + .orderBy('tags.priority', 'desc'), + knex('media') + .where({ + target_id: release.id, + domain: 'releases', + }) + .orderBy(['role', 'index']), + ]); - return curateScene(release); + const curatedRelease = { + id: release.id, + type: release.type, + title: release.title, + date: release.date, + dateAdded: release.created_at, + description: release.description, + url: release.url, + shootId: release.shoot_id, + entryId: release.entry_id, + actors: actors.map(actor => ({ + id: actor.id, + slug: actor.slug, + name: actor.name, + gender: actor.gender, + birthdate: actor.birthdate, + age: moment().diff(actor.birthdate, 'years'), + ageThen: moment(release.date).diff(actor.birthdate, 'years'), + avatar: actor.avatar, + origin: actor.birth_country_alpha2 + ? { + country: { + name: actor.birth_country_alias, + alpha2: actor.birth_country_alpha2, + }, + } + : null, + })), + director: release.director, + tags, + duration: release.duration, + photos: media.filter(item => item.role === 'photo'), + poster: media.filter(item => item.role === 'poster')[0], + covers: media.filter(item => item.role === 'cover'), + trailer: media.filter(item => item.role === 'trailer')[0], + site: { + id: release.site_id, + name: release.site_name, + independent: release.site_parameters + ? (JSON.parse(release.site_parameters).independent || false) + : false, + slug: release.site_slug, + url: release.site_url, + }, + studio: release.studio_id + ? { + id: release.studio_id, + name: release.studio_name, + slug: release.studio_slug, + url: release.studio_url, + } + : null, + network: { + id: release.network_id, + name: release.network_name, + description: release.network_description, + slug: release.network_slug, + url: release.network_url, + }, + }; + + return curatedRelease; } function curateReleases(releases) { @@ -274,7 +153,7 @@ function curateReleases(releases) { async function attachChannelSite(release) { if (!release.site.isFallback) { - return release.site; + return release; } if (!release.channel) {