This commit is contained in:
parent
f243697788
commit
ae9a73c457
17
source.js
17
source.js
@ -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);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user