mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-20 15:10:59 +08:00
78 lines
2.4 KiB
JavaScript
78 lines
2.4 KiB
JavaScript
// 检查重复消息的脚本
|
||
const { app } = require('electron');
|
||
const path = require('path');
|
||
const fs = require('fs');
|
||
|
||
// 获取数据库文件路径
|
||
const userDataPath = app.getPath('userData');
|
||
const dbFilePath = path.join(userDataPath, 'CherryStudio.db');
|
||
|
||
console.log('数据库文件路径:', dbFilePath);
|
||
|
||
// 检查文件是否存在
|
||
if (fs.existsSync(dbFilePath)) {
|
||
console.log('数据库文件存在');
|
||
|
||
// 读取数据库内容
|
||
const dbContent = fs.readFileSync(dbFilePath, 'utf8');
|
||
|
||
// 解析数据库内容
|
||
try {
|
||
const data = JSON.parse(dbContent);
|
||
|
||
// 检查topics表中的消息
|
||
if (data.topics) {
|
||
console.log('找到topics表,共有', data.topics.length, '个主题');
|
||
|
||
// 遍历每个主题
|
||
data.topics.forEach(topic => {
|
||
console.log(`检查主题: ${topic.id}`);
|
||
|
||
if (topic.messages && Array.isArray(topic.messages)) {
|
||
console.log(` 主题消息数量: ${topic.messages.length}`);
|
||
|
||
// 检查重复消息
|
||
const messageIds = new Set();
|
||
const duplicates = [];
|
||
|
||
topic.messages.forEach(message => {
|
||
if (messageIds.has(message.id)) {
|
||
duplicates.push(message.id);
|
||
} else {
|
||
messageIds.add(message.id);
|
||
}
|
||
});
|
||
|
||
if (duplicates.length > 0) {
|
||
console.log(` 发现${duplicates.length}条重复消息ID:`, duplicates);
|
||
} else {
|
||
console.log(' 未发现重复消息ID');
|
||
}
|
||
|
||
// 检查重复的askId (对于助手消息)
|
||
const askIds = {};
|
||
topic.messages.forEach(message => {
|
||
if (message.role === 'assistant' && message.askId) {
|
||
if (!askIds[message.askId]) {
|
||
askIds[message.askId] = [];
|
||
}
|
||
askIds[message.askId].push(message.id);
|
||
}
|
||
});
|
||
|
||
// 输出每个askId对应的助手消息数量
|
||
Object.entries(askIds).forEach(([askId, messageIds]) => {
|
||
if (messageIds.length > 1) {
|
||
console.log(` askId ${askId} 有 ${messageIds.length} 条助手消息`);
|
||
}
|
||
});
|
||
}
|
||
});
|
||
}
|
||
} catch (error) {
|
||
console.error('解析数据库内容失败:', error);
|
||
}
|
||
} else {
|
||
console.log('数据库文件不存在');
|
||
}
|