move directory name and filename extraction logic to handle download

This commit is contained in:
Abhinav 2022-08-08 21:13:07 +05:30
parent 75e8c1bfe3
commit 2dd23526ff

View file

@ -90,28 +90,26 @@ function setupTrayItem() {
function handleDownloads() { function handleDownloads() {
mainWindow.webContents.session.on('will-download', (event, item) => { mainWindow.webContents.session.on('will-download', (event, item) => {
item.setSavePath(getUniqueSavePath(item)); item.setSavePath(
getUniqueSavePath(item.getFilename(), app.getPath('downloads'))
);
}); });
} }
function getUniqueSavePath(item: Electron.DownloadItem): string { function getUniqueSavePath(filename: string, directory: string): string {
let n = 0; let n = 0;
let exists; let exists;
let uniqueFileSavePath; let uniqueFileSavePath;
const [filenameWithoutExtension, extension] = splitFilenameAndExtension( const [filenameWithoutExtension, extension] =
item.getFilename() splitFilenameAndExtension(filename);
);
do { do {
let fileNameWithNumberedSuffix; let fileNameWithNumberedSuffix;
if (n > 0) { if (n > 0) {
fileNameWithNumberedSuffix = `${filenameWithoutExtension}(${n}).${extension}`; fileNameWithNumberedSuffix = `${filenameWithoutExtension}(${n}).${extension}`;
} else { } else {
fileNameWithNumberedSuffix = item.getFilename(); fileNameWithNumberedSuffix = filename;
} }
uniqueFileSavePath = path.join( uniqueFileSavePath = path.join(directory, fileNameWithNumberedSuffix);
app.getPath('downloads'),
fileNameWithNumberedSuffix
);
exists = existsSync(uniqueFileSavePath); exists = existsSync(uniqueFileSavePath);
n++; n++;
} while (exists); } while (exists);