diff --git a/src/components/t-position.vue b/src/components/t-position.vue index 0223164c..7a57b3b2 100644 --- a/src/components/t-position.vue +++ b/src/components/t-position.vue @@ -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) { diff --git a/src/pages/Config.vue b/src/pages/Config.vue index e8b11b90..f4ddcf82 100644 --- a/src/pages/Config.vue +++ b/src/pages/Config.vue @@ -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; diff --git a/src/types/BBS.d.ts b/src/types/BBS.d.ts deleted file mode 100644 index bd7ded66..00000000 --- a/src/types/BBS.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * @file types BBS.d.ts - * @description 米游社BBS相关类型定义 - * @auther BTMuli - * @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 - } -} diff --git a/src/utils/TGSql.ts b/src/utils/TGSql.ts index f2eac02d..fca773d5 100644 --- a/src/utils/TGSql.ts +++ b/src/utils/TGSql.ts @@ -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 { 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 diff --git a/src/utils/TGSqlite.ts b/src/utils/TGSqlite.ts index 7a6ef19d..9931f7a8 100644 --- a/src/utils/TGSqlite.ts +++ b/src/utils/TGSqlite.ts @@ -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} - */ - public async clearBbsPost (): Promise { - 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, }); }