chore: 日志输出增加订阅的来源 User-Agent

This commit is contained in:
xream 2024-03-31 10:59:49 +08:00
parent e7a2e60963
commit 958d1e52c8
No known key found for this signature in database
GPG Key ID: 1D2C5225471789F9
2 changed files with 26 additions and 7 deletions

View File

@ -1,4 +1,7 @@
import { getPlatformFromHeaders } from '@/utils/platform';
import {
getUserAgentFromHeaders,
getPlatformFromUserAgent,
} from '@/utils/user-agent';
import { COLLECTIONS_KEY, SUBS_KEY } from '@/constants';
import { findByName } from '@/utils/database';
import { getFlowHeaders } from '@/utils/flow';
@ -16,10 +19,15 @@ async function downloadSubscription(req, res) {
let { name } = req.params;
name = decodeURIComponent(name);
const platform =
req.query.target || getPlatformFromHeaders(req.headers) || 'JSON';
const userAgent = getUserAgentFromHeaders(req.headers);
const platform =
req.query.target || getPlatformFromUserAgent(userAgent) || 'JSON';
$.info(
`正在下载订阅:${name}\ntarget: ${platform}\n来源 User-Agent: ${userAgent.UA}`,
);
$.info(`正在下载订阅:${name}`);
let {
url,
ua,
@ -172,13 +180,17 @@ async function downloadCollection(req, res) {
let { name } = req.params;
name = decodeURIComponent(name);
const userAgent = getUserAgentFromHeaders(req.headers);
const platform =
req.query.target || getPlatformFromHeaders(req.headers) || 'JSON';
req.query.target || getPlatformFromUserAgent(userAgent) || 'JSON';
const allCols = $.read(COLLECTIONS_KEY);
const collection = findByName(allCols, name);
$.info(`正在下载组合订阅:${name}`);
$.info(
`正在下载组合订阅:${name}\ntarget: ${platform}\n来源 User-Agent: ${userAgent.UA}`,
);
let { ignoreFailedRemoteSub, produceType, includeUnsupportedProxy } =
req.query;

View File

@ -1,4 +1,4 @@
export function getPlatformFromHeaders(headers) {
export function getUserAgentFromHeaders(headers) {
const keys = Object.keys(headers);
let UA = '';
let ua = '';
@ -9,6 +9,9 @@ export function getPlatformFromHeaders(headers) {
break;
}
}
return { UA, ua };
}
export function getPlatformFromUserAgent({ ua, UA }) {
if (UA.indexOf('Quantumult%20X') !== -1) {
return 'QX';
} else if (UA.indexOf('Surfboard') !== -1) {
@ -38,3 +41,7 @@ export function getPlatformFromHeaders(headers) {
return 'JSON';
}
}
export function getPlatformFromHeaders(headers) {
const { UA, ua } = getUserAgentFromHeaders(headers);
return getPlatformFromUserAgent({ ua, UA });
}