Sorting aggregates by slug or lowercased name to avoid capitalization issues. Fixed slug getting interpreted as ID by cache lookup.
This commit is contained in:
parent
768ab41ee7
commit
22c4bb0405
|
@ -22,7 +22,7 @@ export async function onBeforeRender(pageContext) {
|
|||
|
||||
return {
|
||||
pageContext: {
|
||||
title: `Search '${pageContext.urlParsed.search.q}'`,
|
||||
title: `Search '${pageContext.urlParsed.search.q || ''}'`,
|
||||
pageProps: {
|
||||
scenes,
|
||||
aggActors,
|
||||
|
|
|
@ -6,9 +6,11 @@ export async function getIdsBySlug(slugs, domain) {
|
|||
return null;
|
||||
}
|
||||
|
||||
/* this, naturally, fails if the slug is 69 etc.
|
||||
if (Number(slug)) {
|
||||
return Number(slug); // already an ID or missing
|
||||
}
|
||||
*/
|
||||
|
||||
const id = await redis.hGet(`traxxx:${domain}:id_by_slug`, slug);
|
||||
|
||||
|
|
|
@ -532,9 +532,9 @@ export async function fetchMovies(filters, rawOptions, reqUser) {
|
|||
const channelCounts = options.aggregateChannels && countAggregations(result.aggregations?.channelIds);
|
||||
|
||||
const [aggActors, aggTags, aggChannels] = await Promise.all([
|
||||
options.aggregateActors ? fetchActorsById(result.aggregations.actorIds.map((bucket) => bucket.key), { order: ['name', 'asc'], append: actorCounts }) : [],
|
||||
options.aggregateTags ? fetchTagsById(result.aggregations.tagIds.map((bucket) => bucket.key), { order: ['name', 'asc'], append: tagCounts }) : [],
|
||||
options.aggregateChannels ? fetchEntitiesById(result.aggregations.channelIds.map((bucket) => bucket.key), { order: ['name', 'asc'], append: channelCounts }) : [],
|
||||
options.aggregateActors ? fetchActorsById(result.aggregations.actorIds.map((bucket) => bucket.key), { order: ['slug', 'asc'], append: actorCounts }) : [],
|
||||
options.aggregateTags ? fetchTagsById(result.aggregations.tagIds.map((bucket) => bucket.key), { order: [knex.raw('lower(name)'), 'asc'], append: tagCounts }) : [],
|
||||
options.aggregateChannels ? fetchEntitiesById(result.aggregations.channelIds.map((bucket) => bucket.key), { order: ['slug', 'asc'], append: channelCounts }) : [],
|
||||
]);
|
||||
|
||||
const movieIds = result.movies.map((movie) => Number(movie.id));
|
||||
|
|
|
@ -574,9 +574,9 @@ export async function fetchScenes(filters, rawOptions, reqUser) {
|
|||
console.time('fetch aggregations');
|
||||
|
||||
const [aggActors, aggTags, aggChannels] = await Promise.all([
|
||||
options.aggregateActors ? fetchActorsById(result.aggregations.actorIds.map((bucket) => bucket.key), { order: ['name', 'asc'], append: actorCounts }) : [],
|
||||
options.aggregateTags ? fetchTagsById(result.aggregations.tagIds.map((bucket) => bucket.key), { order: ['name', 'asc'], append: tagCounts }) : [],
|
||||
options.aggregateChannels ? fetchEntitiesById(result.aggregations.channelIds.map((bucket) => bucket.key), { order: ['name', 'asc'], append: channelCounts }) : [],
|
||||
options.aggregateActors ? fetchActorsById(result.aggregations.actorIds.map((bucket) => bucket.key), { order: ['slug', 'asc'], append: actorCounts }) : [],
|
||||
options.aggregateTags ? fetchTagsById(result.aggregations.tagIds.map((bucket) => bucket.key), { order: [knex.raw('lower(name)'), 'asc'], append: tagCounts }) : [],
|
||||
options.aggregateChannels ? fetchEntitiesById(result.aggregations.channelIds.map((bucket) => bucket.key), { order: ['slug', 'asc'], append: channelCounts }) : [],
|
||||
]);
|
||||
|
||||
console.timeEnd('fetch aggregations');
|
||||
|
|
Loading…
Reference in New Issue