web: update h265 & gif params, migrate old params to new names

This commit is contained in:
wukko 2025-01-29 15:40:29 +06:00
parent 3a96c8ae56
commit b6472d5406
No known key found for this signature in database
GPG Key ID: 3E30B3F26C7B4AA2
5 changed files with 33 additions and 10 deletions

View File

@ -62,8 +62,8 @@ const request = async (url: string) => {
filenameStyle: getSetting("save", "filenameStyle"),
disableMetadata: getSetting("save", "disableMetadata"),
twitterGif: getSetting("save", "twitterGif"),
tiktokH265: getSetting("save", "tiktokH265"),
convertGif: getSetting("save", "convertGif"),
allowH265: getSetting("save", "allowH265"),
alwaysProxy: getSetting("privacy", "alwaysProxy"),
localProcessing: getSetting("advanced", "localProcessing"),

View File

@ -21,9 +21,9 @@ const defaultSettings: CobaltSettings = {
downloadMode: "auto",
filenameStyle: "classic",
savingMethod: "download",
tiktokH265: false,
allowH265: false,
tiktokFullAudio: false,
twitterGif: true,
convertGif: true,
videoQuality: "1080",
youtubeVideoCodec: "h264",
youtubeDubLang: "original",

View File

@ -1,9 +1,10 @@
import type { RecursivePartial } from "$lib/types/generic";
import type {
PartialSettings,
AllPartialSettingsWithSchema,
CobaltSettingsV3,
CobaltSettingsV4,
PartialSettings,
CobaltSettingsV5,
} from "$lib/types/settings";
import { getBrowserLanguage } from "$lib/settings/youtube-lang";
@ -40,6 +41,24 @@ const migrations: Record<number, Migrator> = {
return out as AllPartialSettingsWithSchema;
},
[5]: (settings: AllPartialSettingsWithSchema) => {
const out = settings as RecursivePartial<CobaltSettingsV5>;
out.schemaVersion = 5;
if (settings?.save) {
if ("tiktokH265" in settings.save) {
out.save!.allowH265 = settings.save.tiktokH265;
delete settings.save.tiktokH265;
}
if ("twitterGif" in settings.save) {
out.save!.convertGif = settings.save.twitterGif;
delete settings.save.twitterGif;
}
}
return out as AllPartialSettingsWithSchema;
},
};
export const migrate = (settings: AllPartialSettingsWithSchema): PartialSettings => {

View File

@ -1,8 +1,12 @@
import { type CobaltSettingsV4 } from "$lib/types/settings/v4";
export type CobaltSettingsV5 = Omit<CobaltSettingsV4, 'schemaVersion' | 'advanced'> & {
export type CobaltSettingsV5 = Omit<CobaltSettingsV4, 'schemaVersion' | 'advanced' | 'save'> & {
schemaVersion: 5,
advanced: CobaltSettingsV4['advanced'] & {
localProcessing: boolean;
};
},
save: Omit<CobaltSettingsV4['save'], 'tiktokH265' | 'twitterGif'> & {
allowH265: boolean;
convertGif: boolean;
},
};

View File

@ -72,16 +72,16 @@
<SettingsCategory sectionId="h265" title={$t("settings.video.h265")}>
<SettingsToggle
settingContext="save"
settingId="tiktokH265"
settingId="allowH265"
title={$t("settings.video.h265.title")}
description={$t("settings.video.h265.description")}
/>
</SettingsCategory>
<SettingsCategory sectionId="twitter" title={$t("settings.video.twitter.gif")}>
<SettingsCategory sectionId="convert-gif" title={$t("settings.video.twitter.gif")}>
<SettingsToggle
settingContext="save"
settingId="twitterGif"
settingId="convertGif"
title={$t("settings.video.twitter.gif.title")}
description={$t("settings.video.twitter.gif.description")}
/>