mirror of
https://git.mirrors.martin98.com/https://github.com/sub-store-org/Sub-Store.git
synced 2026-03-23 13:13:18 +08:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
32eb069ab2 | ||
|
|
4c9f8011c7 | ||
|
|
bd26b0a561 | ||
|
|
958d1e52c8 |
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "sub-store",
|
||||
"version": "2.14.272",
|
||||
"version": "2.14.274",
|
||||
"description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket.",
|
||||
"main": "src/main.js",
|
||||
"scripts": {
|
||||
|
||||
@@ -617,6 +617,8 @@ function RegionFilter(regions) {
|
||||
SG: '🇸🇬',
|
||||
JP: '🇯🇵',
|
||||
UK: '🇬🇧',
|
||||
DE: '🇩🇪',
|
||||
KR: '🇰🇷',
|
||||
};
|
||||
return {
|
||||
name: 'Region Filter',
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -45,7 +45,7 @@ const ISOFlags = {
|
||||
'🇰🇬': ['KG', 'KGZ'],
|
||||
'🇰🇭': ['KH', 'KGZ'],
|
||||
'🇰🇵': ['KP', 'PRK'],
|
||||
'🇰🇷': ['KR', 'KOR'],
|
||||
'🇰🇷': ['KR', 'KOR', 'SEL'],
|
||||
'🇰🇿': ['KZ', 'KAZ'],
|
||||
'🇮🇩': ['ID', 'IDN'],
|
||||
'🇮🇪': ['IE', 'IRL'],
|
||||
@@ -93,11 +93,11 @@ const ISOFlags = {
|
||||
'🇹🇷': ['TR', 'TUR'],
|
||||
'🇹🇼': ['TW', 'TWN', 'CHT', 'HINET', 'ROC'],
|
||||
'🇺🇦': ['UA', 'UKR'],
|
||||
'🇺🇸': ['US', 'USA', 'LAX', 'SFO'],
|
||||
'🇺🇸': ['US', 'USA', 'LAX', 'SFO', 'SJC'],
|
||||
'🇺🇾': ['UY', 'URY'],
|
||||
'🇻🇪': ['VE', 'VEN'],
|
||||
'🇻🇳': ['VN', 'VNM'],
|
||||
'🇿🇦': ['ZA', 'ZAF'],
|
||||
'🇿🇦': ['ZA', 'ZAF', 'JNB'],
|
||||
'🇨🇳': ['CN', 'CHN', 'BACK'],
|
||||
};
|
||||
// get proxy flag according to its name
|
||||
@@ -399,7 +399,9 @@ export function getFlag(name) {
|
||||
// 不精确匹配(只要包含就算,忽略大小写)
|
||||
keywords.some((keyword) => RegExp(`${keyword}`, 'i').test(name))
|
||||
) {
|
||||
//console.log(`newFlag = ${flag}`)
|
||||
if (/内蒙古/.test(name) && ['🇲🇳'].includes(flag)) {
|
||||
return (Flag = '🇨🇳');
|
||||
}
|
||||
return (Flag = flag);
|
||||
}
|
||||
}
|
||||
@@ -417,6 +419,7 @@ export function getFlag(name) {
|
||||
return (Flag = flag);
|
||||
}
|
||||
}
|
||||
|
||||
//console.log(`Final Flag = ${Flag}`)
|
||||
return Flag;
|
||||
}
|
||||
|
||||
@@ -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 });
|
||||
}
|
||||
Reference in New Issue
Block a user