mirror of
https://github.com/imsyy/SPlayer.git
synced 2025-11-25 03:14:57 +08:00
67 lines
2.0 KiB
TypeScript
67 lines
2.0 KiB
TypeScript
import { FastifyInstance, FastifyRequest, FastifyReply } from "fastify";
|
|
import { SongUrlResult } from "./unblock";
|
|
import { serverLog } from "../../main/logger";
|
|
import getKuwoSongUrl from "./kuwo";
|
|
import axios from "axios";
|
|
|
|
/**
|
|
* 直接获取 网易云云盘 链接
|
|
* Thank @939163156
|
|
* Power by GD音乐台(music.gdstudio.xyz)
|
|
*/
|
|
const getNeteaseSongUrl = async (id: number | string): Promise<SongUrlResult> => {
|
|
try {
|
|
if (!id) return { code: 404, url: null };
|
|
const baseUrl = "https://music-api.gdstudio.xyz/api.php";
|
|
const result = await axios.get(baseUrl, {
|
|
params: { types: "url", id },
|
|
});
|
|
const songUrl = result.data.url;
|
|
serverLog.log("🔗 NeteaseSongUrl URL:", songUrl);
|
|
return { code: 200, url: songUrl };
|
|
} catch (error) {
|
|
serverLog.error("❌ Get NeteaseSongUrl Error:", error);
|
|
return { code: 404, url: null };
|
|
}
|
|
};
|
|
|
|
// 初始化 UnblockAPI
|
|
export const initUnblockAPI = async (fastify: FastifyInstance) => {
|
|
// 主信息
|
|
fastify.get("/unblock", (_, reply) => {
|
|
reply.send({
|
|
name: "UnblockAPI",
|
|
description: "SPlayer UnblockAPI service",
|
|
author: "@imsyy",
|
|
content:
|
|
"部分接口采用 @939163156 by GD音乐台(music.gdstudio.xyz),仅供本人学习使用,不可传播下载内容,不可用于商业用途。",
|
|
});
|
|
});
|
|
// netease
|
|
fastify.get(
|
|
"/unblock/netease",
|
|
async (
|
|
req: FastifyRequest<{ Querystring: { [key: string]: string } }>,
|
|
reply: FastifyReply,
|
|
) => {
|
|
const { id } = req.query;
|
|
const result = await getNeteaseSongUrl(id);
|
|
return reply.send(result);
|
|
},
|
|
);
|
|
// kuwo
|
|
fastify.get(
|
|
"/unblock/kuwo",
|
|
async (
|
|
req: FastifyRequest<{ Querystring: { [key: string]: string } }>,
|
|
reply: FastifyReply,
|
|
) => {
|
|
const { keyword } = req.query;
|
|
const result = await getKuwoSongUrl(keyword);
|
|
return reply.send(result);
|
|
},
|
|
);
|
|
|
|
serverLog.info("🌐 Register UnblockAPI successfully");
|
|
};
|