🎨 del(bbs): 删除 bbsTable

This commit is contained in:
BTMuli
2023-04-25 17:18:22 +08:00
parent 35d9382643
commit 27828e3a40
5 changed files with 8 additions and 118 deletions

View File

@@ -83,7 +83,7 @@ onMounted(async () => {
positionTimeGet.value[card.post_id] = getLastPositionTime(card.time.end_stamp - Date.now());
positionTimeEnd.value[card.post_id] = card.time.end_stamp;
});
await setInterval(() => {
setInterval(() => {
positionCards.value.forEach((card) => {
const time = card.time.end_stamp - Date.now();
if (time <= 0) {

View File

@@ -317,7 +317,10 @@ async function backupData () {
}
async function restoreData () {
loadingTitle.value = "正在恢复数据...";
loading.value = true;
const res = await restoreUiafData();
loading.value = false;
if (res !== false) {
snackbarText.value = "数据已恢复!";
snackbarColor.value = "success";
@@ -434,7 +437,10 @@ async function checkDB () {
// 重置 SQLite 数据库
async function resetDB () {
loadingTitle.value = "正在重置数据库...";
loading.value = true;
await TGSqlite.reset();
loading.value = false;
snackbarText.value = "数据库已重置!请载入备份数据。";
snackbarColor.value = "success";
snackbar.value = true;

23
src/types/BBS.d.ts vendored
View File

@@ -1,23 +0,0 @@
/**
* @file types BBS.d.ts
* @description 米游社BBS相关类型定义
* @auther BTMuli<bt-muli@outlook.com>
* @since Alpha v0.1.4
*/
declare namespace BTMuli.SQLite {
/**
* @description BBS帖子数据
* @interface BBSPost
* @since Alpha v0.1.4
* @property {number} id 帖子ID
* @property {created} created 帖子创建时间
* @property {modified} modified 帖子修改时间
* @return BBSPost
*/
export interface BBSPost {
id: number
created: string
modified: string
}
}

View File

@@ -15,7 +15,6 @@ const TGSql = {
app: initAppTable(),
achievement: initAchievementTable(),
achievementSeries: initAchievementSeriesTable(),
bbsPost: initBbsPostTable(),
},
initData: {
all: initSQLiteData(),
@@ -26,12 +25,10 @@ const TGSql = {
insert: {
achievement: insertAchievementData,
achievementSeries: insertAchievementSeriesData,
bbsPost: insertBBSPostData,
UIAF: importUIAFData,
},
update: {
achievement: updateAchievementData,
bbsPost: updateBBSPostData,
},
};
@@ -136,28 +133,6 @@ function initAchievementTable (): string[] {
`);
return sqlRes;
}
/**
* @description 初始化米游社帖子数据表
* @since Alpha v0.1.4
* @returns {string[]} sql
*/
function initBbsPostTable (): string[] {
const sqlRes = [];
// 创建米游社帖子数据表
sqlRes.push(`
CREATE TABLE IF NOT EXISTS BBSPost
(
id INTEGER PRIMARY KEY,
created TEXT DEFAULT NULL,
modified TEXT DEFAULT NULL,
isRead BOOLEAN DEFAULT 0,
updated TEXT DEFAULT NULL
);
`);
return sqlRes;
}
/**
* @description 初始化数据库表
* @since Alpha v0.1.4
@@ -168,7 +143,6 @@ function initSQLiteTable (): string[] {
sqlRes.push(...initAppTable());
sqlRes.push(...initAchievementSeriesTable());
sqlRes.push(...initAchievementTable());
sqlRes.push(...initBbsPostTable());
return sqlRes;
}
@@ -192,11 +166,6 @@ async function initAppData (): Promise<string[]> {
INSERT INTO AppData (key, value, updated)
VALUES ('dataUpdated', '${dataUpdated}', datetime('now', 'localtime'));
`);
// 初始化米游社帖子数据更新时间
sqlRes.push(`
INSERT INTO AppData (key, value, updated)
VALUES ('bbsPostLine', datetime('now', 'localtime'), datetime('now', 'localtime'));
`);
return sqlRes;
}
@@ -279,25 +248,6 @@ function insertAchievementData (data: BTMuli.Genshin.Achievement): string {
return sql;
}
/**
* @description 插入数据-米游社帖子
* @since Alpha v0.1.4
* @param {BTMuli.SQLite.BBSPost} data
* @param {string} bbsPostLine 米游社帖子数据更新时间
* @returns {string} sql
*/
function insertBBSPostData (data: BTMuli.SQLite.BBSPost, bbsPostLine: string): string {
// 将 bbsPostLine 与 data.created 跟 data.modified 比较,取最新的时间
const isRead = data.created <= bbsPostLine && data.modified <= bbsPostLine;
const sql = `
INSERT INTO BBSPost (id, created, modified, isRead, updated)
VALUES (${data.id}, '${data.created}', '${data.modified}', ${isRead ? 1 : 0}, datetime('now', 'localtime'))
ON CONFLICT(id) DO UPDATE
SET modified = '${data.modified}' WHERE id = ${data.id} AND modified != '${data.modified}';
`;
return sql;
}
/**
* @description 更新数据-成就
* @since Alpha v0.1.4
@@ -323,31 +273,6 @@ function updateAchievementData (data: BTMuli.Genshin.Achievement): string {
return sql;
}
/**
* @description 更新数据-米游社帖子
* @since Alpha v0.1.4
* @param {BTMuli.SQLite.BBSPost} data
* @param {boolean} isRead 是否已读
* @returns {string} sql
*/
function updateBBSPostData (data: BTMuli.SQLite.BBSPost, isRead: boolean = false): string {
let sql;
if (isRead) {
sql = `
UPDATE BBSPost
SET isRead = 1, updated = datetime('now', 'localtime')
WHERE id = ${data.id};
`;
} else {
sql = `
UPDATE BBSPost
SET modified = '${data.modified}', isRead = 0, updated = datetime('now', 'localtime')
WHERE id = ${data.id} AND OLD.modified != '${data.modified}';
`;
}
return sql;
}
/**
* @description 导入UIAF数据
* @since Alpha v0.1.4

View File

@@ -8,7 +8,6 @@
import Database from "tauri-plugin-sql-api";
import TGSql from "./TGSql";
import { getUiafStatus } from "./UIAF";
import { TGAppData } from "../data";
const dbLink = await Database.load("sqlite:tauri-genshin.db");
@@ -40,7 +39,6 @@ class TGSqlite {
"AppData",
"Achievements",
"AchievementSeries",
"BBSPost",
];
/**
@@ -117,22 +115,6 @@ class TGSqlite {
return { version, buildTime };
}
/**
* @description 清除 BBSPost 数据
* @memberof TGSqlite
* @since Alpha v0.1.4
* @returns {Promise<void>}
*/
public async clearBbsPost (): Promise<void> {
const sql = [];
sql.push("DROP TABLE IF EXISTS BBSPost;");
sql.push(...TGSql.initTable.bbsPost);
sql.push("UPDATE AppData SET value=datetime('now', 'localtime') WHERE key='bbsPostLine';");
for (const item of sql) {
await this.db.execute(item);
}
}
/**
* @description 获取成就系列列表
* @memberof TGSqlite
@@ -224,7 +206,7 @@ class TGSqlite {
achievements.push({
id: item.id,
status,
timestamp: completed && item.completedTime ? new Date(item.completedTime).getTime() : 0,
timestamp: completed && item.completedTime ? new Date(item.completedTime).getTime() / 1000 : 0,
current: item.progress,
});
}