mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-11 10:31:47 +00:00
46 lines
1.1 KiB
TypeScript
46 lines
1.1 KiB
TypeScript
import { dialog } from 'electron';
|
|
|
|
import { downloadPlaylist } from './back';
|
|
import { defaultMenuDownloadLabel, getFolder, presets } from './utils';
|
|
import config from './config';
|
|
|
|
import { MenuTemplate } from '../../menu';
|
|
|
|
export default (): MenuTemplate => [
|
|
{
|
|
label: defaultMenuDownloadLabel,
|
|
click: () => downloadPlaylist(),
|
|
},
|
|
{
|
|
label: 'Choose download folder',
|
|
click() {
|
|
const result = dialog.showOpenDialogSync({
|
|
properties: ['openDirectory', 'createDirectory'],
|
|
defaultPath: getFolder(config.get('downloadFolder') ?? ''),
|
|
});
|
|
if (result) {
|
|
config.set('downloadFolder', result[0]);
|
|
} // Else = user pressed cancel
|
|
},
|
|
},
|
|
{
|
|
label: 'Presets',
|
|
submenu: Object.keys(presets).map((preset) => ({
|
|
label: preset,
|
|
type: 'radio',
|
|
checked: config.get('preset') === preset,
|
|
click() {
|
|
config.set('preset', preset);
|
|
},
|
|
})),
|
|
},
|
|
{
|
|
label: 'Skip existing files',
|
|
type: 'checkbox',
|
|
checked: config.get('skipExisting'),
|
|
click(item) {
|
|
config.set('skipExisting', item.checked);
|
|
},
|
|
},
|
|
];
|