This commit is contained in:
蒋小陌 2024-11-03 14:28:33 +08:00
parent f243697788
commit ae9a73c457
2 changed files with 13 additions and 6 deletions

File diff suppressed because one or more lines are too long

View File

@ -62,6 +62,9 @@ const server = http.createServer(async (req, res) => {
req.url = req.url.replace(/\/{2,}/g, '/'); req.url = req.url.replace(/\/{2,}/g, '/');
const parsedUrl = url.parse(req.url, true); const parsedUrl = url.parse(req.url, true);
// 解析得到 sign 字段
const sign = parsedUrl.query.sign || '';
// 获取第一个路径 // 获取第一个路径
let reqPath = parsedUrl.pathname.split('/')[1]; let reqPath = parsedUrl.pathname.split('/')[1];
@ -161,7 +164,7 @@ const server = http.createServer(async (req, res) => {
// 增加 API 调用次数 // 增加 API 调用次数
viewsInfo.apiCall++; viewsInfo.apiCall++;
const apiData = await fetchApiData(reqPath, token); const apiData = await fetchApiData(reqPath, token, sign);
if (apiData.code === 200 && apiData.data && apiData.data.url) { if (apiData.code === 200 && apiData.data && apiData.data.url) {
const { url: realUrl, cloudtype, expiration, path, headers, uniqid } = apiData.data; const { url: realUrl, cloudtype, expiration, path, headers, uniqid } = apiData.data;
const data = { realUrl, cloudtype, expiration: expiration * 1000, path, headers, uniqid }; const data = { realUrl, cloudtype, expiration: expiration * 1000, path, headers, uniqid };
@ -224,15 +227,19 @@ const isCacheValid = (cacheMetaFile, cacheContentFile) => {
}; };
// 从 API 获取数据 // 从 API 获取数据
const fetchApiData = (reqPath, token) => { const fetchApiData = (reqPath, token, sign) => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
// 将请求路径和参数进行编码 // 将请求路径和参数进行编码
const queryParams = querystring.stringify({ type: reqPath }); const queryParams = querystring.stringify({
type: reqPath,
sign: sign
});
const apiUrl = `${apiEndpoint}?${queryParams}`; const apiUrl = `${apiEndpoint}?${queryParams}`;
const apiReq = https.request(apiUrl, { const apiReq = https.request(apiUrl, {
method: 'GET', method: 'GET',
headers: { headers: {
'Accept': 'application/json', 'Accept': 'application/json; charset=utf-8',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36',
'token': token 'token': token
}, },
timeout: requestTimeout, timeout: requestTimeout,
@ -244,7 +251,7 @@ const fetchApiData = (reqPath, token) => {
try { try {
resolve(JSON.parse(data)); resolve(JSON.parse(data));
} catch (error) { } catch (error) {
reject(error + data); reject(error);
} }
}); });
}); });