fix: properly check post language in checkLangMute() #3

Manually merged
sup39 merged 1 commit from fix/check-lang-mute into main 2023-12-29 10:42:09 +09:00

View file

@ -12,11 +12,15 @@ function checkLangMute(
note: firefish.entities.Note,
mutedLangs: Array<string | string[]>,
): Muted {
const mutedLangList = new Set(
mutedLangs.reduce((arr, x) => [...arr, ...(Array.isArray(x) ? x : [x])]),
);
if (mutedLangList.has((note.lang?.[0]?.lang || "").split("-")[0])) {
return { muted: true, matched: [note.lang?.[0]?.lang] };
const mutedLangList = new Set(mutedLangs.flatMap((e) => e));
// handle subtags
// e.g. if lang = "zh-hant-tw", check ["zh", "zh-hant", "zh-hant-tw"]
const langChunks: string[] = (note.lang || "").split("-");
for (let i = 0; i < langChunks.length; i++) {
const lang = langChunks.slice(0, i + 1).join("-");
if (mutedLangList.has(lang)) {
return { muted: true, matched: [lang] };
}
}
return NotMuted;
}