web/settings: migrate boolean localProcessing to enum

This commit is contained in:
wukko 2025-06-22 16:28:18 +06:00
parent ac85ce86c0
commit a4d5f5b380
No known key found for this signature in database
GPG Key ID: 3E30B3F26C7B4AA2
3 changed files with 20 additions and 2 deletions

View File

@ -22,7 +22,8 @@ const defaultSettings: CobaltSettings = {
}, },
save: { save: {
alwaysProxy: false, alwaysProxy: false,
localProcessing: device.supports.defaultLocalProcessing || false, localProcessing:
device.supports.defaultLocalProcessing ? "preferred" : "disabled",
audioBitrate: "128", audioBitrate: "128",
audioFormat: "mp3", audioFormat: "mp3",
disableMetadata: false, disableMetadata: false,

View File

@ -5,6 +5,7 @@ import type {
CobaltSettingsV3, CobaltSettingsV3,
CobaltSettingsV4, CobaltSettingsV4,
CobaltSettingsV5, CobaltSettingsV5,
CobaltSettingsV6,
} from "$lib/types/settings"; } from "$lib/types/settings";
import { getBrowserLanguage } from "$lib/settings/audio-sub-language"; import { getBrowserLanguage } from "$lib/settings/audio-sub-language";
@ -80,6 +81,20 @@ const migrations: Record<number, Migrator> = {
return out as AllPartialSettingsWithSchema; return out as AllPartialSettingsWithSchema;
}, },
[6]: (settings: AllPartialSettingsWithSchema) => {
const out = settings as RecursivePartial<CobaltSettingsV6>;
out.schemaVersion = 6;
if (settings?.save) {
if ("localProcessing" in settings.save) {
out.save!.localProcessing =
settings.save.localProcessing ? "preferred" : "disabled";
}
}
return out as AllPartialSettingsWithSchema;
},
}; };
export const migrate = (settings: AllPartialSettingsWithSchema): PartialSettings => { export const migrate = (settings: AllPartialSettingsWithSchema): PartialSettings => {

View File

@ -2,10 +2,12 @@ import type { SubtitleLang } from "$lib/settings/audio-sub-language";
import type { CobaltSettingsV5 } from "$lib/types/settings/v5"; import type { CobaltSettingsV5 } from "$lib/types/settings/v5";
export const youtubeVideoContainerOptions = ["auto", "mp4", "webm", "mkv"] as const; export const youtubeVideoContainerOptions = ["auto", "mp4", "webm", "mkv"] as const;
export const localProcessingOptions = ["disabled", "preferred", "forced"] as const;
export type CobaltSettingsV6 = Omit<CobaltSettingsV5, 'schemaVersion' | 'save'> & { export type CobaltSettingsV6 = Omit<CobaltSettingsV5, 'schemaVersion' | 'save'> & {
schemaVersion: 6, schemaVersion: 6,
save: CobaltSettingsV5['save'] & { save: Omit<CobaltSettingsV5['save'], 'localProcessing'> & {
localProcessing: typeof localProcessingOptions[number],
youtubeVideoContainer: typeof youtubeVideoContainerOptions[number]; youtubeVideoContainer: typeof youtubeVideoContainerOptions[number];
subtitleLang: SubtitleLang, subtitleLang: SubtitleLang,
}, },