- 新增 messageStore.js 消息存储模块,支持自动保存所有收发消息 - 修改 main.js,在消息转发时自动记录到本地存储 - 修改 preload.js,暴露消息管理 IPC API - 修改 App.js,添加消息历史查看界面 - 统计信息面板(总数/接收/发送/会话数) - 会话列表和消息详情 - 搜索、过滤、分页功能 - 导出 JSON 和清空历史 - 新增完整文档(MESSAGE_HISTORY.md 等) - 新增测试脚本 test-message-history.js 版本:v1.0.1
72 lines
2.4 KiB
JavaScript
72 lines
2.4 KiB
JavaScript
const { contextBridge, ipcRenderer } = require('electron');
|
|
|
|
// 暴露安全的 API 给渲染进程
|
|
contextBridge.exposeInMainWorld('electronAPI', {
|
|
// 配置管理
|
|
getConfig: () => ipcRenderer.invoke('get-config'),
|
|
saveConfig: (config) => ipcRenderer.invoke('save-config', config),
|
|
|
|
// 企业微信连接
|
|
connectWeCom: (botConfig) => ipcRenderer.invoke('connect-wecom', botConfig),
|
|
disconnectWeCom: (botId) => ipcRenderer.invoke('disconnect-wecom', botId),
|
|
|
|
// OpenClaw 连接
|
|
connectOpenClaw: (config) => ipcRenderer.invoke('connect-openclaw', config),
|
|
disconnectOpenClaw: () => ipcRenderer.invoke('disconnect-openclaw'),
|
|
|
|
// 连接状态
|
|
getConnectionStatus: () => ipcRenderer.invoke('get-connection-status'),
|
|
|
|
// 消息发送
|
|
sendWeComMessage: (botId, message) => ipcRenderer.invoke('send-wecom-message', botId, message),
|
|
|
|
// 文件选择
|
|
selectFile: (options) => ipcRenderer.invoke('select-file', options),
|
|
|
|
// 测试消息
|
|
sendTestMessage: (botId, chatId, text) => ipcRenderer.invoke('send-test-message', botId, chatId, text),
|
|
sendTestOpenClawMessage: (text) => ipcRenderer.invoke('send-test-openclaw-message', text),
|
|
|
|
// 事件监听
|
|
onWeComEvent: (callback) => {
|
|
ipcRenderer.on('wecom-event', (event, data) => callback(data));
|
|
},
|
|
|
|
onOpenClawEvent: (callback) => {
|
|
ipcRenderer.on('openclaw-event', (event, data) => callback(data));
|
|
},
|
|
|
|
// OpenClaw 详细日志
|
|
onOpenClawLog: (callback) => {
|
|
ipcRenderer.on('openclaw-log', (event, data) => callback(data));
|
|
},
|
|
|
|
// 移除事件监听
|
|
removeAllListeners: (channel) => {
|
|
ipcRenderer.removeAllListeners(channel);
|
|
},
|
|
|
|
// ============ 消息存储相关 API ============
|
|
|
|
// 获取消息列表
|
|
getMessages: (options) => ipcRenderer.invoke('get-messages', options),
|
|
|
|
// 获取会话列表
|
|
getSessions: () => ipcRenderer.invoke('get-sessions'),
|
|
|
|
// 搜索消息
|
|
searchMessages: (query, options) => ipcRenderer.invoke('search-messages', query, options),
|
|
|
|
// 获取统计数据
|
|
getMessageStats: () => ipcRenderer.invoke('get-message-stats'),
|
|
|
|
// 标记消息为已读
|
|
markMessagesRead: (messageIds) => ipcRenderer.invoke('mark-messages-read', messageIds),
|
|
|
|
// 导出消息
|
|
exportMessages: (options) => ipcRenderer.invoke('export-messages', options),
|
|
|
|
// 清空消息
|
|
clearMessages: (options) => ipcRenderer.invoke('clear-messages', options)
|
|
});
|