From 70d2713643b5d4834c5c78c0c589a12a52d786d7 Mon Sep 17 00:00:00 2001 From: Karbob Date: Sat, 19 Nov 2022 17:39:25 +0800 Subject: [PATCH 01/25] refactor(dockerfile): use `awk` to find NCMAPI version --- Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index ac22342..a2f91f1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -39,9 +39,10 @@ RUN echo $'server { \n\ COPY --from=build /app/package.json /usr/local/lib/ -RUN apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.14/main libuv jq \ +RUN apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.14/main libuv \ && apk add --no-cache --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.14/main nodejs npm \ - && npm i -g NeteaseCloudMusicApi@"$(jq -r '.dependencies.NeteaseCloudMusicApi' /usr/local/lib/package.json)" + && npm i -g $(awk -F \" '{if($2=="NeteaseCloudMusicApi") print $2"@"$4}' /usr/local/lib/package.json) \ + && rm -f /usr/local/lib/package.json COPY --from=build /app/dist /usr/share/nginx/html From 99371def54f655fc0ddfd4ad7446980e199ba915 Mon Sep 17 00:00:00 2001 From: Karbob Date: Sat, 19 Nov 2022 18:35:29 +0800 Subject: [PATCH 02/25] refactor(dockerfile): separate nginx config from `Dockerfile` --- Dockerfile | 29 +---------------------------- docker/nginx.conf.example | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 28 deletions(-) create mode 100644 docker/nginx.conf.example diff --git a/Dockerfile b/Dockerfile index a2f91f1..19d3817 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,34 +8,6 @@ COPY . . RUN yarn build FROM nginx:1.20.2-alpine as app -RUN echo $'server { \n\ - gzip on;\n\ - listen 80; \n\ - listen [::]:80; \n\ - server_name localhost; \n\ - \n\ - location / { \n\ - root /usr/share/nginx/html; \n\ - index index.html; \n\ - try_files $uri $uri/ /index.html; \n\ - } \n\ - \n\ - location @rewrites { \n\ - rewrite ^(.*)$ /index.html last; \n\ - } \n\ - \n\ - location /api/ { \n\ - proxy_buffer_size 128k; \n\ - proxy_buffers 16 32k; \n\ - proxy_busy_buffers_size 128k; \n\ - proxy_set_header Host $host; \n\ - proxy_set_header X-Real-IP $remote_addr; \n\ - proxy_set_header X-Forwarded-For $remote_addr; \n\ - proxy_set_header X-Forwarded-Host $remote_addr; \n\ - proxy_set_header X-NginX-Proxy true; \n\ - proxy_pass http://localhost:3000/; \n\ - } \n\ - }' > /etc/nginx/conf.d/default.conf COPY --from=build /app/package.json /usr/local/lib/ @@ -44,6 +16,7 @@ RUN apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.14/m && npm i -g $(awk -F \" '{if($2=="NeteaseCloudMusicApi") print $2"@"$4}' /usr/local/lib/package.json) \ && rm -f /usr/local/lib/package.json +COPY --from=build /app/docker/nginx.conf.example /etc/nginx/conf.d/default.conf COPY --from=build /app/dist /usr/share/nginx/html CMD nginx ; exec npx NeteaseCloudMusicApi diff --git a/docker/nginx.conf.example b/docker/nginx.conf.example new file mode 100644 index 0000000..cdab218 --- /dev/null +++ b/docker/nginx.conf.example @@ -0,0 +1,28 @@ +server { + gzip on; + listen 80; + listen [::]:80; + server_name localhost; + + location / { + root /usr/share/nginx/html; + index index.html; + try_files $uri $uri/ /index.html; + } + + location @rewrites { + rewrite ^(.*)$ /index.html last; + } + + location /api/ { + proxy_buffers 16 32k; + proxy_buffer_size 128k; + proxy_busy_buffers_size 128k; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Forwarded-Host $remote_addr; + proxy_set_header X-NginX-Proxy true; + proxy_pass http://localhost:3000/; + } +} From 75d3e28ef86d2876372b6e33607d8e003f50eefa Mon Sep 17 00:00:00 2001 From: Karbob Date: Sat, 19 Nov 2022 18:48:05 +0800 Subject: [PATCH 03/25] feat: mount local time and time zone --- docker-compose.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index efc2826..221b66d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,6 +4,9 @@ services: context: . image: yesplaymusic container_name: YesPlayMusic + volumes: + - /etc/localtime:/etc/localtime:ro + - /etc/timezone:/etc/timezone:ro ports: - 80:80 restart: always From c6804decfcb1baf21e9a6c4c5cd13dd7f1bad7f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8D=89=E6=96=B9=E5=9D=97?= <46253950+GrassBlock1@users.noreply.github.com> Date: Thu, 22 Dec 2022 11:27:30 +0800 Subject: [PATCH 04/25] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0api=E4=BB=A5?= =?UTF-8?q?=E5=B0=9D=E8=AF=95=E8=A7=A3=E5=86=B3=E9=82=AE=E7=AE=B1=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 37ce354..3f5d094 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "main": "background.js", "dependencies": { "@unblockneteasemusic/rust-napi": "^0.3.0-pre.1", - "NeteaseCloudMusicApi": "^4.5.2", + "NeteaseCloudMusicApi": "^4.8.4", "axios": "^0.26.1", "change-case": "^4.1.2", "cli-color": "^2.0.0", From 241de709dae01568b190059ca916c30b96689afc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8D=89=E6=96=B9=E5=9D=97?= <46253950+GrassBlock1@users.noreply.github.com> Date: Tue, 24 Jan 2023 20:09:33 +0800 Subject: [PATCH 05/25] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0=E4=BE=9D?= =?UTF-8?q?=E8=B5=96=E4=BB=A5=E8=A7=A3=E5=86=B3=E6=89=8B=E6=9C=BA=E5=8F=B7?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E9=97=AE=E9=A2=98=EF=BC=9BUnblockNeteaseMusi?= =?UTF-8?q?c=20=E6=9B=B4=E6=96=B0=20(#1915)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: 更新api以尝试解决邮箱登录问题 * fix: 又双更新api版本以修复手机号登录问题 (可能 * deps: [测试]更新UNM到0.4.0 --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 3f5d094..23954ce 100644 --- a/package.json +++ b/package.json @@ -23,8 +23,8 @@ }, "main": "background.js", "dependencies": { - "@unblockneteasemusic/rust-napi": "^0.3.0-pre.1", - "NeteaseCloudMusicApi": "^4.8.4", + "@unblockneteasemusic/rust-napi": "^0.4.0", + "NeteaseCloudMusicApi": "^4.8.7", "axios": "^0.26.1", "change-case": "^4.1.2", "cli-color": "^2.0.0", From 210e65dd9a2bebf2cdfad8cfdbf3c508cedb59fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=BF=E3=82=A4=E3=83=A0=E3=83=A9=E3=82=A4=E3=83=B3?= <53483352+Nep-Timeline@users.noreply.github.com> Date: Fri, 27 Jan 2023 01:11:48 +0800 Subject: [PATCH 06/25] update copyright year (#1917) --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index d95eafc..7385fd2 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2020-2022 qier222 +Copyright (c) 2020-2023 qier222 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From 622f95439d00857d915178f3ed4a2f8a47bde96d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=BF=E3=82=A4=E3=83=A0=E3=83=A9=E3=82=A4=E3=83=B3?= <53483352+Nep-Timeline@users.noreply.github.com> Date: Sat, 28 Jan 2023 11:53:54 +0800 Subject: [PATCH 07/25] fix: player volume bug (#1918) * fix: player volume bug * Update Player.js * Update Player.js * Update Player.js * Update Player.js --- src/utils/Player.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/utils/Player.js b/src/utils/Player.js index 21c90f6..41563d6 100644 --- a/src/utils/Player.js +++ b/src/utils/Player.js @@ -146,7 +146,7 @@ export default class { } set volume(volume) { this._volume = volume; - Howler.volume(volume); + this._howler?.volume(volume) } get list() { return this.shuffle ? this._shuffledList : this._list; @@ -207,7 +207,7 @@ export default class { _init() { this._loadSelfFromLocalStorage(); - Howler.volume(this.volume); + this._howler?.volume(this.volume); if (this._enabled) { // 恢复当前播放歌曲 From 2f452dbe7475d2836939a7ae0ebd1c7ebaa96864 Mon Sep 17 00:00:00 2001 From: qier222 Date: Sat, 28 Jan 2023 12:06:57 +0800 Subject: [PATCH 08/25] fix: bugs --- src/utils/Player.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/utils/Player.js b/src/utils/Player.js index 41563d6..98ab528 100644 --- a/src/utils/Player.js +++ b/src/utils/Player.js @@ -146,7 +146,7 @@ export default class { } set volume(volume) { this._volume = volume; - this._howler?.volume(volume) + this._howler?.volume(volume); } get list() { return this.shuffle ? this._shuffledList : this._list; @@ -437,7 +437,7 @@ export default class { 'unblock-music', store.state.settings.unmSource, track, - /** @type {import("@unblockneteasemusic/rust-napi").Context} */ ({ + /** @type {import("@unblockneteasemusic/rust-napi").Context} */({ enableFlac: store.state.settings.unmEnableFlac || null, proxyUri: store.state.settings.unmProxyUri || null, searchMode: determineSearchMode(store.state.settings.unmSearchMode), From 2a0af8f9752e731b46bbb1ac041edb65314ba4fa Mon Sep 17 00:00:00 2001 From: qier222 Date: Sat, 28 Jan 2023 12:09:39 +0800 Subject: [PATCH 09/25] fix: update version --- package.json | 2 +- src/utils/Player.js | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 23954ce..02c2174 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "yesplaymusic", - "version": "0.4.5", + "version": "0.4.6", "private": true, "description": "A third party music player for Netease Music", "author": "qier222", diff --git a/src/utils/Player.js b/src/utils/Player.js index 98ab528..6fc8cdd 100644 --- a/src/utils/Player.js +++ b/src/utils/Player.js @@ -432,12 +432,11 @@ export default class { } }; - /** @type {import("@unblockneteasemusic/rust-napi").RetrievedSongInfo | null} */ const retrieveSongInfo = await ipcRenderer.invoke( 'unblock-music', store.state.settings.unmSource, track, - /** @type {import("@unblockneteasemusic/rust-napi").Context} */({ + { enableFlac: store.state.settings.unmEnableFlac || null, proxyUri: store.state.settings.unmProxyUri || null, searchMode: determineSearchMode(store.state.settings.unmSearchMode), @@ -446,7 +445,7 @@ export default class { 'qq:cookie': store.state.settings.unmQQCookie || null, 'ytdl:exe': store.state.settings.unmYtDlExe || null, }, - }) + } ); if (store.state.settings.automaticallyCacheSongs && retrieveSongInfo?.url) { From ce738f6b4098d3dbe47cf7ffcc1abea1b83baf14 Mon Sep 17 00:00:00 2001 From: qier222 Date: Mon, 30 Jan 2023 12:37:25 +0800 Subject: [PATCH 10/25] revert: change port to workaround 21H2's port --- .env.example | 2 +- .github/workflows/build.yaml | 2 +- package.json | 2 +- src/background.js | 10 +++++----- src/electron/services.js | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.env.example b/.env.example index 9eeada5..7c0058a 100644 --- a/.env.example +++ b/.env.example @@ -1,6 +1,6 @@ VUE_APP_NETEASE_API_URL=/api VUE_APP_ELECTRON_API_URL=/api -VUE_APP_ELECTRON_API_URL_DEV=http://127.0.0.1:35216 +VUE_APP_ELECTRON_API_URL_DEV=http://127.0.0.1:10754 VUE_APP_LASTFM_API_KEY=09c55292403d961aa517ff7f5e8a3d9c VUE_APP_LASTFM_API_SHARED_SECRET=307c9fda32b3904e53654baff215cb67 DEV_SERVER_PORT=20201 diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index dacb51f..ff3fd3b 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -82,7 +82,7 @@ jobs: uses: samuelmeuli/action-electron-builder@v1.6.0 env: VUE_APP_ELECTRON_API_URL: /api - VUE_APP_ELECTRON_API_URL_DEV: http://127.0.0.1:35216 + VUE_APP_ELECTRON_API_URL_DEV: http://127.0.0.1:10754 VUE_APP_LASTFM_API_KEY: 09c55292403d961aa517ff7f5e8a3d9c VUE_APP_LASTFM_API_SHARED_SECRET: 307c9fda32b3904e53654baff215cb67 with: diff --git a/package.json b/package.json index 02c2174..3bf4042 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "yesplaymusic", - "version": "0.4.6", + "version": "0.4.7", "private": true, "description": "A third party music player for Netease Music", "author": "qier222", diff --git a/src/background.js b/src/background.js index 1a98c6b..1d4fdba 100644 --- a/src/background.js +++ b/src/background.js @@ -66,7 +66,7 @@ const closeOnLinux = (e, win, store) => { win.hide(); //调用 最小化实例方法 } else if (result.response === 1) { win = null; - app.exit(); // exit()直接关闭客户端,不会执行quit(); + app.exit(); //exit()直接关闭客户端,不会执行quit(); } }) .catch(err => { @@ -153,7 +153,7 @@ class Background { const expressApp = express(); expressApp.use('/', express.static(__dirname + '/')); - expressApp.use('/api', expressProxy('http://127.0.0.1:35216')); + expressApp.use('/api', expressProxy('http://127.0.0.1:10754')); expressApp.use('/player', (req, res) => { this.window.webContents .executeJavaScript('window.yesplaymusic.player') @@ -166,7 +166,7 @@ class Background { }); }); }); - this.expressApp = expressApp.listen(41342, '127.0.0.1'); + this.expressApp = expressApp.listen(27232, '127.0.0.1'); } createWindow() { @@ -257,8 +257,8 @@ class Background { createProtocol('app'); this.window.loadURL( showLibraryDefault - ? 'http://localhost:41342/#/library' - : 'http://localhost:41342' + ? 'http://localhost:27232/#/library' + : 'http://localhost:27232' ); } } diff --git a/src/electron/services.js b/src/electron/services.js index d5c93d8..1840672 100644 --- a/src/electron/services.js +++ b/src/electron/services.js @@ -7,7 +7,7 @@ export async function startNeteaseMusicApi() { // Load the NCM API. await server.serveNcmApi({ - port: 35216, + port: 10754, moduleDefs: require('../ncmModDef'), }); } From c89ebbdd22fcccaccc2af3492b5c42fd0da6e24a Mon Sep 17 00:00:00 2001 From: Younglina Date: Wed, 22 Mar 2023 14:16:47 +0800 Subject: [PATCH 11/25] =?UTF-8?q?fix:=20album.company=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E9=97=AE=E9=A2=98=20(#2009)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/album.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/album.vue b/src/views/album.vue index a8350df..f444395 100644 --- a/src/views/album.vue +++ b/src/views/album.vue @@ -96,7 +96,7 @@ {{ $t('album.released') }} {{ album.publishTime | formatDate('MMMM D, YYYY') }} - From 1cb3e4b29f96236ded8ae8b8153edba3b8543899 Mon Sep 17 00:00:00 2001 From: qier222 Date: Mon, 27 Mar 2023 00:09:47 +0800 Subject: [PATCH 12/25] Update README.md --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 34efc41..6764526 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,11 @@ [![Library][library-screenshot]](https://music.qier222.com) + +## 全新版本 +全新2.0 Alpha测试版已发布,欢迎前往 [Releases](https://github.com/qier222/YesPlayMusic/releases) 页面下载。 +当前版本将会进入维护模式,除重大bug修复外,不会再更新新功能。 + ## ✨ 特性 - ✅ 使用 Vue.js 全家桶开发 From 7b97ac01398ae125ca3cd79091266057ce001510 Mon Sep 17 00:00:00 2001 From: moonrailgun Date: Sat, 8 Apr 2023 23:08:52 +0800 Subject: [PATCH 13/25] chore: define node engines (#1943) The `@achrinza/node-ipc` version we use in 1.x does not allow a version of Node.js greater than 17. As YesPlayMusic has been in maintenance mode, we define our supported Node.js engine version rather than upgrade this dependency. It may indicate the Vercel platform to not use 18 (or greater) in their deployment. The error message is: error @achrinza/node-ipc@9.2.2: The engine "node" is incompatible with this module. Expected version "8 || 10 || 12 || 14 || 16 || 17". Got "18.12.1" --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index 3bf4042..954c9c2 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,9 @@ "netease_api:run": "npx NeteaseCloudMusicApi" }, "main": "background.js", + "engines": { + "node": "14 || 16" + }, "dependencies": { "@unblockneteasemusic/rust-napi": "^0.4.0", "NeteaseCloudMusicApi": "^4.8.7", From 8a50337854a91914a8e4a81e9be181a7678b20fa Mon Sep 17 00:00:00 2001 From: Younglina Date: Sat, 8 Apr 2023 23:12:13 +0800 Subject: [PATCH 14/25] =?UTF-8?q?fix(tracklist):=20TrackListItem=20?= =?UTF-8?q?=E5=BA=8F=E5=8F=B7=E9=97=AE=E9=A2=98=20(#2011)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 直接使用 track.no 可能导致歌曲编号重复。改使用曲目在 阵列中的实际索引位置。 --- src/components/TrackList.vue | 1 + src/components/TrackListItem.vue | 3 ++- src/views/album.vue | 4 +--- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/TrackList.vue b/src/components/TrackList.vue index 6743f3f..ebb5046 100644 --- a/src/components/TrackList.vue +++ b/src/components/TrackList.vue @@ -65,6 +65,7 @@ v-for="(track, index) in tracks" :key="itemKey === 'id' ? track.id : `${track.id}${index}`" :track-prop="track" + :track-no="index + 1" :highlight-playing-track="highlightPlayingTrack" @dblclick.native="playThisList(track.id || track.songId)" @click.right.native="openMenu($event, track, index)" diff --git a/src/components/TrackListItem.vue b/src/components/TrackListItem.vue index 907e884..3eef677 100644 --- a/src/components/TrackListItem.vue +++ b/src/components/TrackListItem.vue @@ -21,7 +21,7 @@ style="height: 14px; width: 14px" > - {{ track.no }} + {{ trackNo }}