Files
youtube-music/src/plugins/downloader/index.ts
2024-07-14 22:00:40 +09:00

59 lines
1.4 KiB
TypeScript

import { DefaultPresetList, Preset } from './types';
import style from './style.css?inline';
import { createPlugin } from '@/utils';
import { onConfigChange, onMainLoad } from './main';
import { onPlayerApiReady, onRendererLoad } from './renderer';
import { onMenu } from './menu';
import { t } from '@/i18n';
export type DownloaderPluginConfig = {
enabled: boolean;
downloadFolder?: string;
downloadOnFinish?: {
enabled: boolean;
seconds: number;
percent: number;
mode: 'percent' | 'seconds';
folder?: string;
};
selectedPreset: string;
customPresetSetting: Preset;
skipExisting: boolean;
playlistMaxItems?: number;
};
export const defaultConfig: DownloaderPluginConfig = {
enabled: false,
downloadFolder: undefined,
downloadOnFinish: {
enabled: false,
seconds: 20,
percent: 10,
mode: 'seconds',
folder: undefined,
},
selectedPreset: 'mp3 (256kbps)', // Selected preset
customPresetSetting: DefaultPresetList['mp3 (256kbps)'], // Presets
skipExisting: false,
playlistMaxItems: undefined,
};
export default createPlugin({
name: () => t('plugins.downloader.name'),
description: () => t('plugins.downloader.description'),
restartNeeded: true,
config: defaultConfig,
stylesheets: [style],
menu: onMenu,
backend: {
start: onMainLoad,
onConfigChange,
},
renderer: {
start: onRendererLoad,
onPlayerApiReady,
},
});