feat: init commit
This commit is contained in:
95
src/functions/historyMessages.js
Normal file
95
src/functions/historyMessages.js
Normal file
@@ -0,0 +1,95 @@
|
||||
import { openDB } from 'idb';
|
||||
|
||||
const DB_NAME = 'myplayer';
|
||||
const STORE_NAME = 'historyMessages';
|
||||
|
||||
//初始化数据库
|
||||
const initDB = async () => {
|
||||
try {
|
||||
// 打开数据库,如果不存在则会创建一个新的数据库
|
||||
const db = await openDB('myplayer', 3, {
|
||||
// 数据库升级回调
|
||||
upgrade(db) {
|
||||
console.log('数据库升级中...');
|
||||
// 创建对象存储 groupHistoryMessages
|
||||
if (!db.objectStoreNames.contains('groupHistoryMessages')) {
|
||||
db.createObjectStore('groupHistoryMessages');
|
||||
}
|
||||
// 创建对象存储 historyMessages
|
||||
if (!db.objectStoreNames.contains('historyMessages')) {
|
||||
db.createObjectStore('historyMessages');
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
console.log('数据库初始化成功!');
|
||||
// 在这里可以对数据库进行其他操作,例如读取或写入数据
|
||||
} catch (error) {
|
||||
console.error('初始化 IndexedDB 时发生错误:', error);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
// 打开数据库
|
||||
const getDB = async () => {
|
||||
return openDB(DB_NAME, 3, {
|
||||
upgrade(db) {
|
||||
if (!db.objectStoreNames.contains(STORE_NAME)) {
|
||||
db.createObjectStore(STORE_NAME); // 使用 userId 作为 key
|
||||
}
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
// 存储消息(追加到历史记录中)
|
||||
const saveMessages = async (userId, messages) => {
|
||||
const db = await getDB();
|
||||
try {
|
||||
// 读取现有的历史消息
|
||||
const existingMessages = await loadMessages(userId);
|
||||
|
||||
// 确保 existingMessages 是一个数组
|
||||
const newMessages = Array.isArray(existingMessages) ? existingMessages : [];
|
||||
|
||||
// 将当前消息追加到历史消息中
|
||||
const updatedMessages = [...newMessages, ...messages]; // 将新消息追加到历史消息数组中
|
||||
|
||||
// 保存更新后的历史消息
|
||||
await db.put(STORE_NAME, updatedMessages, userId);
|
||||
} catch (error) {
|
||||
console.error('Error saving messages:', error);
|
||||
}
|
||||
};
|
||||
|
||||
// 获取消息
|
||||
const loadMessages = async (userId) => {
|
||||
const db = await getDB();
|
||||
try {
|
||||
const messages = await db.get(STORE_NAME, userId);
|
||||
return messages || []; // 如果没有消息,返回空数组
|
||||
} catch (error) {
|
||||
console.error('Error loading messages:', error);
|
||||
return [];
|
||||
}
|
||||
};
|
||||
|
||||
// 删除消息
|
||||
const deleteMessages = async (userId,messages) => {
|
||||
const db = await getDB();
|
||||
try {
|
||||
if(messages.length === 0){
|
||||
console.log('删除后没有消息了');
|
||||
await db.delete(STORE_NAME, userId);
|
||||
}else{
|
||||
console.log('删除后还有消息')
|
||||
console.log(messages)
|
||||
await db.put(STORE_NAME, messages, userId);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error deleting messages:', error);
|
||||
}
|
||||
};
|
||||
|
||||
export { saveMessages, loadMessages, deleteMessages, initDB };
|
||||
Reference in New Issue
Block a user