diff --git a/FAQ.md b/FAQ.md index 1204b48b..e2a9e343 100644 --- a/FAQ.md +++ b/FAQ.md @@ -78,6 +78,99 @@ 对于一些完全无法正常显示界面、开启了AERO后问题仍未解决的情况,请阅读下面的 **软件启动后,界面无法显示** 解决。 + +# lx-music-mobile 常见问题 + +在阅读本常见问题后,仍然无法解决你的问题,请提交issue或者加企鹅群`830125506`反馈(无事勿加,入群先看群公告),反馈时请**注明**已阅读常见问题! + +## 歌曲无法试听与下载 + +### 所有歌曲都提示 `请求异常😮,可以多试几次,若还是不行就换一首吧。。。` + +尝试更换网络,如切换到移动网络,若移动网络还是不行则尝试开关下手机的飞行模式后再试,
+若使用家庭网络的话,可尝试将光猫断电5分钟左右再通电联网后播放。 + +### 其他情况 + +尝试在在浏览器打开这个地址`http://ts.tempmusic.tk`,浏览器显示404是正常的,如果不是404那就证明所在网络无法访问接口服务器,对于此类情况请尝试切换其他网络。 + +### 通用解决方法 + +尝试按以下顺序解决: + +1. 尝试更新到最新版本 +2. 尝试切换其他歌曲(或直接搜索该歌曲),若全部歌曲都无法试听与下载则进行下一步 +3. 尝试到 设置-音乐来源 切换到其他接口 +4. 尝试切换网络,比如用手机开热点(所有歌曲都提示请求异常时可通过此方法解决,或等一两天后再试) +5. 若还不行请到这个链接查看详情: +6. 若没有在第5条链接中的第一条评论中看到接口无法使用的说明,则应该是你网络无法访问接口服务器的问题,如果接口有问题我会在那里说明。 + +想要知道是不是自己网络的问题可以看看`http://ts.tempmusic.tk`能不能在浏览器打开,浏览器显示404是正常的,如果不是404那就证明所在网络无法访问接口服务器。 +若网页无法打开或打来不是404,则应该是DNS的问题,可以尝试以下办法: + +1. 将DNS改成自动获取试试 +2. 手动把DNS改一下,不要用360的DNS,可以把DNS改成`114.114.114.114`、`8.8.8.8` + +## 列表多选 + +长按列表将会进入多选模式。 + +- 例子一:想要选中1-5项,进入多选模式后,取消所有选中的内容,切换到区间,点击第一项,再点击第五项即可完成选择; +- 例子二:想要选中1项与第3项,进入多选模式后,点击第一项,再点击第三项即可完成选择; +- 例子三:想要选中当前列表的全部内容,进入多选模式后,点击全选即可完成选择(注:由于**在线列表**使用分页加载,全选只会选择目前已加载的内容,若要完整选择整个在线列表的内容则需要往下滑动将列表加载完毕再进行全选)。 + +注:选完后可用歌曲列表三个点的菜单操作已选的内容 + +## 无法打开外部歌单 + +不支持垮源打开歌单,请**确认**你需要打开的歌单平台是否与软件标签所写的**歌单源**对应(不一样的话请通过右上角切换歌单源);
+对于分享出来的歌单,若打开失败,可尝试先在浏览器中打开后,再从浏览器地址栏复制URL地址到软件打开;
+或者如果你知道歌单 id 也可以直接输入歌单 id 打开。
+ +注:网易源的“我喜欢”歌单无法在未登录的情况下打开,所以你需要手动创建一个歌单后将“我喜欢”里的歌曲移动到该歌单打开 + +## 播放整个歌单或排行榜 + +播放在线列表内的歌曲需要将它们都添加到我的列表才能播放,你可以全选列表内的歌曲然后添加到现有列表或者新创建的列表,然后去播放该列表内的歌曲。 + +## 无法打开外部歌单 + +不支持垮源打开歌单,请**确认**你需要打开的歌单平台是否与软件标签所写的**歌单源**对应(不一样的话请通过右上角切换歌单源);
+对于分享出来的歌单,若打开失败,可尝试先在浏览器中打开后,再从浏览器地址栏复制URL地址到软件打开;
+或者如果你知道歌单 id 也可以直接输入歌单 id 打开。
+ + +## 同步功能的使用(实验性,首次使用前建议先备份一次列表) + +**注意:由于同步传输时的数据是明文传输,请在受信任的网络下使用此功能!**
+此功能需要配合PC端使用,移动端与PC端处在同一个局域网(路由器的网络)下时,可以多端实时同步歌曲列表,使用方法: + +1. 在PC端的设置-数据同步开启同步功能(这时如果出现安全软件、防火墙等提示网络连接弹窗时需要点击允许) +2. 在移动端的设置-同步-同步服务器地址输入PC端显示的同步服务器地址(如果显示可以多个,则输入与**移动端上显示的本机地址**最相似的那个),端口号与PC端的同步端口一致 +3. 输入完这两项后点击“启动同步” +4. 若连接成功,对于首次同步时,若两边的设备的列表不为空,则PC端会弹出选择列表同步方式的弹窗,同步方式的说明弹窗下面有介绍 + +对于连接同步失败的可能原因: + +- 此功能需要PC端与移动端都连接在同一个路由器下的网络才能使用 +- 路由器若开启了AP隔离,则此功能无法使用 +- 检查防火墙是否拦截了PC端的服务端口 + +## 更新已收藏的在线歌单 + +该功能仅对直接从歌单详情页点“收藏”按钮收藏的歌单有效,可右击已收藏的列表名从弹出的菜单中选择“更新”使用该功能, + +需要注意的是:这将会覆盖本地的目标列表,歌曲将被替换成最新的在线列表。 + +## 杀毒软件提示有病毒或恶意行为 + +本人只能保证我写的代码不包含任何**恶意代码**、**收集用户信息**的行为,并且软件代码已开源,请自行查阅,软件安装包也是由CI拉取源代码构建,构建日志:[GitHub Actions](https://github.com/lyswhut/lx-music-mobile/actions)
+尽管如此,但这不意味着软件是100%安全的,由于软件使用了第三方依赖,当这些依赖存在恶意行为时([供应链攻击](https://docs.microsoft.com/zh-cn/windows/security/threat-protection/intelligence/supply-chain-malware)),软件也将会受到牵连,所以我只能尽量选择使用较多人用、信任度较高的依赖。
+当然,以上说明建立的前提是在你所用的安装包是从**本项目主页上写的链接**下载的,或者有相关能力者还可以下载源代码自己构建安装包。 + +最后,若出现杀毒软件报毒、存在恶意行为,请自行判断选择是否继续使用本软件! + + ### Linux 下界面异常 根据Electron里issue的[解决方案](https://github.com/electron/electron/issues/2170#issuecomment-736223269),
diff --git a/package-lock.json b/package-lock.json index 01d4f1c7..41a2f7b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6452,9 +6452,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "eiows": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/eiows/-/eiows-3.6.0.tgz", - "integrity": "sha512-B2A6GXQ153/XVwecF2mkMNa108TJWGBXTBfHSmW2hf86D26cp3+lAhwizgEsV1mhcuZYgNQNeddgh4J5kYi7ng==" + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/eiows/-/eiows-3.6.1.tgz", + "integrity": "sha512-BvTdSAMiRZ7+2xpJNJ+Q6pCbH83ZwJf1kXKKaSPsj297IIUpiY8t6YpvAZKxZet6Ags9okWuCEGu9el+0HKnHg==" }, "ejs": { "version": "3.1.6", @@ -10235,15 +10235,6 @@ "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, "lower-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", diff --git a/package.json b/package.json index 4a1e8097..673c8575 100644 --- a/package.json +++ b/package.json @@ -230,7 +230,7 @@ "crypto-js": "^4.1.1", "electron-log": "^4.4.1", "bufferutil": "^4.0.3", - "eiows": "^3.6.0", + "eiows": "^3.6.1", "electron-store": "^8.0.0", "electron-updater": "^4.3.9", "http-terminator": "^3.0.0", @@ -242,7 +242,7 @@ "needle": "^2.8.0", "node-id3": "^0.2.3", "request": "^2.88.2", - "socket.io": "^4.1.2", + "socket.io": "^4.1.3", "utf-8-validate": "^5.0.5", "vue": "^2.6.14", "vue-i18n": "^8.25.0", diff --git a/publish/changeLog.md b/publish/changeLog.md index 8dddab24..ba21f092 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -1,3 +1,8 @@ +### 新增 + +- 新增局域网同步功能(实验性,首次使用前建议先备份一次列表),此功能需要配合PC端使用,移动端与PC端处在同一个局域网(路由器的网络)下时,可以多端实时同步歌曲列表,使用问题请看"常见问题"。 + + ### 修复 - 修复导入kg歌单最多只能加载100、500首歌曲的问题。注:现在可以加载1000+首歌曲的歌单,但出于未知原因会导致部分歌曲无法加载(可能是无版权导致的),目前酷狗码仍然最多只能加载500首歌 diff --git a/src/common/defaultSetting.js b/src/common/defaultSetting.js index abf9a439..fe0764cb 100644 --- a/src/common/defaultSetting.js +++ b/src/common/defaultSetting.js @@ -87,7 +87,7 @@ const defaultSetting = { }, sync: { enable: false, - port: 23332, + port: '23332', }, windowSizeId: 2, themeId: 0, diff --git a/src/main/modules/sync/server/syncList.js b/src/main/modules/sync/server/syncList.js index e2df19ab..5897e385 100644 --- a/src/main/modules/sync/server/syncList.js +++ b/src/main/modules/sync/server/syncList.js @@ -8,11 +8,8 @@ const { common: COMMON_EVENT_NAME } = require('@main/events/_name') const { throttle } = require('@common/utils') let io -// const checkFile = path => { -// fsPromises.access(path, fs.constants.R_OK | fs.constants.W_OK) -// .then(() => console.log('can access')) -// .catch(() => console.error('cannot access')) -// } +let syncingId = null +const wait = (time = 1000) => new Promise((resolve, reject) => setTimeout(resolve, time)) const getRemoteListData = socket => new Promise((resolve, reject) => { console.log('getRemoteListData') @@ -379,10 +376,19 @@ const syncList = async socket => { return handleMergeListDataFromSnapshot(socket, fileData) } -module.exports = (_io, socket) => { +const checkSyncQueue = async() => { + if (!syncingId) return + await wait() + return checkSyncQueue() +} +module.exports = async(_io, socket) => { io = _io + await checkSyncQueue() + syncingId = socket.data.keyInfo.clientId return syncList(socket).then(newListData => { registerUpdateSnapshotTask(socket, { ...newListData }) return finishedSync(socket) + }).finally(() => { + syncingId = null }) } diff --git a/src/renderer/lang/en-us/view/setting.json b/src/renderer/lang/en-us/view/setting.json index b3ce74f6..da3bf86b 100644 --- a/src/renderer/lang/en-us/view/setting.json +++ b/src/renderer/lang/en-us/view/setting.json @@ -134,7 +134,7 @@ "sync_address": "Synchronization service address: {address}", "sync_auth_code": "Connection code: {code}", "sync_device": "Connected devices: {devices}", - "sync_enable": "Enable synchronization", + "sync_enable": "Enable the synchronization function (please use it under a trusted network)", "sync_port": "Sync port settings", "sync_port_tip": "Please enter the synchronization service port number", "sync_refresh_code": "Refresh the connection code", diff --git a/src/renderer/lang/zh-cn/view/setting.json b/src/renderer/lang/zh-cn/view/setting.json index e43d4aef..56c296e6 100644 --- a/src/renderer/lang/zh-cn/view/setting.json +++ b/src/renderer/lang/zh-cn/view/setting.json @@ -134,7 +134,7 @@ "sync_address": "同步服务地址:{address}", "sync_auth_code": "连接码:{code}", "sync_device": "已连接的设备:{devices}", - "sync_enable": "启用同步功能", + "sync_enable": "启用同步功能(请在受信任的网络下使用)", "sync_port": "同步端口设置", "sync_port_tip": "请输入同步服务端口号", "sync_refresh_code": "刷新连接码", diff --git a/src/renderer/lang/zh-tw/view/setting.json b/src/renderer/lang/zh-tw/view/setting.json index 5dce5ebd..c39a5268 100644 --- a/src/renderer/lang/zh-tw/view/setting.json +++ b/src/renderer/lang/zh-tw/view/setting.json @@ -134,7 +134,7 @@ "sync_address": "同步服務地址:{address}", "sync_auth_code": "連接碼:{code}", "sync_device": "已連接的設備:{devices}", - "sync_enable": "啟用同步功能", + "sync_enable": "啟用同步功能(請在受信任的網絡下使用)", "sync_port": "同步端口設置", "sync_port_tip": "請輸入同步服務端口號", "sync_refresh_code": "刷新連接碼",