Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 9 additions & 24 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -1,21 +1,14 @@
name: Release

env:
YARN_INSTALL_NOPT: yarn add --ignore-platform --ignore-optional
name: Build

on:
push:
branches:
- master
tags:
- v*
workflow_dispatch:

jobs:
release:
build:
runs-on: ${{ matrix.os }}
env:
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.snapcraft_token }}

strategy:
matrix:
Expand All @@ -37,9 +30,7 @@ jobs:
if: runner.os == 'Linux'
run: |
sudo apt-get update &&
sudo apt-get install --no-install-recommends -y rpm &&
sudo apt-get install --no-install-recommends -y libarchive-tools &&
sudo apt-get install --no-install-recommends -y libopenjp2-tools
sudo apt-get install --no-install-recommends -y rpm libarchive-tools libopenjp2-tools

- name: Install Snapcraft (on Ubuntu)
uses: samuelmeuli/action-snapcraft@v3
Expand All @@ -56,14 +47,14 @@ jobs:
- name: Install UNM dependencies for Windows
if: runner.os == 'Windows'
run: |
${{ env.YARN_INSTALL_NOPT }} \
yarn add --ignore-platform --ignore-optional \
@unblockneteasemusic/rust-napi-win32-x64-msvc@${{steps.get_unm_version.outputs.unmver}}
shell: bash

- name: Install UNM dependencies for macOS
if: runner.os == 'macOS'
run: |
${{ env.YARN_INSTALL_NOPT }} \
yarn add --ignore-platform --ignore-optional \
@unblockneteasemusic/rust-napi-darwin-x64@${{steps.get_unm_version.outputs.unmver}} \
@unblockneteasemusic/rust-napi-darwin-arm64@${{steps.get_unm_version.outputs.unmver}} \
dmg-license
Expand All @@ -72,13 +63,13 @@ jobs:
- name: Install UNM dependencies for Linux
if: runner.os == 'Linux'
run: |
${{ env.YARN_INSTALL_NOPT }} \
yarn add --ignore-platform --ignore-optional \
@unblockneteasemusic/rust-napi-linux-x64-gnu@${{steps.get_unm_version.outputs.unmver}} \
@unblockneteasemusic/rust-napi-linux-arm64-gnu@${{steps.get_unm_version.outputs.unmver}} \
@unblockneteasemusic/rust-napi-linux-arm-gnueabihf@${{steps.get_unm_version.outputs.unmver}}
shell: bash

- name: Build/release Electron app
- name: Build Electron app
uses: samuelmeuli/action-electron-builder@v1.6.0
env:
VUE_APP_NETEASE_API_URL: /api
Expand All @@ -87,15 +78,9 @@ jobs:
VUE_APP_LASTFM_API_KEY: 09c55292403d961aa517ff7f5e8a3d9c
VUE_APP_LASTFM_API_SHARED_SECRET: 307c9fda32b3904e53654baff215cb67
with:
# GitHub token, automatically provided to the action
# (No need to define this secret in the repo settings)
github_token: ${{ secrets.github_token }}

# If the commit is tagged with a version (e.g. "v1.0.0"),
# release the app after building
release: ${{ startsWith(github.ref, 'refs/tags/v') }}

use_vue_cli: true
release: false
github_token: ${{ secrets.github_token }}

- uses: actions/upload-artifact@v4
with:
Expand Down
115 changes: 115 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
name: Build Artifacts

env:
YARN_INSTALL_NOPT: yarn add --ignore-platform --ignore-optional

on:
push:
branches:
- master
workflow_dispatch:

jobs:
build:
runs-on: ${{ matrix.os }}

strategy:
matrix:
os: [macos-latest, windows-latest, ubuntu-22.04]

steps:
- name: Check out Git repository
uses: actions/checkout@v3
with:
submodules: recursive

- name: Install Node.js and Yarn
uses: actions/setup-node@v3
with:
node-version: 16
cache: yarn

- name: Install Linux packaging deps
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install --no-install-recommends -y \
rpm libarchive-tools libopenjp2-tools \
libfuse2 # ✅ AppImage required

