mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-06-03 13:44:33 -04:00
Fix preferOriginal
This commit is contained in:
parent
3f188e27a1
commit
ac7b589d76
@ -29,7 +29,10 @@ export const showFilters: FilterDef = {
|
|||||||
airDate: { column: shows.startAir, type: "date" },
|
airDate: { column: shows.startAir, type: "date" },
|
||||||
startAir: { column: shows.startAir, type: "date" },
|
startAir: { column: shows.startAir, type: "date" },
|
||||||
endAir: { column: shows.startAir, type: "date" },
|
endAir: { column: shows.startAir, type: "date" },
|
||||||
originalLanguage: { column: shows.originalLanguage, type: "string" },
|
originalLanguage: {
|
||||||
|
column: sql`${shows.original}->'language'`,
|
||||||
|
type: "string",
|
||||||
|
},
|
||||||
tags: {
|
tags: {
|
||||||
column: sql.raw(`t.${showTranslations.tags.name}`),
|
column: sql.raw(`t.${showTranslations.tags.name}`),
|
||||||
type: "string",
|
type: "string",
|
||||||
@ -59,7 +62,7 @@ export async function getShows({
|
|||||||
sort,
|
sort,
|
||||||
filter,
|
filter,
|
||||||
languages,
|
languages,
|
||||||
preferOriginal,
|
preferOriginal = false,
|
||||||
}: {
|
}: {
|
||||||
after: string | undefined;
|
after: string | undefined;
|
||||||
limit: number;
|
limit: number;
|
||||||
@ -67,7 +70,7 @@ export async function getShows({
|
|||||||
sort: StaticDecode<typeof showSort>;
|
sort: StaticDecode<typeof showSort>;
|
||||||
filter: SQL | undefined;
|
filter: SQL | undefined;
|
||||||
languages: string[];
|
languages: string[];
|
||||||
preferOriginal: boolean | undefined;
|
preferOriginal?: boolean;
|
||||||
}) {
|
}) {
|
||||||
const transQ = db
|
const transQ = db
|
||||||
.selectDistinctOn([showTranslations.pk])
|
.selectDistinctOn([showTranslations.pk])
|
||||||
@ -77,8 +80,7 @@ export async function getShows({
|
|||||||
sql`array_position(${sqlarr(languages)}, ${showTranslations.language})`,
|
sql`array_position(${sqlarr(languages)}, ${showTranslations.language})`,
|
||||||
)
|
)
|
||||||
.as("t");
|
.as("t");
|
||||||
const { pk, poster, thumbnail, banner, logo, ...transCol } =
|
const { pk, ...transCol } = getColumns(transQ);
|
||||||
getColumns(transQ);
|
|
||||||
|
|
||||||
return await db
|
return await db
|
||||||
.select({
|
.select({
|
||||||
@ -90,21 +92,15 @@ export async function getShows({
|
|||||||
kind: sql<any>`${shows.kind}`,
|
kind: sql<any>`${shows.kind}`,
|
||||||
isAvailable: sql<boolean>`${shows.availableCount} != 0`,
|
isAvailable: sql<boolean>`${shows.availableCount} != 0`,
|
||||||
|
|
||||||
poster: sql<Image>`coalesce(${showTranslations.poster}, ${poster})`,
|
...(preferOriginal && {
|
||||||
thumbnail: sql<Image>`coalesce(${showTranslations.thumbnail}, ${thumbnail})`,
|
poster: sql<Image>`coalesce(${shows.original}->'poster', ${showTranslations.poster})`,
|
||||||
banner: sql<Image>`coalesce(${showTranslations.banner}, ${banner})`,
|
thumbnail: sql<Image>`coalesce(${shows.original}->'thumbnail', ${showTranslations.thumbnail})`,
|
||||||
logo: sql<Image>`coalesce(${showTranslations.logo}, ${logo})`,
|
banner: sql<Image>`coalesce(${shows.original}->'banner', ${showTranslations.banner})`,
|
||||||
|
logo: sql<Image>`coalesce(${shows.original}->'logo', ${showTranslations.logo})`,
|
||||||
|
}),
|
||||||
})
|
})
|
||||||
.from(shows)
|
.from(shows)
|
||||||
.innerJoin(transQ, eq(shows.pk, transQ.pk))
|
.innerJoin(transQ, eq(shows.pk, transQ.pk))
|
||||||
.leftJoin(
|
|
||||||
showTranslations,
|
|
||||||
and(
|
|
||||||
sql`${preferOriginal ?? false}`,
|
|
||||||
eq(shows.pk, showTranslations.pk),
|
|
||||||
eq(showTranslations.language, shows.originalLanguage),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
.where(
|
.where(
|
||||||
and(
|
and(
|
||||||
filter,
|
filter,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user