diff --git a/backend/package.json b/backend/package.json index 775b1f8..6d5e44e 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "sub-store", - "version": "2.16.39", + "version": "2.16.40", "description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and Shadowrocket.", "main": "src/main.js", "scripts": { diff --git a/backend/src/core/proxy-utils/parsers/index.js b/backend/src/core/proxy-utils/parsers/index.js index 86c350a..1751e9b 100644 --- a/backend/src/core/proxy-utils/parsers/index.js +++ b/backend/src/core/proxy-utils/parsers/index.js @@ -839,8 +839,11 @@ function URI_TUIC() { const parse = (line) => { line = line.split(/tuic:\/\//)[1]; // eslint-disable-next-line no-unused-vars - let [__, uuid, password, server, ___, port, ____, addons = '', name] = - /^(.*?):(.*?)@(.*?)(:(\d+))?\/?(\?(.*?))?(?:#(.*?))?$/.exec(line); + let [__, auth, server, port, addons = '', name] = + /^(.*?)@(.*?)(?::(\d+))?\/?(?:\?(.*?))?(?:#(.*?))?$/.exec(line); + auth = decodeURIComponent(auth); + let [uuid, ...passwordParts] = auth.split(':'); + let password = passwordParts.join(':'); port = parseInt(`${port}`, 10); if (isNaN(port)) { port = 443;