diff --git a/components/actors/tile.vue b/components/actors/tile.vue index 0477212..8d31fb5 100644 --- a/components/actors/tile.vue +++ b/components/actors/tile.vue @@ -82,6 +82,13 @@ :src="`/logos/${actor.entity.slug}/favicon_dark.png`" class="favicon" > + + @@ -258,4 +265,11 @@ const favorited = ref(props.actor.stashes.some((actorStash) => actorStash.id === height: .75rem; margin-left: .25rem; } + +.alias { + height: 100%; + fill: var(--glass-weak-20); + padding: 0 .25rem; + cursor: help; +} diff --git a/src/actors.js b/src/actors.js index a74f848..256c6fe 100644 --- a/src/actors.js +++ b/src/actors.js @@ -62,11 +62,22 @@ const keyMap = { const socialsOrder = ['onlyfans', 'fansly', 'twitter', 'instagram', 'loyalfans', 'manyvids', 'pornhub', 'linktree', null]; export function curateActor(actor, context = {}) { + if (!actor) { + return null; + } + return { id: actor.id, slug: actor.slug, name: actor.name, - aliases: actor.aliases || [], + aliases: actor.aliases || [], // used for profile pages + alias: actor.alias + ? { + id: actor.alias.id, + slug: actor.alias.slug, + name: actor.alias.name, + } + : null, gender: actor.gender, age: actor.age, ethnicity: actor.ethnicity, diff --git a/src/scenes.js b/src/scenes.js index c48bc6d..f14d3a5 100644 --- a/src/scenes.js +++ b/src/scenes.js @@ -209,16 +209,19 @@ export async function fetchScenesById(sceneIds, { reqUser, ...context } = {}) { 'actors.*', knex.raw('row_to_json(avatars) as avatar'), knex.raw('row_to_json(sfw_media) as sfw_avatar'), + knex.raw('row_to_json(aliases) as alias'), + knex.raw('json_build_object(\'id\', aliases.id, \'name\', aliases.name, \'slug\', aliases.slug) as alias'), 'countries.name as birth_country_name', 'countries.alias as birth_country_alias', 'releases_actors.release_id', ) .leftJoin('actors', 'actors.id', 'releases_actors.actor_id') + .leftJoin('actors as aliases', 'aliases.id', 'releases_actors.alias_id') .leftJoin('media as avatars', 'avatars.id', 'actors.avatar_media_id') .leftJoin('media as sfw_media', 'sfw_media.id', 'avatars.sfw_media_id') .leftJoin('countries', 'countries.alpha2', 'actors.birth_country_alpha2') .whereIn('release_id', sceneIds) - .groupBy('actors.id', 'releases_actors.release_id', 'avatars.id', 'countries.name', 'countries.alias', 'sfw_media.id'), + .groupBy('actors.id', 'aliases.id', 'releases_actors.release_id', 'avatars.id', 'countries.name', 'countries.alias', 'sfw_media.id'), directors: knex('releases_directors') .whereIn('release_id', sceneIds) .leftJoin('actors as directors', 'directors.id', 'releases_directors.director_id'),