()
| 12 | } |
| 13 | |
| 14 | private setupIPC(): void { |
| 15 | // 获取剪贴板历史 |
| 16 | ipcMain.handle( |
| 17 | 'clipboard:get-history', |
| 18 | async (_event, page: number, pageSize: number, filter?: string) => { |
| 19 | try { |
| 20 | return await clipboardManager.getHistory(page, pageSize, filter) |
| 21 | } catch (error) { |
| 22 | console.error('[Clipboard] 获取剪贴板历史失败:', error) |
| 23 | return { items: [], total: 0, page, pageSize } |
| 24 | } |
| 25 | } |
| 26 | ) |
| 27 | |
| 28 | // 搜索剪贴板 |
| 29 | ipcMain.handle('clipboard:search', async (_event, keyword: string) => { |
| 30 | try { |
| 31 | return await clipboardManager.search(keyword) |
| 32 | } catch (error) { |
| 33 | console.error('[Clipboard] 搜索剪贴板失败:', error) |
| 34 | return [] |
| 35 | } |
| 36 | }) |
| 37 | |
| 38 | // 删除剪贴板记录 |
| 39 | ipcMain.handle('clipboard:delete', async (_event, id: string) => { |
| 40 | try { |
| 41 | const result = await clipboardManager.deleteItem(id) |
| 42 | return { success: result } |
| 43 | } catch (error) { |
| 44 | console.error('[Clipboard] 删除剪贴板记录失败:', error) |
| 45 | return { success: false } |
| 46 | } |
| 47 | }) |
| 48 | |
| 49 | // 清空剪贴板历史 |
| 50 | ipcMain.handle('clipboard:clear', async (_event, type?: string) => { |
| 51 | try { |
| 52 | const count = await clipboardManager.clear(type as any) |
| 53 | return { success: true, count } |
| 54 | } catch (error) { |
| 55 | console.error('[Clipboard] 清空剪贴板历史失败:', error) |
| 56 | return { success: false, count: 0 } |
| 57 | } |
| 58 | }) |
| 59 | |
| 60 | // 获取剪贴板状态 |
| 61 | ipcMain.handle('clipboard:get-status', async () => { |
| 62 | try { |
| 63 | return await clipboardManager.getStatus() |
| 64 | } catch (error) { |
| 65 | console.error('[Clipboard] 获取剪贴板状态失败:', error) |
| 66 | return { |
| 67 | isRunning: false, |
| 68 | itemCount: 0, |
| 69 | imageCount: 0, |
| 70 | imageStorageSize: 0 |
| 71 | } |
no test coverage detected