docs: 出了点意外再建一次
52
.github/workflows/build-docs.yml
vendored
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
|
||||||
|
name: 部署文档
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- docs
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy-gh-pages:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
# 如果你文档需要 Git 子模块,取消注释下一行
|
||||||
|
# submodules: true
|
||||||
|
|
||||||
|
- name: 设置 pnpm
|
||||||
|
uses: pnpm/action-setup@v2
|
||||||
|
with:
|
||||||
|
version: 8
|
||||||
|
|
||||||
|
|
||||||
|
- name: 设置 Node.js
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 20
|
||||||
|
cache: pnpm
|
||||||
|
|
||||||
|
- name: 安装依赖
|
||||||
|
run: |
|
||||||
|
corepack enable
|
||||||
|
pnpm install --frozen-lockfile
|
||||||
|
|
||||||
|
- name: 构建文档
|
||||||
|
env:
|
||||||
|
NODE_OPTIONS: --max_old_space_size=8192
|
||||||
|
run: |-
|
||||||
|
pnpm run docs:build
|
||||||
|
> src/.vuepress/dist/.nojekyll
|
||||||
|
|
||||||
|
- name: 部署文档
|
||||||
|
uses: JamesIves/github-pages-deploy-action@v4
|
||||||
|
with:
|
||||||
|
# 部署文档
|
||||||
|
branch: gh-pages
|
||||||
|
folder: src/.vuepress/dist
|
6
.gitignore
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
|
||||||
|
node_modules/
|
||||||
|
src/.vuepress/.cache/
|
||||||
|
src/.vuepress/.temp/
|
||||||
|
src/.vuepress/dist/
|
||||||
|
data/
|
22
package.json
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"name": "lx-music-api-server-docs",
|
||||||
|
"version": "2.0.0",
|
||||||
|
"description": "lx-music-api-server项目文档",
|
||||||
|
"license": "MIT",
|
||||||
|
"type": "module",
|
||||||
|
"scripts": {
|
||||||
|
"docs:build": "vuepress-vite build src",
|
||||||
|
"docs:clean-dev": "vuepress-vite dev src --clean-cache",
|
||||||
|
"docs:dev": "vuepress-vite dev src",
|
||||||
|
"docs:update-package": "pnpm dlx vp-update"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@vuepress/bundler-vite": "2.0.0-rc.9",
|
||||||
|
"vue": "^3.5.16",
|
||||||
|
"vuepress": "2.0.0-rc.9",
|
||||||
|
"vuepress-theme-hope": "2.0.0-rc.34"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"lxgw-wenkai-webfont": "^1.7.0"
|
||||||
|
}
|
||||||
|
}
|
3404
pnpm-lock.yaml
generated
Normal file
15
src/.vuepress/config.ts
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
import { defineUserConfig } from "vuepress";
|
||||||
|
import theme from "./theme.js";
|
||||||
|
|
||||||
|
export default defineUserConfig({
|
||||||
|
base: "/",
|
||||||
|
|
||||||
|
lang: "zh-CN",
|
||||||
|
title: "LX Music Api Server",
|
||||||
|
description: "适用于 LX Music 的解析接口服务器的 Python 实现",
|
||||||
|
|
||||||
|
theme,
|
||||||
|
|
||||||
|
// 和 PWA 一起启用
|
||||||
|
// shouldPrefetch: false,
|
||||||
|
});
|
17
src/.vuepress/navbar.ts
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
import { navbar } from "vuepress-theme-hope";
|
||||||
|
|
||||||
|
const NavbarConfig = navbar([
|
||||||
|
{
|
||||||
|
text: "首页",
|
||||||
|
link: "/README.md",
|
||||||
|
icon: "home",
|
||||||
|
},
|
||||||
|
{ text: "介绍", link: "/guide/README.md", icon: "fas fa-info" },
|
||||||
|
{
|
||||||
|
text: "部署",
|
||||||
|
link: "/deploy/README.md",
|
||||||
|
icon: "fas fa-file-alt",
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
|
||||||
|
export default NavbarConfig
|
BIN
src/.vuepress/public/assets/icon/apple-icon-152.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
src/.vuepress/public/assets/icon/chrome-192.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
src/.vuepress/public/assets/icon/chrome-512.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
src/.vuepress/public/assets/icon/chrome-mask-192.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
src/.vuepress/public/assets/icon/chrome-mask-512.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
src/.vuepress/public/assets/icon/guide-maskable.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
src/.vuepress/public/assets/icon/ms-icon-144.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
1
src/.vuepress/public/assets/image/advanced.svg
Normal file
After Width: | Height: | Size: 26 KiB |
1
src/.vuepress/public/assets/image/blog.svg
Normal file
After Width: | Height: | Size: 9.8 KiB |
1
src/.vuepress/public/assets/image/box.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" class="icon" viewBox="0 0 1024 1024"><path fill="#FDD7AD" d="M512 0 335.448 88.272l-70.616 35.312-70.624 35.312-176.552 88.28v529.648L512 1024l494.344-247.176V247.176z"/><path fill="#CBB292" d="m759.176 370.76-70.624 35.304-494.344-247.168 70.624-35.312zM512 494.344V1024L17.656 776.824V247.176z"/><path fill="#7F6E5D" d="M1006.344 247.168v529.656L512 1024V494.344l176.552-88.28v70.624l141.24-70.624v-70.616z"/><path fill="#7F5B53" d="M829.792 335.448v70.624L688.56 476.68v-70.624z"/><path fill="#CBB292" d="m829.792 335.448-70.624 35.312-494.344-247.176 70.624-35.312z"/><path fill="#2C3E50" d="m682.52 550.32 157.032-78.512a17.656 17.656 0 0 1 25.552 15.792v9.32a52.96 52.96 0 0 1-29.28 47.376L678.8 622.8a17.656 17.656 0 0 1-25.552-15.792v-9.312a52.96 52.96 0 0 1 29.28-47.376z"/></svg>
|
After Width: | Height: | Size: 854 B |
1
src/.vuepress/public/assets/image/features.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024"><defs><linearGradient id="a" x1="522.593" x2="522.593" y1="-70.302" y2="-335.937" gradientUnits="userSpaceOnUse" spreadMethod="pad"><stop offset="0" stop-color="#fe5d5a" stop-opacity=".1"/><stop offset=".908" stop-color="#ef1220" stop-opacity=".5"/></linearGradient><linearGradient id="b" x1="107.12" x2="935.038" y1="-373.67" y2="-373.67" gradientUnits="userSpaceOnUse" spreadMethod="pad"><stop offset="0" stop-color="#ff5e59"/><stop offset="1" stop-color="#f01422"/></linearGradient><linearGradient id="c" x1="519.405" x2="519.405" y1="-195.547" y2="-726.816" gradientUnits="userSpaceOnUse" spreadMethod="pad"><stop offset="0" stop-color="#ffe2e2"/><stop offset=".888" stop-color="#ff8e8e"/></linearGradient><linearGradient id="d" x1="191.5" x2="483.9" y1="-564.9" y2="-564.9" gradientUnits="userSpaceOnUse" spreadMethod="pad"><stop offset="0" stop-color="#e92700" stop-opacity=".3"/><stop offset=".013" stop-color="#ef1220" stop-opacity=".2"/></linearGradient><linearGradient id="e" x1="403.502" x2="253.121" y1="-847.32" y2="-586.853" gradientUnits="userSpaceOnUse" spreadMethod="pad"><stop offset="0" stop-color="#ff5e59"/><stop offset=".201" stop-color="#f01422"/></linearGradient><linearGradient id="f" x1="330.485" x2="330.485" y1="-801.787" y2="-625.789" gradientUnits="userSpaceOnUse" spreadMethod="pad"><stop offset="0" stop-color="#ff5e59"/><stop offset=".201" stop-color="#f01422"/></linearGradient><linearGradient id="g" x1="397.351" x2="256.845" y1="-647.231" y2="-890.596" gradientUnits="userSpaceOnUse" spreadMethod="pad"><stop offset="0" stop-color="#ffa6a6"/><stop offset=".908" stop-color="#ff6b5d"/></linearGradient></defs><path fill="url(#a)" d="M501.2 662.3 327.6 763.8c-13.9 8.1-14.2 28.1-.5 36.7l179.1 97.7c10.9 5.9 24.1 5.9 34.9-.1l177-97.9c13.6-8.5 13.4-28.3-.3-36.5l-168.4-101c-14.8-9-33.3-9.1-48.2-.4Z"/><path fill="#f63037" d="m110.2 525.7-3.1 77.6 57.5 18.5L184 519.4Z"/><path fill="url(#b)" d="m476.6 363.5-328 154.6c-21 42.7-55.4 65.4-35.5 103.5 4.2 8 9.4 14.4 15.4 18.1l358.2 195.5c21.8 11.9 48.1 11.8 69.8-.2l354-195.8c27.2-16.9 34.8-90.3 7.3-106.8L573 364.1c-29.7-17.8-66.6-18-96.4-.6Z"/><path fill="url(#c)" d="M476.6 298.7 129.4 501.6c-27.8 16.3-28.4 56.3-1 73.3l358.2 195.5c21.8 11.9 48.1 11.8 69.8-.2l354-195.8c27.2-16.9 26.9-56.6-.6-73.1L573 299.3c-29.7-17.8-66.6-18-96.4-.6Z"/><path fill="#ff8989" fill-opacity=".31" d="m481.2 387.8 39.4 123.4c1.1 3.4 4 6 7.6 6.6l173.4 30.4-33-118.3c-.9-3.3-3.6-5.8-7-6.5l-180.4-35.6ZM327 499.2l40.4 101.1L496.7 525c2.5-1.5 3.7-4.5 2.7-7.3l-36-106.8-127.6 65c-8.6 4.3-12.4 14.4-8.8 23.3ZM523.8 540.5l-140.3 77.2L567.2 659c3.2.7 6.6.1 9.3-1.6l134.6-85-174.7-33.8c-4.3-1-8.7-.3-12.6 1.9Z"/><path fill="url(#d)" d="M483.9 406.1c0 35.46-65.46 64.2-146.2 64.2s-146.2-28.74-146.2-64.2c0-35.46 65.46-64.2 146.2-64.2s146.2 28.74 146.2 64.2Z"/><path fill="url(#e)" d="m254.2 188.4-123 83.1c-1.8 1.3-2.6 3.6-1.8 5.7l39.1 110.6c.6 1.7 2 2.9 3.8 3.2l221.8 40.5c1.3.3 2.7-.1 3.7-.8l131.7-93.6c1.9-1.4 2.6-3.9 1.7-6.1l-49.4-107c-.6-1.5-2.1-2.6-3.7-2.8l-220.3-33.5c-1.3-.2-2.6.1-3.6.7Z"/><path fill="url(#f)" d="m528.6 274.5 3 59.1-205 65.6-177.2-72.7-20-49.2 1.9-54.1Z"/><path fill="url(#g)" d="m250.6 138-112.3 76c-6 4.1-8.5 11.7-6.1 18.5l34.2 96.6c1.9 5.4 6.6 9.3 12.1 10.4l211 38.5c4.3.7 8.6-.2 12.1-2.7l120.5-85.5c6.3-4.4 8.4-12.7 5.3-19.7l-43.1-93.5c-2.2-4.9-6.8-8.3-12.1-9.1L262 135.6c-4-.7-8 .2-11.4 2.4Z"/><path fill="#fff" d="m419.8 252.8-79-11-29-57.7c-3.8-7.6-13.2-10.7-20.8-6.9-7.6 3.8-10.7 13.2-6.9 20.8l26.6 52.9-61.8 42.2c-7.1 4.8-8.9 14.5-4.1 21.5 3 4.4 7.9 6.8 12.8 6.8 3 0 6-.9 8.7-2.7l68-46.4 81.1 11.2c.7.1 1.4.1 2.1.1 7.6 0 14.3-5.6 15.3-13.4 1.4-8.4-4.5-16.2-13-17.4Z"/></svg>
|
After Width: | Height: | Size: 3.6 KiB |
1
src/.vuepress/public/assets/image/github-dark.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg width="98" height="96" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z" fill="#24292f"/></svg>
|
After Width: | Height: | Size: 963 B |
1
src/.vuepress/public/assets/image/github-light.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg width="98" height="96" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z" fill="#fff"/></svg>
|
After Width: | Height: | Size: 960 B |
1
src/.vuepress/public/assets/image/layout.svg
Normal file
After Width: | Height: | Size: 9.0 KiB |
1
src/.vuepress/public/assets/image/markdown.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" class="icon" viewBox="0 0 1536 1024"><path fill="#1296db" d="M1425.067.256H110.933A110.933 110.933 0 0 0 0 110.848v723.627a110.933 110.933 0 0 0 110.933 110.933h1314.39c61.269 0 110.933-49.75 110.677-110.677V110.848A110.933 110.933 0 0 0 1425.067.256z" class="selected" data-spm-anchor-id="a313x.7781069.0.i4"/><path fill="#FFF" d="M664.747 723.797V435.883L517.12 620.373l-147.456-184.49v288l-148.053-67.158V221.781h147.626l147.627 184.576 147.541-184.576h147.627v565.76z"/><path d="M1024 0h426.667A85.333 85.333 0 0 1 1536 85.333v768a85.333 85.333 0 0 1-85.333 85.334H1024V0z" opacity=".1"/><path fill="#FFF" d="m1256.96 731.307-170.667-216.491h113.75V304.64h113.749v210.176h113.835z" opacity=".5"/></svg>
|
After Width: | Height: | Size: 771 B |
BIN
src/.vuepress/public/favicon.ico
Normal file
After Width: | Height: | Size: 58 KiB |
BIN
src/.vuepress/public/images/favicon.ico
Normal file
After Width: | Height: | Size: 58 KiB |
BIN
src/.vuepress/public/images/gitinstall.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
src/.vuepress/public/images/pydown.png
Normal file
After Width: | Height: | Size: 272 KiB |
BIN
src/.vuepress/public/images/pyinstall.png
Normal file
After Width: | Height: | Size: 97 KiB |
30
src/.vuepress/sidebar.ts
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
import { sidebar } from "vuepress-theme-hope";
|
||||||
|
|
||||||
|
export default sidebar({
|
||||||
|
"/": [
|
||||||
|
"",
|
||||||
|
{
|
||||||
|
text: "介绍",
|
||||||
|
icon: "laptop-code",
|
||||||
|
prefix: "guide/readme.md",
|
||||||
|
link: "guide/readme.md",
|
||||||
|
children: "structure",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: "部署",
|
||||||
|
icon: "book",
|
||||||
|
prefix: "deploy/",
|
||||||
|
collapsible: true,
|
||||||
|
link: "deploy/readme.md",
|
||||||
|
children: [
|
||||||
|
"deploy-windows.md",
|
||||||
|
"deploy-linux.md",
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: "API调用方法",
|
||||||
|
icon: "person-chalkboard",
|
||||||
|
link: "guide/api/api.md",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
4
src/.vuepress/styles/config.scss
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
// you can change config here
|
||||||
|
$colors: #c0392b, #d35400, #f39c12, #27ae60, #16a085, #2980b9, #8e44ad, #2c3e50,
|
||||||
|
#7f8c8d !default;
|
||||||
|
$font-family: '"LXGW WenKai", sans-serif';
|
1
src/.vuepress/styles/index.scss
Normal file
@ -0,0 +1 @@
|
|||||||
|
// place your custom styles here
|
2
src/.vuepress/styles/palette.scss
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
// you can change colors here
|
||||||
|
$theme-color: #096dd9;
|
178
src/.vuepress/theme.ts
Normal file
@ -0,0 +1,178 @@
|
|||||||
|
import { hopeTheme } from "vuepress-theme-hope";
|
||||||
|
import navbar from "./navbar.js";
|
||||||
|
import sidebar from "./sidebar.js";
|
||||||
|
|
||||||
|
export default hopeTheme({
|
||||||
|
hostname: "https://apidoc.zcmonety.xyz/",
|
||||||
|
|
||||||
|
iconAssets: "fontawesome-with-brands",
|
||||||
|
|
||||||
|
logo: "/images/favicon.ico",
|
||||||
|
|
||||||
|
repo: "MeoProject/lx-music-api-server",
|
||||||
|
|
||||||
|
docsDir: "src",
|
||||||
|
|
||||||
|
docsBranch: "docs",
|
||||||
|
|
||||||
|
// 导航栏
|
||||||
|
navbar,
|
||||||
|
|
||||||
|
// 侧边栏
|
||||||
|
sidebar,
|
||||||
|
|
||||||
|
// 页脚
|
||||||
|
displayFooter: true,
|
||||||
|
|
||||||
|
// 加密配置
|
||||||
|
// encrypt: {
|
||||||
|
// config: {
|
||||||
|
// "/demo/encrypt.html": ["1234"],
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
|
||||||
|
// 多语言配置
|
||||||
|
metaLocales: {
|
||||||
|
editLink: "在 GitHub 上编辑此页",
|
||||||
|
},
|
||||||
|
|
||||||
|
// 如果想要实时查看任何改变,启用它。注: 这对更新性能有很大负面影响
|
||||||
|
// hotReload: true,
|
||||||
|
|
||||||
|
// 在这里配置主题提供的插件
|
||||||
|
plugins: {
|
||||||
|
// 注意: 仅用于测试! 你必须自行生成并在生产环境中使用自己的评论服务
|
||||||
|
|
||||||
|
components: {
|
||||||
|
components: ["Badge", "VPCard"],
|
||||||
|
},
|
||||||
|
|
||||||
|
// 此处开启了很多功能用于演示,你应仅保留用到的功能。
|
||||||
|
mdEnhance: {
|
||||||
|
align: true,
|
||||||
|
attrs: true,
|
||||||
|
codetabs: true,
|
||||||
|
component: true,
|
||||||
|
demo: true,
|
||||||
|
figure: true,
|
||||||
|
imgLazyload: true,
|
||||||
|
imgSize: true,
|
||||||
|
include: true,
|
||||||
|
mark: true,
|
||||||
|
alert: true,
|
||||||
|
stylize: [
|
||||||
|
{
|
||||||
|
matcher: "Recommended",
|
||||||
|
replacer: ({ tag }) => {
|
||||||
|
if (tag === "em")
|
||||||
|
return {
|
||||||
|
tag: "Badge",
|
||||||
|
attrs: { type: "tip" },
|
||||||
|
content: "Recommended",
|
||||||
|
};
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
sub: true,
|
||||||
|
sup: true,
|
||||||
|
tabs: true,
|
||||||
|
tasklist: true,
|
||||||
|
vPre: true,
|
||||||
|
|
||||||
|
// 在启用之前安装 chart.js
|
||||||
|
// chart: true,
|
||||||
|
|
||||||
|
// insert component easily
|
||||||
|
|
||||||
|
// 在启用之前安装 echarts
|
||||||
|
// echarts: true,
|
||||||
|
|
||||||
|
// 在启用之前安装 flowchart.ts
|
||||||
|
// flowchart: true,
|
||||||
|
|
||||||
|
// gfm requires mathjax-full to provide tex support
|
||||||
|
// gfm: true,
|
||||||
|
|
||||||
|
// 在启用之前安装 katex
|
||||||
|
// katex: true,
|
||||||
|
|
||||||
|
// 在启用之前安装 mathjax-full
|
||||||
|
// mathjax: true,
|
||||||
|
|
||||||
|
// 在启用之前安装 mermaid
|
||||||
|
// mermaid: true,
|
||||||
|
|
||||||
|
// playground: {
|
||||||
|
// presets: ["ts", "vue"],
|
||||||
|
// },
|
||||||
|
|
||||||
|
// 在启用之前安装 reveal.js
|
||||||
|
// revealJs: {
|
||||||
|
// plugins: ["highlight", "math", "search", "notes", "zoom"],
|
||||||
|
// },
|
||||||
|
|
||||||
|
// 在启用之前安装 @vue/repl
|
||||||
|
// vuePlayground: true,
|
||||||
|
|
||||||
|
// install sandpack-vue3 before enabling it
|
||||||
|
// sandpack: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
// 如果你需要 PWA。安装 @vuepress/plugin-pwa 并取消下方注释
|
||||||
|
// pwa: {
|
||||||
|
// favicon: "/favicon.ico",
|
||||||
|
// cacheHTML: true,
|
||||||
|
// cachePic: true,
|
||||||
|
// appendBase: true,
|
||||||
|
// apple: {
|
||||||
|
// icon: "/assets/icon/apple-icon-152.png",
|
||||||
|
// statusBarColor: "black",
|
||||||
|
// },
|
||||||
|
// msTile: {
|
||||||
|
// image: "/assets/icon/ms-icon-144.png",
|
||||||
|
// color: "#ffffff",
|
||||||
|
// },
|
||||||
|
// manifest: {
|
||||||
|
// icons: [
|
||||||
|
// {
|
||||||
|
// src: "/assets/icon/chrome-mask-512.png",
|
||||||
|
// sizes: "512x512",
|
||||||
|
// purpose: "maskable",
|
||||||
|
// type: "image/png",
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// src: "/assets/icon/chrome-mask-192.png",
|
||||||
|
// sizes: "192x192",
|
||||||
|
// purpose: "maskable",
|
||||||
|
// type: "image/png",
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// src: "/assets/icon/chrome-512.png",
|
||||||
|
// sizes: "512x512",
|
||||||
|
// type: "image/png",
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// src: "/assets/icon/chrome-192.png",
|
||||||
|
// sizes: "192x192",
|
||||||
|
// type: "image/png",
|
||||||
|
// },
|
||||||
|
// ],
|
||||||
|
// shortcuts: [
|
||||||
|
// {
|
||||||
|
// name: "Demo",
|
||||||
|
// short_name: "Demo",
|
||||||
|
// url: "/demo/",
|
||||||
|
// icons: [
|
||||||
|
// {
|
||||||
|
// src: "/assets/icon/guide-maskable.png",
|
||||||
|
// sizes: "192x192",
|
||||||
|
// purpose: "maskable",
|
||||||
|
// type: "image/png",
|
||||||
|
// },
|
||||||
|
// ],
|
||||||
|
// },
|
||||||
|
// ],
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
},
|
||||||
|
});
|
28
src/README.md
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
---
|
||||||
|
title: 首页
|
||||||
|
home: true
|
||||||
|
icon: home
|
||||||
|
heroText: LX Music Api Server
|
||||||
|
tagline: 适用于 LX Music 的解析接口服务器的 Python 实现
|
||||||
|
heroImage: /images/favicon.ico
|
||||||
|
actions:
|
||||||
|
- text: 如何部署?
|
||||||
|
link: /guide/readme.md
|
||||||
|
type: primary
|
||||||
|
icon: arrow-right
|
||||||
|
- text: API调用
|
||||||
|
link: /guide/api/api.md
|
||||||
|
type: secondary
|
||||||
|
icon: book
|
||||||
|
features:
|
||||||
|
- title: 安全性高
|
||||||
|
details: 拥有一个单独的安全模块,防止被恶意滥用
|
||||||
|
icon: lock
|
||||||
|
- title: 部署简单
|
||||||
|
details: 只需要有一点点基础(指的是会看文档)即可在10分钟内部署完毕
|
||||||
|
icon: rocket
|
||||||
|
- title: 快速响应
|
||||||
|
details: 采用aiohttp进行异步请求,毫秒级响应
|
||||||
|
icon: magic
|
||||||
|
footerHtml: true
|
||||||
|
---
|
16
src/deploy/README.md
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
head:
|
||||||
|
- - meta
|
||||||
|
- name: keywords
|
||||||
|
content: 即刻开始
|
||||||
|
title: 部署
|
||||||
|
icon: fas fa-file-alt
|
||||||
|
author: ikun0014
|
||||||
|
date: 2025-05-31
|
||||||
|
index: true
|
||||||
|
---
|
||||||
|
|
||||||
|
## 部署方法
|
||||||
|
|
||||||
|
Windows请看:[Win](./deploy-windows.md)
|
||||||
|
Linux请看:[Linux](deploy-linux.md)
|
45
src/deploy/deploy-linux.md
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
---
|
||||||
|
head:
|
||||||
|
- - meta
|
||||||
|
- name: keywords
|
||||||
|
content: Linux
|
||||||
|
title: Linux部署教程
|
||||||
|
icon: fas fa-file-alt
|
||||||
|
author: ikun0014
|
||||||
|
date: 2025-05-31
|
||||||
|
index: false
|
||||||
|
---
|
||||||
|
|
||||||
|
## Linux 部署教程,演示系统:Ubuntu 22.04
|
||||||
|
|
||||||
|
1.安装 Python,Git
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install python3 python3-pip git -y
|
||||||
|
```
|
||||||
|
|
||||||
|
2.克隆仓库
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/MeoProject/lx-music-api-server -b main
|
||||||
|
|
||||||
|
git clone https://github.moeyy.xyz/github.com/MeoProject/lx-music-api-server -b main
|
||||||
|
```
|
||||||
|
|
||||||
|
根据网络环境选择
|
||||||
|
|
||||||
|
3.安装依赖
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pip3 install poetry
|
||||||
|
poetry install --no-root
|
||||||
|
```
|
||||||
|
|
||||||
|
4.启动服务器
|
||||||
|
|
||||||
|
```bash
|
||||||
|
poetry run python main.py
|
||||||
|
```
|
||||||
|
|
||||||
|
如果屏幕上没有报错,那么恭喜您,部署已完成!:yum:
|
47
src/deploy/deploy-windows.md
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
---
|
||||||
|
head:
|
||||||
|
- - meta
|
||||||
|
- name: keywords
|
||||||
|
content: Windows部署教程
|
||||||
|
title: Windows部署教程
|
||||||
|
icon: fas fa-file-alt
|
||||||
|
author: ikun0014
|
||||||
|
date: 2025-05-31
|
||||||
|
index: false
|
||||||
|
---
|
||||||
|
|
||||||
|
## 部署教程
|
||||||
|
|
||||||
|
1.下载并且安装 Python3.10-3.11
|
||||||
|
前往[Python 官网](https://www.python.org/downloads/release/python-3119)下拉即可找到 Python3.11.9 的下载链接
|
||||||
|

|
||||||
|
然后安装 Python
|
||||||
|

|
||||||
|
|
||||||
|
2.下载并且安装 Git
|
||||||
|
[点击我加速下载](https://github.moeyy.xyz/github.com/git-for-windows/git/releases/download/v2.44.0.windows.1/Git-2.44.0-64-bit.exe)
|
||||||
|

|
||||||
|
一路点击 Next 和 Install 即可
|
||||||
|
|
||||||
|
3.使用 Git 克隆仓库
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/MeoProject/lx-music-api-server -b main
|
||||||
|
```
|
||||||
|
|
||||||
|
4.使用 poetry 进行依赖项安装
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pip install poetry
|
||||||
|
poetry install --no-root
|
||||||
|
```
|
||||||
|
|
||||||
|
5.启动服务器
|
||||||
|
|
||||||
|
```bash
|
||||||
|
poetry run python main.py
|
||||||
|
或者 npm run start
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
如果不报错,那么恭喜您,您已经完成部署:yum:
|
36
src/guide/README.md
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
---
|
||||||
|
head:
|
||||||
|
- - meta
|
||||||
|
- name: keywords
|
||||||
|
content: 项目介绍
|
||||||
|
title: 介绍
|
||||||
|
icon: fas fa-info
|
||||||
|
author: ikun0014
|
||||||
|
date: 2025-05-31
|
||||||
|
index: true
|
||||||
|
---
|
||||||
|
|
||||||
|
## 简述
|
||||||
|
|
||||||
|
这是一个基于 Python 的 LX Music 后端实现,与 LX Music 相关的只有请求格式,其余全部重写
|
||||||
|
项目基于 MIT 开源许可证开源于[Github](https://github.com/MeoProject/lx-music-api-server)上
|
||||||
|
所调用 API 接口为网络上查找
|
||||||
|
音乐平台不易,请尊重版权,支持正版。
|
||||||
|
本项目仅用于对技术可行性的探索及研究,不接受任何商业(包括但不限于广告等)合作及捐赠。
|
||||||
|
若对此有疑问请 mail to:helloplhm-qwq@outlook.com
|
||||||
|
|
||||||
|
## 项目官方交流群
|
||||||
|
|
||||||
|
- [QQ](https://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=117h8X7TPBWMLwK0Nec_TkdFpqsSs7LJ&group_code=206995059)
|
||||||
|
- [Telegram](https://t.me/+zBJAaMgr6yZmYWI9)
|
||||||
|
|
||||||
|
## 项目功能
|
||||||
|
|
||||||
|
- [ ] 功能
|
||||||
|
- [ ] 完整性 API(歌单,搜索)
|
||||||
|
- [x] Cookie 池
|
||||||
|
- [x] https 监听,多端口监听
|
||||||
|
- [x] 反代兼容性
|
||||||
|
- [x] 获取更高的音质
|
||||||
|
- [x] QRC 解密
|
||||||
|
- [x] 多端部署(`Windows` `Linux` `MacOS`)
|
82
src/guide/api/api.md
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
---
|
||||||
|
head:
|
||||||
|
- - meta
|
||||||
|
- name: keywords
|
||||||
|
content: API接口
|
||||||
|
title: API接口
|
||||||
|
icon: fas fa-file-alt
|
||||||
|
author: ikun0014
|
||||||
|
date: 2025-05-31
|
||||||
|
index: false
|
||||||
|
---
|
||||||
|
|
||||||
|
# 接口列表
|
||||||
|
|
||||||
|
## 1.获取播放链接(获取会员歌曲请自行充值会员后在配置文件内填写 cookie)
|
||||||
|
|
||||||
|
| 平台 | 请求方法 | 请求路径 |
|
||||||
|
| ------------- | -------- | --------------------------------- |
|
||||||
|
| Kuwo(kw) | GET | /url?source=kw&songId=m&quality=q |
|
||||||
|
| Tencent(tx) | GET | /url?source=tx&songId=m&quality=q |
|
||||||
|
| Kugou(kg) | GET | /url?source=kg&songId=h&quality=q |
|
||||||
|
| Netease(wy) | GET | /url?source=wy&songId=m&quality=q |
|
||||||
|
| Migu(mg) | GET | /url?source=mg&songId=m&quality=q |
|
||||||
|
|
||||||
|
参数详解:
|
||||||
|
|
||||||
|
m
|
||||||
|
: 各大平台歌曲详情页最后面的一串字符(tx 是字母+数字混合,其它都是纯数字)
|
||||||
|
|
||||||
|
h
|
||||||
|
: 酷狗音乐歌曲的哈希(hash)值,最好通过搜索接口获得
|
||||||
|
|
||||||
|
q
|
||||||
|
: 歌曲的音质,
|
||||||
|
|
||||||
|
1. 128k
|
||||||
|
2. 320k
|
||||||
|
3. flac
|
||||||
|
4. hires
|
||||||
|
5. atmos
|
||||||
|
6. atmos_plus
|
||||||
|
7. master
|
||||||
|
|
||||||
|
## 2.搜索
|
||||||
|
|
||||||
|
| 平台 | 请求方法 | 路径 |
|
||||||
|
| ----- | -------- | ------------------------------ |
|
||||||
|
| Kugou | GET | /search/kg/song?query=k&page=p |
|
||||||
|
|
||||||
|
参数详解:
|
||||||
|
|
||||||
|
k
|
||||||
|
: 你需要搜索的歌曲的名称
|
||||||
|
|
||||||
|
p
|
||||||
|
: 页数
|
||||||
|
|
||||||
|
## 3.MV
|
||||||
|
|
||||||
|
| 平台 | 请求方法 | 路径 |
|
||||||
|
| ----- | -------- | ----------- |
|
||||||
|
| Kugou | GET | /mv/kg/mvid |
|
||||||
|
|
||||||
|
参数详解:
|
||||||
|
|
||||||
|
mvid
|
||||||
|
: 调用搜索接口获得
|
||||||
|
|
||||||
|
## 4.歌曲详情
|
||||||
|
|
||||||
|
| 平台 | 请求方法 | 路径 |
|
||||||
|
| ------- | -------- | ---------- |
|
||||||
|
| Kugou | GET | /info/kg/h |
|
||||||
|
| Tencent | GET | /info/tx/m |
|
||||||
|
|
||||||
|
参数详解:
|
||||||
|
|
||||||
|
h
|
||||||
|
: 经典 hash 值
|
||||||
|
|
||||||
|
m
|
||||||
|
: 经典歌曲 ID
|
14
tsconfig.json
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"module": "NodeNext",
|
||||||
|
"moduleResolution": "NodeNext",
|
||||||
|
"target": "ES2022"
|
||||||
|
},
|
||||||
|
"include": [
|
||||||
|
"src/.vuepress/**/*.ts",
|
||||||
|
"src/.vuepress/**/*.vue"
|
||||||
|
],
|
||||||
|
"exclude": [
|
||||||
|
"node_modules"
|
||||||
|
]
|
||||||
|
}
|