diff --git a/api/src/controllers/movies.ts b/api/src/controllers/movies.ts index 5951d966..a4922a72 100644 --- a/api/src/controllers/movies.ts +++ b/api/src/controllers/movies.ts @@ -177,11 +177,7 @@ export const movies = new Elysia({ prefix: "/movies", tags: ["movies"] }) .where(and(filter, keysetPaginate({ table: shows, after, sort }))) .orderBy( ...(sort.random !== undefined - ? [ - sort.random.desc - ? sql`md5(${sort.random.seed} || ${shows.pk}) desc` - : sql`md5(${sort.random.seed} || ${shows.pk})`, - ] + ? [sql`md5(${sort.random.seed} || ${shows.pk})`] : []), ...sort.sort.map((x) => x.desc ? sql`${shows[x.key]} desc nulls last` : shows[x.key], diff --git a/api/src/models/utils/sort.ts b/api/src/models/utils/sort.ts index cc841997..7a7a1ee5 100644 --- a/api/src/models/utils/sort.ts +++ b/api/src/models/utils/sort.ts @@ -9,7 +9,7 @@ export type Sort< remmapedKey?: keyof Remap; desc: boolean; }[]; - random?: { desc: boolean; seed: number }; + random?: { seed: number }; }; export type NonEmptyArray = [T, ...T[]]; @@ -33,14 +33,12 @@ export const Sort = < .Transform( t.Array( t.Union([ + t.Literal("random"), + t.TemplateLiteral("random:${number}"), t.UnionEnum([ ...values, ...values.map((x: T[number]) => `-${x}` as const), ]), - t.Union([ - t.TemplateLiteral("random:${number}"), - t.TemplateLiteral("-random:${number}"), - ]), ]), { // TODO: support explode: true (allow sort=slug,-createdAt). needs a pr to elysia @@ -59,14 +57,12 @@ export const Sort = < if (key == "random") { random = { seed: Math.floor(Math.random() * Number.MAX_SAFE_INTEGER), - desc, }; continue; } else if (key.startsWith("random:")) { const strSeed = key.replace("random:", ""); random = { seed: parseInt(strSeed), - desc, }; continue; }