Changed scene year filter to range input.

This commit is contained in:
2026-11-11 23:28:53 +01:00
parent 91a5ad55cc
commit 5a9ca8710b
11 changed files with 168 additions and 82 deletions
+2 -1
View File
@@ -1,3 +1,4 @@
import { parseYears } from '../../utils/parse-range.js';
import promiseProps from '../../utils/promise-props.js';
import slugify from '../../utils/slugify.js';
import { getIdsBySlug } from '../cache.js';
@@ -10,7 +11,7 @@ export async function curateMoviesQuery(query) {
return {
scope: query.scope || 'latest',
query: query.q,
years: query.years?.split(',')?.map((year) => Number(year)).filter(Boolean) || [],
...parseYears(query.years),
actorIds: [query.actorId, ...(query.actors?.split(',') || []).map((identifier) => parseActorIdentifier(identifier)?.id)].filter(Boolean),
tagIds: await getIdsBySlug([query.tagSlug, ...(query.tags?.split(',') || [])], 'tags'),
entityId: query.e ? await getIdsBySlug([query.e], 'entities').then(([id]) => id) : query.entityId,
+4 -3
View File
@@ -1,6 +1,6 @@
import { Router } from 'express';
import { parseRange } from '../../utils/parse-range.js';
import { parseRange, parseYears } from '../../utils/parse-range.js';
import promiseProps from '../../utils/promise-props.js';
import slugify from '../../utils/slugify.js';
@@ -18,7 +18,7 @@ import {
import { fetchStashByUsernameAndSlug } from '../stashes.js';
export async function curateScenesQuery(query) {
const splitYears = query.years?.split(',') || [];
const { years, yearRange } = parseYears(query.years);
const splitTags = query.tags?.split(',') || [];
const splitActors = query.actors?.split(',') || [];
const splitEntities = query.e?.split(',') || [];
@@ -39,7 +39,8 @@ export async function curateScenesQuery(query) {
return {
scope: query.scope || 'latest',
query: query.q,
years: splitYears.map((year) => Number(year)).filter(Boolean) || [],
years,
yearRange,
actorIds: [query.actorId, ...splitActors.filter((actor) => actor.charAt(0) !== '!').map((identifier) => parseActorIdentifier(identifier)?.id)].filter(Boolean),
notActorIds: splitActors.filter((actor) => actor.charAt(0) === '!').map((identifier) => parseActorIdentifier(identifier.slice(1))?.id).filter(Boolean),
actorCount: parseRange(query.group),