diff --git a/publish/changeLog.md b/publish/changeLog.md index e1fd79ca..b5da4992 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -1,47 +1,6 @@ 目前本项目的原始发布地址只有 **GitHub** 及 **蓝奏网盘** ,其他渠道均为第三方转载发布,可信度请自行鉴别。 本项目无微信公众号之类的官方账号,谨防被骗。 -### 不兼容性变更 - -该版本修改了同步协议逻辑,同步功能至少需要PC端v2.4.0或移动端v1.1.0版本或同步服务v2.0.0才能连接使用。 - -### 新增 - -- 新增我的列表名右键菜单-排序歌曲-随机乱序功能,使用它可以对选中列表内歌曲进行随机重排(#1440) -- 新增数据同步服务端模式已认证设备列表管理,该功能位置:设置-数据同步-服务端模式-已认证设备列表 -- 新增“不喜欢歌曲”功能,可以在我的列表或者在线列表内歌曲的右击菜单使用,还可以去“设置-其他”手动编辑不喜欢规则,注:“上一曲”、“下一曲”功能将跳过符合“不喜欢歌曲”规则的歌曲,但你仍可以手动播放这些歌曲 -- 新增同步功能对“不喜欢歌曲”列表的同步 -- 新增软件内快捷键“不喜欢该歌曲”设置,全局快捷键“收藏歌曲”、“取消收藏”、“不喜欢该歌曲”设置 -- 新增设置-播放设置-点击相同列表内的歌曲切歌时是否清空已播放列表(随机模式下列表内所有歌曲会重新参与随机)选项,默认关闭 - -### 优化 - -- 优化音效设置-环境音效启用、禁用时的操作效果显示,修复禁用环境音效时仍然可以调整增益、新增预设的问题 -- 过滤翻译歌词或罗马音歌词中只有“//”的行(#1499) -- 点击打开歌单弹窗背景将不再自动关闭弹窗,防止选择输入框里的内容时意外关闭弹窗 -- 优化数据传输逻辑,列表同步指令使用队列机制,保证列表同步操作的顺序 -- 优化桌面歌词在开启 缩放当前播放的歌词 并关闭 延迟歌词滚动 时的歌词滚动位置计算问题,现在歌词滚动应该可以正确滚动到目标位置了 -- 优化歌词在短时间内快速播放时的滚动效果,现在遇到这种情况时滚动将更平滑 - ### 修复 -- 修复字体设置某些字体无法应用的问题 -- 修复搜索提示功能失效的问题(#1452, @Folltoshe) -- 修复我的列表名右键菜单-排序歌曲按专辑名排序无效的问题(#1440) -- 修复若路径存在 # 字符时,软件无法启动的问题 -- 修复搜索框在某些情况下输入内容后搜索时会自动清空的问题(#1472) -- 修复某些tx源歌词因数据异常解析失败的问题 -- 修复windows平台下隐藏窗口后再显示时任务栏按钮丢失的问题 -- 修复首句歌词被提前播放的问题 -- 修复潜在导致列表数据不同步的问题 -- 修复kg无评论时的加载处理问题 - -### 变更 - -- 播放模式应该只适用于列表内的歌曲,所以单曲循环模式不应对“稍后播放”的歌曲有效,该行为现在与移动端一致 -- 随机模式下,通过点击与播放列表相同的列表切歌时,将不再清空已播放列表,即已播放的歌曲不再重新参与随机,若想恢复之前的行为可以去设置-播放设置启用清空已播放列表选项 - -### 其他 - -- 更新 electron 到 v22.3.23 -- 重构同步服务端功能部分代码,使其更易扩展新功能 +- 修复 v2.4.0 的默认数据库版本号不对导致无法启动问题 diff --git a/src/main/worker/dbService/db.ts b/src/main/worker/dbService/db.ts index a440e224..0a0725f5 100644 --- a/src/main/worker/dbService/db.ts +++ b/src/main/worker/dbService/db.ts @@ -1,6 +1,6 @@ import Database from 'better-sqlite3' import path from 'path' -import tables from './tables' +import tables, { DB_VERSION } from './tables' import verifyDB from './verifyDB' import migrateData from './migrate' @@ -10,7 +10,7 @@ let db: Database.Database const initTables = (db: Database.Database) => { db.exec(` ${Array.from(tables.values()).join('\n')} - INSERT INTO "main"."db_info" ("field_name", "field_value") VALUES ('version', '1'); + INSERT INTO "main"."db_info" ("field_name", "field_value") VALUES ('version', '${DB_VERSION}'); `) } diff --git a/src/main/worker/dbService/migrate.ts b/src/main/worker/dbService/migrate.ts index fd40a26f..150c136c 100644 --- a/src/main/worker/dbService/migrate.ts +++ b/src/main/worker/dbService/migrate.ts @@ -1,4 +1,5 @@ import type Database from 'better-sqlite3' +import { DB_VERSION } from './tables' // const migrateV1 = (db: Database.Database) => { // const sql = ` @@ -26,15 +27,19 @@ import type Database from 'better-sqlite3' // } const migrateV1 = (db: Database.Database) => { - const sql = ` - CREATE TABLE "dislike_list" ( - "type" TEXT NOT NULL, - "content" TEXT NOT NULL, - "meta" TEXT - ); - ` - db.exec(sql) - db.prepare('UPDATE "main"."db_info" SET "field_value"=@value WHERE "field_name"=@name').run({ name: 'version', value: '2' }) + // 修复 v2.4.0 的默认数据库版本号不对的问题 + const existsTable = db.prepare('SELECT name FROM "main".sqlite_master WHERE type=\'table\' AND name=\'dislike_list\';').get() + if (!existsTable) { + const sql = ` + CREATE TABLE "dislike_list" ( + "type" TEXT NOT NULL, + "content" TEXT NOT NULL, + "meta" TEXT + ); + ` + db.exec(sql) + } + db.prepare('UPDATE "main"."db_info" SET "field_value"=@value WHERE "field_name"=@name').run({ name: 'version', value: DB_VERSION }) } export default (db: Database.Database) => { diff --git a/src/main/worker/dbService/tables.ts b/src/main/worker/dbService/tables.ts index bcca5a2f..0b71908d 100644 --- a/src/main/worker/dbService/tables.ts +++ b/src/main/worker/dbService/tables.ts @@ -214,3 +214,5 @@ tables.set('dislike_list', ` `) export default tables + +export const DB_VERSION = '2'