Compare commits

...
4 Commits
5 changed files with 18 additions and 7 deletions
+2 -2
View File
@@ -1,11 +1,11 @@
{
"name": "traxxx-web",
"version": "0.51.11",
"version": "0.51.13",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"version": "0.51.11",
"version": "0.51.13",
"dependencies": {
"@brillout/json-serializer": "^0.5.8",
"@dicebear/collection": "^7.0.5",
+1 -1
View File
@@ -92,7 +92,7 @@
"overrides": {
"vite": "$vite"
},
"version": "0.51.11",
"version": "0.51.13",
"imports": {
"#/*": "./*.js"
}
+1 -1
View File
@@ -155,7 +155,7 @@
<span
v-if="tag.actors.length > 0"
v-tooltip="{
content: `For ${tag.actors.slice(0, -1).map((tagActor) => tagActor.name).join(', ')}${tag.actors.length > 0 ? ` and ${tag.actors.at(-1).name}` : ''}`,
content: `${tag.name} for ${new Intl.ListFormat('en', { style: 'long', type: 'conjunction' }).format(tag.actors.map((actor) => actor.name))}`,
triggers: ['hover', 'click'],
}"
class="tag-actors"
+10 -2
View File
@@ -70,7 +70,13 @@ export function curateActor(actor, context = {}) {
id: actor.id,
slug: actor.slug,
name: actor.name,
aliases: actor.aliases || [], // used for profile pages
aliases: actor.aliases?.map((alias) => ({
id: alias.id,
slug: alias.slug,
name: alias.name,
entityId: alias.entity_id,
entity: alias.entity,
})) || [], // used for profile pages
alias: actor.alias
? {
id: actor.alias.id,
@@ -246,11 +252,13 @@ export async function fetchActorsById(actorIds, options = {}, reqUser) {
knex.raw('COALESCE(residence_countries.alias, residence_countries.name) as residence_country_name'),
knex.raw('row_to_json(entities) as entity'),
knex.raw('row_to_json(sfw_media) as sfw_avatar'),
knex.raw('json_agg(aliases) filter (where aliases.id is not null) as aliases'),
// knex.raw('json_agg(aliases) filter (where aliases.id is not null) as aliases'),
knex.raw('json_agg(row_to_json(aliases)::jsonb || jsonb_build_object(\'entity\', row_to_json(alias_entities))) filter (where aliases.id is not null) as aliases'),
knex.raw('row_to_json(media_biometrics) as biometrics'),
)
.leftJoin('actors_meta', 'actors_meta.actor_id', 'actors.id')
.leftJoin('actors as aliases', 'aliases.alias_for', 'actors.id')
.leftJoin('entities as alias_entities', 'alias_entities.id', 'aliases.entity_id')
.leftJoin('countries as birth_countries', 'birth_countries.alpha2', 'actors.birth_country_alpha2')
.leftJoin('countries as residence_countries', 'residence_countries.alpha2', 'actors.residence_country_alpha2')
.leftJoin('media as avatars', 'avatars.id', 'actors.avatar_media_id')
+4 -1
View File
@@ -108,8 +108,11 @@ export const actorsSchema = `
hasTattoos: Boolean
tattoos: String
piercings: String
entity: Entity
aliases: [Actor!]!
scenes: Int
likes: Int
stashes: [Stash!]!
}
`;
@@ -154,7 +157,7 @@ export async function fetchActorsGraphql(query, req) {
page: query.page,
order: getOrder(query),
aggregateCountries: false,
});
}, req.user);
return {
nodes: actors.map((actor) => curateGraphqlActor(actor)),