mirror of
https://wget.la/https://github.com/Wxw-Gu/WechatExplorer
synced 2026-10-05 04:20:34 +08:00
- 支持结构化 AI 群聊日报及移动端长图导出 - 支持日报时间范围和消息类型筛选 - 支持群成员及当前用户群昵称解析 - 移除消息加载更多并优化图片懒加载 - 增强头像处理与敏感密钥日志保护
67 lines
2.6 KiB
TypeScript
67 lines
2.6 KiB
TypeScript
import { ElectronAPI } from '@electron-toolkit/preload'
|
|
import { Contact, Message } from '../shared/types'
|
|
import { GroupReportExportRequest, GroupReportExportResult } from '../shared/group-report'
|
|
|
|
export type ParsedContent =
|
|
| { type: 'text'; content: string }
|
|
| { type: 'voice'; duration?: number }
|
|
| { type: 'location'; poiname?: string; label?: string; lat: number; lng: number }
|
|
| { type: 'card'; username: string; nickname: string; avatarUrl?: string }
|
|
| { type: 'share'; title: string; des?: string; url: string; appname?: string; type?: string }
|
|
| { type: 'voip'; duration?: number; status: string; roomType?: number }
|
|
| { type: 'image'; md5?: string; datName?: string; aeskey?: string; encrypVer?: number }
|
|
| {
|
|
type: 'sticker'
|
|
md5?: string
|
|
url?: string
|
|
thumbUrl?: string
|
|
encryptUrl?: string
|
|
aeskey?: string
|
|
}
|
|
| {
|
|
type: 'quote'
|
|
title?: string
|
|
content?: string
|
|
sender?: string
|
|
quotedContent?: string
|
|
quotedSender?: string
|
|
quotedType?: string
|
|
}
|
|
| { type: 'system'; content: string }
|
|
| { type: 'unknown'; raw: string }
|
|
|
|
declare global {
|
|
interface Window {
|
|
electron: ElectronAPI
|
|
api: {
|
|
initDb: (key: string) => Promise<boolean | { success: boolean; error?: string }>
|
|
getContacts: (filter?: string) => Promise<Contact[]>
|
|
getMessages: (userMd5: string, startTime?: number, endTime?: number) => Promise<Message[]>
|
|
search: (keyword: string) => Promise<string | null>
|
|
aiChat: (
|
|
messages: { role: string; content: string }[],
|
|
options?: { apiKey?: string; model?: string; baseURL?: string }
|
|
) => Promise<{ success: boolean; data?: string; error?: string }>
|
|
copyImage: (base64String: string) => Promise<{ success: boolean; error?: string }>
|
|
getVoiceData: (
|
|
sessionId: string,
|
|
localId: number,
|
|
createTime: number,
|
|
svrId?: string | number
|
|
) => Promise<{ success: boolean; data?: string; error?: string }>
|
|
parseMessage: (content: string, messageType: number) => Promise<ParsedContent>
|
|
getImage: (
|
|
imageMd5?: string,
|
|
imageDatNameOrThumb?: string | boolean,
|
|
sessionId?: string
|
|
) => Promise<{ success: boolean; data?: string; error?: string }>
|
|
getSticker: (
|
|
cdnUrl?: string,
|
|
md5?: string
|
|
) => Promise<{ success: boolean; data?: string; error?: string }>
|
|
exportGroupReport: (request: GroupReportExportRequest) => Promise<GroupReportExportResult>
|
|
revealGroupReport: (filePath: string) => Promise<{ success: boolean; error?: string }>
|
|
}
|
|
}
|
|
}
|