mirror of
https://git.mirrors.martin98.com/https://github.com/sub-store-org/Sub-Store.git
synced 2025-07-05 21:55:13 +08:00
区域过滤和协议过滤支持保留模式和过滤模式(后端需 >= 2.17.0, 前端需 >= 2.15.0)
This commit is contained in:
parent
9426f128c4
commit
ff1dacda87
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "sub-store",
|
"name": "sub-store",
|
||||||
"version": "2.16.63",
|
"version": "2.17.0",
|
||||||
"description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and Shadowrocket.",
|
"description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and Shadowrocket.",
|
||||||
"main": "src/main.js",
|
"main": "src/main.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
@ -849,7 +849,12 @@ function UselessFilter() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// filter by regions
|
// filter by regions
|
||||||
function RegionFilter(regions) {
|
function RegionFilter(input) {
|
||||||
|
let regions = input?.value || input;
|
||||||
|
if (!Array.isArray(regions)) {
|
||||||
|
regions = [];
|
||||||
|
}
|
||||||
|
const keep = input?.keep ?? true;
|
||||||
const REGION_MAP = {
|
const REGION_MAP = {
|
||||||
HK: '🇭🇰',
|
HK: '🇭🇰',
|
||||||
TW: '🇹🇼',
|
TW: '🇹🇼',
|
||||||
@ -866,7 +871,8 @@ function RegionFilter(regions) {
|
|||||||
// this would be high memory usage
|
// this would be high memory usage
|
||||||
return proxies.map((proxy) => {
|
return proxies.map((proxy) => {
|
||||||
const flag = getFlag(proxy.name);
|
const flag = getFlag(proxy.name);
|
||||||
return regions.some((r) => REGION_MAP[r] === flag);
|
const selected = regions.some((r) => REGION_MAP[r] === flag);
|
||||||
|
return keep ? selected : !selected;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@ -898,11 +904,19 @@ function buildRegex(str, ...options) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// filter by proxy types
|
// filter by proxy types
|
||||||
function TypeFilter(types) {
|
function TypeFilter(input) {
|
||||||
|
let types = input?.value || input;
|
||||||
|
if (!Array.isArray(types)) {
|
||||||
|
types = [];
|
||||||
|
}
|
||||||
|
const keep = input?.keep ?? true;
|
||||||
return {
|
return {
|
||||||
name: 'Type Filter',
|
name: 'Type Filter',
|
||||||
func: (proxies) => {
|
func: (proxies) => {
|
||||||
return proxies.map((proxy) => types.some((t) => proxy.type === t));
|
return proxies.map((proxy) => {
|
||||||
|
const selected = types.some((t) => proxy.type === t);
|
||||||
|
return keep ? selected : !selected;
|
||||||
|
});
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user