- id: get_unm_version
name: Get UNM version
run: |
yarn --ignore-optional
unm_version=$(node -e "console.log(require('./node_modules/@unblockneteasemusic/rust-napi/package.json').version)")
echo "::set-output name=unmver::${unm_version}"
shell: bash

- name: Install UNM dependencies for macOS
if: runner.os == 'macOS'
run: |
${{ env.YARN_INSTALL_NOPT }} \
@unblockneteasemusic/rust-napi-darwin-x64@${{steps.get_unm_version.outputs.unmver}} \
@unblockneteasemusic/rust-napi-darwin-arm64@${{steps.get_unm_version.outputs.unmver}} \
dmg-license

- name: Install UNM dependencies for Windows
if: runner.os == 'Windows'
run: |
${{ env.YARN_INSTALL_NOPT }} \
@unblockneteasemusic/rust-napi-win32-x64-msvc@${{steps.get_unm_version.outputs.unmver}}

- name: Install UNM dependencies for Linux
if: runner.os == 'Linux'
run: |
${{ env.YARN_INSTALL_NOPT }} \
@unblockneteasemusic/rust-napi-linux-x64-gnu@${{steps.get_unm_version.outputs.unmver}} \
@unblockneteasemusic/rust-napi-linux-arm64-gnu@${{steps.get_unm_version.outputs.unmver}} \
@unblockneteasemusic/rust-napi-linux-arm-gnueabihf@${{steps.get_unm_version.outputs.unmver}}

- name: Build Electron app
uses: samuelmeuli/action-electron-builder@v1.6.0
env:
VUE_APP_NETEASE_API_URL: /api
VUE_APP_ELECTRON_API_URL: /api
VUE_APP_ELECTRON_API_URL_DEV: http://127.0.0.1:10754
with:
github_token: ${{ secrets.github_token }}
release: false
use_vue_cli: true

# ───────── Upload Artifacts ─────────

- name: Upload mac dmg
uses: actions/upload-artifact@v4
if: runner.os == 'macOS'
with:
name: YesPlayMusic-mac
path: dist_electron/*.dmg
if-no-files-found: ignore

- name: Upload win exe
uses: actions/upload-artifact@v4
if: runner.os == 'Windows'
with:
name: YesPlayMusic-win
path: dist_electron/*Setup*.exe
if-no-files-found: ignore

- name: Upload Linux AppImage
uses: actions/upload-artifact@v4
if: runner.os == 'Linux'
with:
name: YesPlayMusic-linux-AppImage
path: dist_electron/*.AppImage
if-no-files-found: warn

- name: Upload deb/rpm
uses: actions/upload-artifact@v4
if: runner.os == 'Linux'
with:
name: YesPlayMusic-linux-packages
path: |
dist_electron/*.deb
dist_electron/*.rpm
if-no-files-found: ignore
26 changes: 26 additions & 0 deletions src/api/track.js
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,32 @@ export function getLyric(id) {
});
}

/**
* 获取新版歌词
* 说明 : 调用此接口 , 传入音乐 id 可获得对应音乐的新版歌词
* @param {number} id - 音乐 id
*/
export function getLyricNew(id) {
const fetchLatest = () => {
return request({
url: '/lyric/new',
method: 'get',
params: {
id,
},
}).then(result => {
cacheLyric(id, result);
return result;
});
};

fetchLatest();

return getLyricFromCache(id).then(result => {
return result ?? fetchLatest();
});
}

/**
* 新歌速递
* 说明 : 调用此接口 , 可获取新歌速递
Expand Down
5 changes: 5 additions & 0 deletions src/ncmModDef.js
Original file line number Diff line number Diff line change
Expand Up @@ -369,6 +369,11 @@ module.exports = [
route: '/lyric',
module: require('@neteaseapireborn/api/module/lyric'),
},
{
identifier: 'lyric_new',
route: '/lyric/new',
module: require('@neteaseapireborn/api/module/lyric_new'),
},
{
identifier: 'logout',
route: '/logout',
Expand Down