Fix language showing up more than once

This commit is contained in:
Jip Fr
2024-01-01 18:20:50 +01:00
parent ac3dfb98e1
commit 2e9c1b4baa

View File

@@ -37,22 +37,28 @@ export async function getSubtitles(
const subResult = (await sendRequest(ctx, subtitleApiQuery)) as CaptionApiResponse; const subResult = (await sendRequest(ctx, subtitleApiQuery)) as CaptionApiResponse;
const subtitleList = subResult.data.list; const subtitleList = subResult.data.list;
const output: Caption[] = []; const output: Caption[] = [];
const languagesAdded: Record<string, true> = {};
subtitleList.forEach((sub) => { subtitleList.forEach((sub) => {
const subtitle = sub.subtitles.sort((a, b) => b.order - a.order)[0]; const subtitle = sub.subtitles.sort((a, b) => b.order - a.order)[0];
if (!subtitle) return; if (!subtitle) return;
const subtitleFilePath = subtitle.file_path const subtitleFilePath = subtitle.file_path
.replace(captionsDomains[0], captionsDomains[1]) .replace(captionsDomains[0], captionsDomains[1])
.replace(/\s/g, '+') .replace(/\s/g, '+')
.replace(/[()]/g, (c) => { .replace(/[()]/g, (c) => {
return `%${c.charCodeAt(0).toString(16)}`; return `%${c.charCodeAt(0).toString(16)}`;
}); });
const subtitleType = getCaptionTypeFromUrl(subtitleFilePath); const subtitleType = getCaptionTypeFromUrl(subtitleFilePath);
if (!subtitleType) return; if (!subtitleType) return;
const validCode = isValidLanguageCode(subtitle.lang); const validCode = isValidLanguageCode(subtitle.lang);
if (!validCode) return; if (!validCode) return;
if (languagesAdded[subtitle.lang]) return;
languagesAdded[subtitle.lang] = true;
output.push({ output.push({
id: subtitleFilePath, id: subtitleFilePath,
language: subtitle.lang, language: subtitle.lang,