diff --git a/assets/components/actors/actor.vue b/assets/components/actors/actor.vue index 0a405a54..71a26b45 100644 --- a/assets/components/actors/actor.vue +++ b/assets/components/actors/actor.vue @@ -23,34 +23,18 @@ {{ actor.aliases.join(', ') }} -
- - - - - -
+ :actor="actor" + class="header-social" + />
-
+
+ +
  • {{ actor.origin.city }}{{ actor.origin.city ? `, ${actor.origin.state}` : actor.origin.state }} {{ actor.residence.city }}{{ actor.residence.city ? `, ${actor.residence.state}` : actor.residence.state }} Ethnicity {{ actor.ethnicity }} @@ -168,7 +158,7 @@
  • Weight @@ -180,7 +170,7 @@
  • Tattoos @@ -194,7 +184,7 @@
  • Piercings @@ -206,15 +196,32 @@ Yes
  • -
  • Updated on {{ formatDate(actor.scrapedAt, 'YYYY-MM-DD HH:mm') }}
  • +
  • Updated on {{ formatDate(actor.scrapedAt, 'YYYY-MM-DD HH:mm') }}
+ +

{{ actor.description }}

-
+ + + +
+ + + +
@@ -240,6 +259,7 @@ import Photos from './photos.vue'; import FilterBar from '../header/filter-bar.vue'; import Releases from '../releases/releases.vue'; +import Social from './social.vue'; async function fetchActor() { this.actor = await this.$store.dispatch('fetchActors', { actorSlug: this.$route.params.actorSlug }); @@ -262,6 +282,7 @@ export default { FilterBar, Photos, Releases, + Social, }, data() { return { @@ -350,7 +371,6 @@ export default { height: 100%; display: flex; flex-direction: column; - flex-shrink: 0; flex-wrap: wrap; box-sizing: border-box; overflow: hidden; @@ -397,6 +417,7 @@ export default { } .bio-value { + margin: 0 0 0 2rem; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; @@ -469,6 +490,10 @@ export default { padding: 0 .5rem; } +.ethnicity { + text-transform: capitalize; +} + .scraped { color: $highlight-weak; font-size: .8rem; @@ -493,26 +518,6 @@ export default { } } -.social { - display: block; -} - -.social-link { - display: inline-block; - padding: 0 0 0 1rem; - - .icon { - color: $highlight; - fill: $highlight; - width: 1.5rem; - height: 1.5rem; - } - - &:hover .icon { - fill: $primary; - } -} - .actor-content { display: flex; flex-grow: 1; @@ -541,6 +546,14 @@ export default { padding: 1rem; } +.profile-social { + display: none; +} + +.collapse-header { + display: none; +} + @media(max-width: $breakpoint4) { .description { display: none; @@ -576,28 +589,45 @@ export default { height: auto; flex-direction: column; padding: 0 0 .5rem 0; + + &:not(.expanded) .hideable { + display: none; + } } .bio { width: 100%; + height: auto; padding: 0 1rem; margin: 0; } .bio-item { - width: auto; + width: 100%; margin: 0; } - .city, - .state, - .ethnicity, - .residence, - .weight, - .tattoos, - .piercings, - .scraped { - display: none; + .expand-header { + display: block; + } + + .expanded .description { + display: block; + max-width: 100%; + max-height: none; + margin: 0; + padding: 0 1rem; + overflow: bisible; + } + + .expanded { + .collapse-header { + display: block; + } + + .bio-value { + white-space: normal; + } } } @@ -606,6 +636,11 @@ export default { display: none; } + .expanded .profile-social { + display: block; + margin: 1rem 0 0 0; + } + .header-name { flex-grow: 1; } diff --git a/assets/components/actors/actors.vue b/assets/components/actors/actors.vue index 78418810..3f7443d8 100644 --- a/assets/components/actors/actors.vue +++ b/assets/components/actors/actors.vue @@ -12,6 +12,7 @@ import Actor from '../tile/actor.vue'; async function mounted() { + this.pageTitle = 'Actors'; this.actors = await this.$store.dispatch('fetchActors', { limit: 1000 }); } @@ -22,6 +23,7 @@ export default { data() { return { actors: [], + pageTitle: null, }; }, mounted, diff --git a/assets/components/actors/social.vue b/assets/components/actors/social.vue new file mode 100644 index 00000000..49994f5e --- /dev/null +++ b/assets/components/actors/social.vue @@ -0,0 +1,61 @@ + + + + + diff --git a/assets/components/networks/network.vue b/assets/components/networks/network.vue index b338dd37..bca44308 100644 --- a/assets/components/networks/network.vue +++ b/assets/components/networks/network.vue @@ -81,8 +81,8 @@ `https://www.modelhub.com/${username}`, }, - { - label: 'imdb', - pattern: 'http(s)\\://(*)imdb.com/name/:userId(/)(?*)', - format: userId => `https://www.imdb.com/name/${userId}/`, - }, ]; const match = platforms.reduce((acc, platform) => { @@ -398,7 +393,7 @@ async function scrapeActors(actorNames) { }, newActorEntry.name); } } catch (error) { - logger.warn(actorName, error); + logger.warn(`${actorName}: ${error}`); } }, { concurrency: 3, diff --git a/src/scrapers/xempire.js b/src/scrapers/xempire.js index bed60ffd..f5c979b2 100644 --- a/src/scrapers/xempire.js +++ b/src/scrapers/xempire.js @@ -98,10 +98,16 @@ async function scrapeScene(html, url, site) { duration, poster, photos, - trailer: { - src: trailer, - quality: parseInt(videoData.sizeOnLoad, 10), - }, + trailer: [ + { + src: trailer.replace('hd', '1080p'), + quality: 1080, + }, + { + src: trailer, + quality: parseInt(videoData.sizeOnLoad, 10), + }, + ], tags, rating: { stars,