Add functionality to move tagged files to extra/commentary folders
This commit is contained in:
parent
3f837ccf94
commit
c795c39d94
51
main.js
51
main.js
@ -102,9 +102,11 @@ ipcMain.handle('rename-file', async (event, { oldPath, newName }) => {
|
||||
return { success: false, error: 'Original file does not exist' };
|
||||
}
|
||||
|
||||
// Check if new name is different
|
||||
if (oldPath === newPath) {
|
||||
return { success: true, message: 'File name unchanged' };
|
||||
// Check if file is writable
|
||||
try {
|
||||
fs.accessSync(oldPath, fs.constants.W_OK);
|
||||
} catch (err) {
|
||||
return { success: false, error: 'File is not writable' };
|
||||
}
|
||||
|
||||
// Rename the file
|
||||
@ -116,6 +118,49 @@ ipcMain.handle('rename-file', async (event, { oldPath, newName }) => {
|
||||
}
|
||||
});
|
||||
|
||||
// IPC handler for moving file to folder
|
||||
ipcMain.handle('move-file-to-folder', async (event, { filePath, folderName }) => {
|
||||
try {
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
// Check if file exists
|
||||
if (!fs.existsSync(filePath)) {
|
||||
return { success: false, error: 'File does not exist' };
|
||||
}
|
||||
|
||||
// Validate folder name
|
||||
if (folderName !== 'extra' && folderName !== 'commentary') {
|
||||
return { success: false, error: 'Invalid folder name. Must be "extra" or "commentary"' };
|
||||
}
|
||||
|
||||
// Get directory containing the file
|
||||
const fileDir = path.dirname(filePath);
|
||||
const targetFolder = path.join(fileDir, folderName);
|
||||
|
||||
// Create the target folder if it doesn't exist
|
||||
if (!fs.existsSync(targetFolder)) {
|
||||
fs.mkdirSync(targetFolder, { recursive: true });
|
||||
}
|
||||
|
||||
// Generate new file path
|
||||
const fileName = path.basename(filePath);
|
||||
const newFilePath = path.join(targetFolder, fileName);
|
||||
|
||||
// Check if file with same name already exists in target folder
|
||||
if (fs.existsSync(newFilePath)) {
|
||||
return { success: false, error: 'File with same name already exists in target folder' };
|
||||
}
|
||||
|
||||
// Move the file
|
||||
fs.renameSync(filePath, newFilePath);
|
||||
|
||||
return { success: true, message: `File moved to ${folderName} folder successfully` };
|
||||
} catch (error) {
|
||||
return { success: false, error: error.message };
|
||||
}
|
||||
});
|
||||
|
||||
// IPC handler for searching TVDB
|
||||
ipcMain.handle('search-tvdb', async (event, query) => {
|
||||
try {
|
||||
|
||||
22
renderer.js
22
renderer.js
@ -260,6 +260,28 @@ function addTagToEpisode(filePath, tagType) {
|
||||
console.log(`File ${filePath} tagged as ${tagType} - would be saved in real implementation`);
|
||||
}
|
||||
|
||||
// Function to move tagged files to appropriate folders
|
||||
function moveTaggedFile(filePath, tagType) {
|
||||
console.log(`Moving file ${filePath} to ${tagType} folder`);
|
||||
|
||||
// Send request to main process to move the file
|
||||
ipcRenderer.invoke('move-file-to-folder', {
|
||||
filePath: filePath,
|
||||
folderName: tagType
|
||||
}).then(result => {
|
||||
if (result.success) {
|
||||
console.log(`File moved successfully to ${tagType} folder`);
|
||||
// Optional: Update UI to reflect that the file has been moved
|
||||
} else {
|
||||
console.error(`Failed to move file: ${result.error}`);
|
||||
alert(`Failed to move file: ${result.error}`);
|
||||
}
|
||||
}).catch(error => {
|
||||
console.error('Error moving file:', error);
|
||||
alert(`Error moving file: ${error.message}`);
|
||||
});
|
||||
}
|
||||
|
||||
// Function to handle untagging
|
||||
function untagFile(filePath, tagType) {
|
||||
console.log(`Untagging file ${filePath} from ${tagType}`);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user