feat: 完善本地书库与发布更新流程

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
This commit is contained in:
lofyer
2026-07-28 21:55:16 +08:00
co-authored by factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
parent de3e1d8a44
commit b8c8d24107
22 changed files with 1579 additions and 359 deletions
+15 -1
View File
@@ -15,14 +15,27 @@ contextBridge.exposeInMainWorld('api', {
add: (item) => ipcRenderer.invoke('library:add', item),
update: (id, patch) => ipcRenderer.invoke('library:update', id, patch),
remove: (id, deleteFiles) => ipcRenderer.invoke('library:remove', id, deleteFiles),
getDir: () => ipcRenderer.invoke('library:getDir'),
pickDir: () => ipcRenderer.invoke('library:pickDir'),
setDir: (dir, migrate) => ipcRenderer.invoke('library:setDir', dir, migrate),
scan: () => ipcRenderer.invoke('library:scan'),
onChanged: (cb) => ipcRenderer.on('library:changed', () => cb())
},
downloadFile: (url, suggestName, entryId, extraHeaders) => ipcRenderer.invoke('download:file', url, suggestName, entryId, extraHeaders),
settings: {
get: (key, def) => ipcRenderer.invoke('settings:get', key, def),
set: (key, value) => ipcRenderer.invoke('settings:set', key, value)
},
downloadFile: (url, suggestName, entryId, extraHeaders, meta) => ipcRenderer.invoke('download:file', url, suggestName, entryId, extraHeaders, meta),
zlib: {
hasCreds: () => ipcRenderer.invoke('zlib:hasCreds'),
login: (email, password) => ipcRenderer.invoke('zlib:login', email, password),
logout: () => ipcRenderer.invoke('zlib:logout')
},
semanticScholar: {
keyStatus: () => ipcRenderer.invoke('semanticScholar:keyStatus'),
setKey: (key) => ipcRenderer.invoke('semanticScholar:setKey', key),
clearKey: () => ipcRenderer.invoke('semanticScholar:clearKey')
},
proxy: {
get: () => ipcRenderer.invoke('proxy:get'),
set: (url) => ipcRenderer.invoke('proxy:set', url)
@@ -33,6 +46,7 @@ contextBridge.exposeInMainWorld('api', {
openExternal: (url) => ipcRenderer.invoke('shell:openExternal', url),
copy: (text) => ipcRenderer.invoke('copy', text),
getVersion: () => ipcRenderer.invoke('app:version'),
checkUpdate: () => ipcRenderer.invoke('app:checkUpdate'),
minimize: () => ipcRenderer.send('win:minimize'),
maximize: () => ipcRenderer.send('win:maximize'),
close: () => ipcRenderer.send('win:close')