图片解密再次优化

This commit is contained in:
cc
2026-04-15 23:57:33 +08:00
parent 419a53d6ec
commit ab1d64e0c9
20 changed files with 1504 additions and 422 deletions

View File

@@ -9,6 +9,8 @@ export type BackgroundTaskSourcePage =
export type BackgroundTaskStatus =
| 'running'
| 'pause_requested'
| 'paused'
| 'cancel_requested'
| 'completed'
| 'failed'
@@ -21,7 +23,9 @@ export interface BackgroundTaskRecord {
detail?: string
progressText?: string
cancelable: boolean
resumable: boolean
cancelRequested: boolean
pauseRequested: boolean
status: BackgroundTaskStatus
startedAt: number
updatedAt: number
@@ -34,7 +38,10 @@ export interface BackgroundTaskInput {
detail?: string
progressText?: string
cancelable?: boolean
resumable?: boolean
onCancel?: () => void | Promise<void>
onPause?: () => void | Promise<void>
onResume?: () => void | Promise<void>
}
export interface BackgroundTaskUpdate {

View File

@@ -499,7 +499,10 @@ export interface ElectronAPI {
force?: boolean
preferFilePath?: boolean
hardlinkOnly?: boolean
}) => Promise<{ success: boolean; localPath?: string; liveVideoPath?: string; error?: string }>
disableUpdateCheck?: boolean
allowCacheIndex?: boolean
suppressEvents?: boolean
}) => Promise<{ success: boolean; localPath?: string; liveVideoPath?: string; error?: string; failureKind?: 'not_found' | 'decrypt_failed' }>
resolveCache: (payload: {
sessionId?: string
imageMd5?: string
@@ -509,19 +512,21 @@ export interface ElectronAPI {
hardlinkOnly?: boolean
disableUpdateCheck?: boolean
allowCacheIndex?: boolean
}) => Promise<{ success: boolean; localPath?: string; hasUpdate?: boolean; liveVideoPath?: string; error?: string }>
suppressEvents?: boolean
}) => Promise<{ success: boolean; localPath?: string; hasUpdate?: boolean; liveVideoPath?: string; error?: string; failureKind?: 'not_found' | 'decrypt_failed' }>
resolveCacheBatch: (
payloads: Array<{ sessionId?: string; imageMd5?: string; imageDatName?: string; createTime?: number; preferFilePath?: boolean; hardlinkOnly?: boolean }>,
options?: { disableUpdateCheck?: boolean; allowCacheIndex?: boolean; preferFilePath?: boolean; hardlinkOnly?: boolean }
options?: { disableUpdateCheck?: boolean; allowCacheIndex?: boolean; preferFilePath?: boolean; hardlinkOnly?: boolean; suppressEvents?: boolean }
) => Promise<{
success: boolean
rows?: Array<{ success: boolean; localPath?: string; hasUpdate?: boolean; error?: string }>
rows?: Array<{ success: boolean; localPath?: string; hasUpdate?: boolean; error?: string; failureKind?: 'not_found' | 'decrypt_failed' }>
error?: string
}>
preload: (
payloads: Array<{ sessionId?: string; imageMd5?: string; imageDatName?: string; createTime?: number }>,
options?: { allowDecrypt?: boolean; allowCacheIndex?: boolean }
) => Promise<boolean>
preloadHardlinkMd5s: (md5List: string[]) => Promise<boolean>
onUpdateAvailable: (callback: (payload: { cacheKey: string; imageMd5?: string; imageDatName?: string }) => void) => () => void
onCacheResolved: (callback: (payload: { cacheKey: string; imageMd5?: string; imageDatName?: string; localPath: string }) => void) => () => void
onDecryptProgress: (callback: (payload: {

View File

@@ -8,6 +8,7 @@ export type ExportAutomationSchedule =
type: 'interval'
intervalDays: number
intervalHours: number
firstTriggerAt?: number
}
export interface ExportAutomationCondition {