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,