Added an additional parameter targetPlatform for Script Operator

This commit is contained in:
Peng-YM 2022-04-17 23:30:53 +08:00
parent 9f2131551f
commit f7547bf719
2 changed files with 8 additions and 8 deletions

View File

@ -934,7 +934,7 @@ function service() {
let proxies = ProxyUtils.parse(raw); let proxies = ProxyUtils.parse(raw);
if (!noProcessor) { if (!noProcessor) {
// apply processors // apply processors
proxies = await ProxyUtils.process(proxies, sub.process || []); proxies = await ProxyUtils.process(proxies, sub.process || [], platform);
} }
// check duplicate // check duplicate
const count = {}; const count = {};
@ -1376,7 +1376,7 @@ var ProxyUtils = (function () {
const [server, port] = line.split("@")[1].split("?")[0].split(":"); const [server, port] = line.split("@")[1].split("?")[0].split(":");
const name = decodeURIComponent(line.split("#")[1].trim()); const name = decodeURIComponent(line.split("#")[1].trim());
let paramArr = line.split("?") let paramArr = line.split("?")
let sni = null let sni = null;
if (paramArr.length > 1) { if (paramArr.length > 1) {
paramArr = paramArr[1].split("#")[0].split("&") paramArr = paramArr[1].split("#")[0].split("&")
const params = new Map(paramArr.map((item) => { const params = new Map(paramArr.map((item) => {
@ -2185,7 +2185,7 @@ var ProxyUtils = (function () {
1. This function name should be `operator`! 1. This function name should be `operator`!
2. Always declare variables before using them! 2. Always declare variables before using them!
*/ */
function ScriptOperator(script) { function ScriptOperator(script, targetPlatform) {
return { return {
name: "Script Operator", name: "Script Operator",
func: (proxies) => { func: (proxies) => {
@ -2198,7 +2198,7 @@ var ProxyUtils = (function () {
}; };
const $process = ApplyProcessor; const $process = ApplyProcessor;
eval(script); eval(script);
output = operator(proxies); output = operator(proxies, targetPlatform);
})(); })();
return output; return output;
}, },
@ -2848,7 +2848,7 @@ var ProxyUtils = (function () {
return proxies; return proxies;
} }
async function process(proxies, operators = []) { async function process(proxies, operators = [], targetPlatform) {
for (const item of operators) { for (const item of operators) {
// process script // process script
let script; let script;
@ -2881,7 +2881,7 @@ var ProxyUtils = (function () {
); );
let processor; let processor;
if (item.type.indexOf("Script") !== -1) { if (item.type.indexOf("Script") !== -1) {
processor = PROXY_PROCESSORS[item.type](script); processor = PROXY_PROCESSORS[item.type](script, targetPlatform);
} else { } else {
processor = PROXY_PROCESSORS[item.type](item.args); processor = PROXY_PROCESSORS[item.type](item.args);
} }

File diff suppressed because one or more lines are too long