mirror of
https://github.com/BTMuli/TeyvatGuide.git
synced 2025-12-12 09:18:14 +08:00
🎨 del(bbs): 删除 bbsTable
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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
23
src/types/BBS.d.ts
vendored
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user