Skip to content

Commit 6d3aca5

Browse files
authored
Merge pull request #139 from SchneeHertz/development
Development
2 parents 36c9e8c + 6f698ed commit 6d3aca5

File tree

12 files changed

+1147
-546
lines changed

12 files changed

+1147
-546
lines changed

fileLoader/archive.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,11 @@ let getImageListFromArchive = async (filepath, VIEWER_PATH)=>{
7171
return list
7272
}
7373

74+
let deleteImageFromArchive = async (filename, filepath) => {
75+
await spawnPromise(_7z, ['d', filepath, filename, '-p123456'])
76+
return true
77+
}
78+
7479
let spawnPromise = (commmand, argument)=>{
7580
return new Promise((resolve, reject)=>{
7681
const spawned = spawn(commmand, argument)
@@ -94,5 +99,6 @@ let spawnPromise = (commmand, argument)=>{
9499
module.exports = {
95100
getArchivelist,
96101
solveBookTypeArchive,
97-
getImageListFromArchive
102+
getImageListFromArchive,
103+
deleteImageFromArchive
98104
}

fileLoader/folder.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
const path = require('path')
22
const { globIterate, globSync } = require('glob')
33
const { nanoid } = require('nanoid')
4-
const _ = require('lodash')
54
const { readdir, stat } = require('fs/promises')
5+
const { shell } = require('electron')
66

77
const dirSize = async dir => {
88
const files = await readdir( dir, { withFileTypes: true } )
@@ -60,8 +60,15 @@ let getImageListFromFolder = async (folderpath, VIEWER_PATH)=>{
6060
return list
6161
}
6262

63+
let deleteImageFromFolder = async (filename, folderpath) => {
64+
let filepath = path.join(folderpath, filename)
65+
await shell.trashItem(filepath)
66+
return true
67+
}
68+
6369
module.exports = {
6470
getFolderlist,
6571
solveBookTypeFolder,
66-
getImageListFromFolder
72+
getImageListFromFolder,
73+
deleteImageFromFolder
6774
}

fileLoader/index.js

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ const path = require('node:path')
33
const { nanoid } = require('nanoid')
44
const { createHash } = require('crypto')
55
const sharp = require('sharp')
6-
const { getFolderlist, solveBookTypeFolder, getImageListFromFolder } = require('./folder.js')
7-
const { getArchivelist, solveBookTypeArchive, getImageListFromArchive } = require('./archive.js')
6+
const { getFolderlist, solveBookTypeFolder, getImageListFromFolder, deleteImageFromFolder } = require('./folder.js')
7+
const { getArchivelist, solveBookTypeArchive, getImageListFromArchive, deleteImageFromArchive } = require('./archive.js')
88
const { getZipFilelist, solveBookTypeZip } = require('./zip.js')
99
const { TEMP_PATH, COVER_PATH, VIEWER_PATH } = require('../modules/init_folder_setting.js')
1010

@@ -63,8 +63,21 @@ const getImageListByBook = async (filepath, type) => {
6363
}
6464
}
6565

66+
const deleteImageFromBook = async (filename, filepath, type) => {
67+
switch (type) {
68+
case 'folder':
69+
return await deleteImageFromFolder(filename, filepath)
70+
case 'zip':
71+
case 'archive':
72+
return await deleteImageFromArchive(filename, filepath)
73+
default:
74+
return await deleteImageFromArchive(filename, filepath)
75+
}
76+
}
77+
6678
module.exports = {
6779
getBookFilelist,
6880
geneCover,
69-
getImageListByBook
81+
getImageListByBook,
82+
deleteImageFromBook
7083
}

index.js

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ const windowStateKeeper = require('electron-window-state')
1616

1717
const { prepareMangaModel, prepareMetadataModel } = require('./modules/database')
1818
const { prepareTemplate } = require('./modules/prepare_menu.js')
19-
const { getBookFilelist, geneCover, getImageListByBook } = require('./fileLoader/index.js')
19+
const { getBookFilelist, geneCover, getImageListByBook, deleteImageFromBook } = require('./fileLoader/index.js')
2020
const { STORE_PATH, TEMP_PATH, COVER_PATH, VIEWER_PATH, prepareSetting, preparePath } = require('./modules/init_folder_setting.js')
2121

2222

@@ -458,13 +458,13 @@ ipcMain.handle('get-folder-tree', async (event, bookList) => {
458458
if (_.isEmpty(node)) {
459459
preRoot.push({
460460
label: trueLabel,
461-
folderPath: [...initFolder, trueLabel]
461+
folderPath: [...initFolder, trueLabel].slice(1).join(path.sep),
462462
})
463463
} else {
464464
preRoot.push({
465465
label: trueLabel,
466-
folderPath: [...initFolder, trueLabel],
467-
children: resolveTree([], node, [...initFolder, trueLabel])
466+
folderPath: [...initFolder, trueLabel].slice(1).join(path.sep),
467+
children: resolveTree([], node, [...initFolder, trueLabel]),
468468
})
469469
}
470470
})
@@ -562,9 +562,11 @@ ipcMain.handle('load-manga-image-list', async (event, book) => {
562562
break
563563
}
564564
}
565+
let filename = path.basename(list[index - 1])
565566
mainWindow.webContents.send('manga-image', {
566567
id: `${bookId}_${index}`,
567568
index,
569+
filename,
568570
filepath: imageFilepath,
569571
width, height
570572
})
@@ -583,6 +585,7 @@ ipcMain.handle('load-manga-image-list', async (event, book) => {
583585
mainWindow.webContents.send('manga-thumbnail-image', {
584586
id: `${bookId}_${index}`,
585587
index,
588+
filename,
586589
filepath: imageFilepath,
587590
thumbnailPath,
588591
})
@@ -598,6 +601,9 @@ ipcMain.handle('release-sendimagelock', () => {
598601
sendImageLock = false
599602
})
600603

604+
ipcMain.handle('delete-image', async (event, filename, filepath, type) => {
605+
return await deleteImageFromBook(filename, filepath, type)
606+
})
601607

602608
// setting
603609
ipcMain.handle('select-folder', async (event, type) => {
@@ -743,6 +749,8 @@ ipcMain.handle('import-sqlite', async (event, bookList) => {
743749
}
744750
})
745751

752+
// tools
753+
746754
ipcMain.handle('set-progress-bar', async (event, progress) => {
747755
setProgressBar(progress)
748756
})
@@ -775,4 +783,8 @@ ipcMain.handle('update-window-title', async (event, title) => {
775783

776784
ipcMain.handle('switch-fullscreen', async (event, arg) => {
777785
mainWindow.setFullScreen(!mainWindow.isFullScreen())
786+
})
787+
788+
ipcMain.on('get-path-sep', async (event, arg) => {
789+
event.returnValue = path.sep
778790
})

0 commit comments

Comments
 (0)