Feature(custom): optimize scripts for gallery item delete

This commit is contained in:
Kuingsmile
2026-01-26 20:47:18 +08:00
parent 9c8698907e
commit 0145ce2aa7
10 changed files with 13 additions and 11 deletions

View File

@@ -39,11 +39,16 @@ const galleryRoutes = [
action: IRPCActionType.GALLERY_REMOVE_FILES,
handler: async (_: IIPCEvent, args: [files: ImgInfo[]]) => {
setTimeout(() => {
runScriptInStage('onGalleryRemove', picgo, { galleryItem: args[0] })
picgo.emit(ICOREBuildInEvent.REMOVE, args[0], GuiApi.getInstance())
}, 500)
},
},
{
action: IRPCActionType.GALLERY_REMOVE_RUN_SCRIPTS,
handler: async (_: IIPCEvent, args: [file: ImgInfo]) => {
await runScriptInStage('onGalleryRemove', picgo, { galleryItem: args[0] })
},
},
{
action: IRPCActionType.GALLERY_GET_DB,
handler: async (_: IIPCEvent, args: [filter: IFilter]) => {

View File

@@ -191,6 +191,8 @@ export const IRPCActionType = {
GALLERY_REMOVE_BY_ID_DB: 'GALLERY_REMOVE_BY_ID_DB',
GALLERY_INSERT_DB: 'GALLERY_INSERT_DB',
GALLERY_INSERT_DB_BATCH: 'GALLERY_INSERT_DB_BATCH',
GALLERY_REMOVE_RUN_SCRIPTS: 'GALLERY_REMOVE_RUN_SCRIPTS',
// plugin rpc
PLUGIN_GET_LIST: 'PLUGIN_GET_LIST',
PLUGIN_INSTALL: 'PLUGIN_INSTALL',

View File

@@ -220,7 +220,6 @@ function handleMapChange(picbedType: string, value: any, id?: string) {
for (const sibling of element?.parentElement?.parentElement?.children || []) {
const input = sibling.querySelector('input') as HTMLInputElement | null
if (input && input !== element) {
console.log('uncheck', input)
input.checked = false
}
}

View File

@@ -1935,7 +1935,6 @@ async function initCustomDomainList() {
label: defaultUrl,
value: defaultUrl,
})
console.log('customDomainList', customDomainList.value)
currentCustomDomain.value = customDomainList.value[0].value
} else {
customDomainList.value.length = 0
@@ -2426,7 +2425,6 @@ const matchedFilesNumber = computed(() => {
}
}
})
console.log('matchedFiles', matchedFiles)
return matchedFiles
})
@@ -2589,7 +2587,6 @@ async function copyLink(item: any, type: string) {
}
function handlecopyDropdownOpen() {
console.log('copyDropdownOpen', copyDropdownOpen.value)
copyDropdownOpen.value = !copyDropdownOpen.value
}

View File

@@ -849,6 +849,7 @@ function remove(item: ImgInfo, _: number) {
}
}
await $$db.removeById(item.id!)
window.electron.sendRPC(IRPCActionType.GALLERY_REMOVE_RUN_SCRIPTS, getRawData(item))
const args = getRawData(file)
window.electron.sendRPC(IRPCActionType.GALLERY_REMOVE_FILES, [args])
await updateGallery()
@@ -949,6 +950,7 @@ function multiRemove() {
files.push(file)
await $$db.removeById(key)
}
window.electron.sendRPC(IRPCActionType.GALLERY_REMOVE_RUN_SCRIPTS, getRawData(file))
}
}
}
@@ -960,6 +962,7 @@ function multiRemove() {
if (file) {
files.push(file)
await $$db.removeById(key)
window.electron.sendRPC(IRPCActionType.GALLERY_REMOVE_RUN_SCRIPTS, getRawData(file))
}
}
}

View File

@@ -179,7 +179,6 @@ const handleConfirm = async () => {
async function getPicBeds() {
try {
const result = await window.electron.triggerRPC<any>(IRPCActionType.PICBED_GET_PICBED_CONFIG, $route.params.type)
console.log('PicBed config result:', result)
config.value = result.config
picBedName.value = result.name
} catch (error) {

View File

@@ -1605,7 +1605,6 @@ const addWatch = () => {
watch(
() => formOfSetting.value.mainWindowWidth,
newVal => {
console.log('Main window width changed:', newVal)
const width = enforceNumber(newVal)
saveConfig({ [configPaths.settings.mainWindowWidth]: rawPicGoSize.value ? 800 : Math.max(width, 100) })
},
@@ -1614,7 +1613,6 @@ const addWatch = () => {
watch(
() => formOfSetting.value.mainWindowHeight,
newVal => {
console.log('Main window height changed:', newVal)
const height = enforceNumber(newVal)
saveConfig({ [configPaths.settings.mainWindowHeight]: rawPicGoSize.value ? 450 : Math.max(height, 100) })
},

View File

@@ -278,7 +278,6 @@ async function refreshList() {
const fileStats =
(await window.electron.triggerRPC<IObj[]>(IRPCActionType.GET_FILES_STAT, getRawData(result), 'scripts')) || []
const disabledList = ((await getConfig(configPaths.scripts.disabledList)) as string[] | undefined) || []
console.log('disabledList', disabledList)
fileStats.forEach(file => {
const fullPath = file.filePath.join('/')
file.enabled = !disabledList.includes(fullPath)

View File

@@ -134,6 +134,8 @@ export const IRPCActionType = {
GALLERY_REMOVE_BY_ID_DB: 'GALLERY_REMOVE_BY_ID_DB',
GALLERY_INSERT_DB: 'GALLERY_INSERT_DB',
GALLERY_INSERT_DB_BATCH: 'GALLERY_INSERT_DB_BATCH',
GALLERY_REMOVE_RUN_SCRIPTS: 'GALLERY_REMOVE_RUN_SCRIPTS',
// plugin rpc
PLUGIN_GET_LIST: 'PLUGIN_GET_LIST',
PLUGIN_INSTALL: 'PLUGIN_INSTALL',

View File

@@ -71,7 +71,6 @@ export const picBedManualUrlList: IStringKeyMap = {
export const defaultScriptTemplate = `
// ctx 为 核心PicList实例, extra为额外参数, 其中extra.galleryItem为当前删除的相册对象
// 可用额外API: axios, crypto, fs, path, os, setTimeout, setInterval, clearTimeout, clearInterval, base64Decode, base64Encode
// 图床上传脚本必须返回 ctx 对象, 其它脚本可根据需求返回任意数据
async function main(ctx, extra) {
// 在这里编写你的脚本代码
@@ -82,7 +81,6 @@ async function main(ctx, extra) {
export const defaultScriptTemplateEn = `
// ctx is the core PicList instance, extra is additional parameters, among which extra.galleryItem is the currently deleted album object
// Available additional APIs: axios, crypto, fs, path, os, setTimeout, setInterval, clearTimeout, clearInterval, base64Decode, base64Encode
// The image bed upload script must return the ctx object, other scripts can return any data as needed
async function main(ctx, extra) {
// Write your script code here