feat: 插件系统重构 - 支持官方 v3 音源 (wy/tx/kw/kg/mg) + 多格式歌词解析 + 动态加载 webpack bundle + 动态从 /plugins/ 目录加载官方音源
This commit is contained in:
48
install.sh
48
install.sh
@@ -96,6 +96,54 @@ fi
|
||||
log_info "项目构建成功!"
|
||||
echo ""
|
||||
|
||||
# ========= 下载官方音源插件 (v3) =========
|
||||
log_info "正在下载官方音源插件到 dist/plugins/..."
|
||||
PLUGIN_DIR="$INSTALL_DIR/dist/plugins"
|
||||
mkdir -p "$PLUGIN_DIR"
|
||||
FILE_SERVER="http://171.80.3.149:5244"
|
||||
SHARE_CODE="music"
|
||||
PLUGIN_FILES=(
|
||||
"zq_wy_v3.js"
|
||||
"zq_tx_v3-fix1.js"
|
||||
"zq_kw_v3-fix1.js"
|
||||
"zq_kg.js"
|
||||
"zq_mg_v3.js"
|
||||
)
|
||||
DOWNLOADED=0
|
||||
for fname in "${PLUGIN_FILES[@]}"; do
|
||||
target="$PLUGIN_DIR/$fname"
|
||||
# 通过 fs/get API 获取 raw_url (JSON 中 data.raw_url)
|
||||
api_resp=$(curl -s -X POST "$FILE_SERVER/api/fs/get" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{\"path\":\"/@s/c6VNt7hG/音源/QZ-Music_v2/官方/v3/$fname\",\"password\":\"$SHARE_CODE\"}" \
|
||||
--max-time 30 2>/dev/null || echo "")
|
||||
|
||||
raw_url=""
|
||||
if [ -n "$api_resp" ]; then
|
||||
# 使用 python3 解析 JSON 取 data.raw_url;若失败则回退 sd 直链
|
||||
raw_url=$(echo "$api_resp" | python3 -c "import sys,json;
|
||||
try:
|
||||
d=json.load(sys.stdin)
|
||||
print(d.get('data',{}).get('raw_url',''))
|
||||
except:
|
||||
print('')" 2>/dev/null)
|
||||
fi
|
||||
|
||||
if [ -z "$raw_url" ]; then
|
||||
raw_url="$FILE_SERVER/sd/c6VNt7hG/音源/QZ-Music_v2/官方/v3/$fname?pwd=$SHARE_CODE"
|
||||
fi
|
||||
|
||||
if curl -sL "$raw_url" --max-time 120 -o "$target" -w '%{http_code}' 2>/dev/null | grep -qE "^2"; then
|
||||
DOWNLOADED=$((DOWNLOADED + 1))
|
||||
size=$(wc -c < "$target" 2>/dev/null | tr -d ' ')
|
||||
log_info " ✓ $fname ($size bytes)"
|
||||
else
|
||||
log_warn " ✗ $fname 下载失败"
|
||||
fi
|
||||
done
|
||||
log_info "音源插件下载完成: $DOWNLOADED/${#PLUGIN_FILES[@]}"
|
||||
echo ""
|
||||
|
||||
# ========= 部署 systemd 服务 =========
|
||||
log_info "正在部署 systemd 服务: $SERVICE_NAME"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user