@@ -297,8 +297,8 @@ ipcMain.handle("multi-open", async (event, type?: string) => {
297297 button = "Rename"
298298 }
299299 if ( type === "subs" ) {
300- title = "Extract Subtitles"
301- button = "Extract "
300+ title = "Convert to VTT Subtitles"
301+ button = "Convert "
302302 }
303303 if ( ! window ) return
304304 const result = await dialog . showOpenDialog ( window , {
@@ -312,7 +312,8 @@ ipcMain.handle("multi-open", async (event, type?: string) => {
312312const subFiles = ( directory : string ) => {
313313 let files : string [ ] = [ ]
314314 let directories : string [ ] = [ ]
315- const dirFiles = fs . readdirSync ( directory ) . map ( ( f ) => `${ directory } /${ f } ` )
315+ let dirFiles = fs . readdirSync ( directory ) . map ( ( f ) => `${ directory } /${ f } ` )
316+ dirFiles = dirFiles . sort ( new Intl . Collator ( undefined , { numeric : true , sensitivity : "base" } ) . compare )
316317 for ( let i = 0 ; i < dirFiles . length ; i ++ ) {
317318 if ( fs . lstatSync ( dirFiles [ i ] ) . isDirectory ( ) ) {
318319 directories . push ( dirFiles [ i ] )
@@ -328,9 +329,25 @@ const subFiles = (directory: string) => {
328329
329330ipcMain . handle ( "flatten" , async ( event , directory : string ) => {
330331 const { files, directories} = subFiles ( directory )
332+ let conflict = false
333+ loop1:
331334 for ( let i = 0 ; i < files . length ; i ++ ) {
332- const newName = `${ directory } /${ path . basename ( files [ i ] ) } `
335+ let newName = path . basename ( files [ i ] )
336+ for ( let j = 0 ; j < files . length ; j ++ ) {
337+ if ( `${ path . dirname ( files [ i ] ) } /${ path . basename ( files [ i ] ) } ` === `${ path . dirname ( files [ j ] ) } /${ path . basename ( files [ j ] ) } ` ) continue
338+ let checkName = path . basename ( files [ j ] )
339+ if ( newName === checkName ) {
340+ conflict = true
341+ break loop1
342+ }
343+ }
344+ }
345+ let renameIndex = 0
346+ for ( let i = 0 ; i < files . length ; i ++ ) {
347+ let newName = `${ directory } /${ path . basename ( files [ i ] ) } `
348+ if ( conflict ) newName = `${ directory } /${ renameIndex } _${ path . basename ( files [ i ] ) } `
333349 fs . renameSync ( files [ i ] , newName )
350+ renameIndex ++
334351 }
335352 for ( let i = 0 ; i < directories . length ; i ++ ) {
336353 fs . rmdirSync ( directories [ i ] )
0 commit comments