Fix some Shadowsocks nodes are missing in Loon configurations.
Fix Quantumult X nodes not handling duplicated remarks.
Force expand all local rules instead of generating /getruleset urls for generator mode.
This commit is contained in:
Tindy X 2020-02-23 21:26:28 +08:00
parent fa06e8def9
commit 782caaf082
No known key found for this signature in database
GPG Key ID: C6AD413169968D58
2 changed files with 6 additions and 3 deletions

View File

@ -1571,7 +1571,7 @@ std::string surgeConfToClash(RESPONSE_CALLBACK_ARGS)
std::string getProfile(RESPONSE_CALLBACK_ARGS) std::string getProfile(RESPONSE_CALLBACK_ARGS)
{ {
std::string name = UrlDecode(getUrlArg(argument, "name")), token = UrlDecode(getUrlArg(argument, "token")); std::string name = UrlDecode(getUrlArg(argument, "name")), token = UrlDecode(getUrlArg(argument, "token")), expand = getUrlArg(argument, "expand");
if(token != access_token) if(token != access_token)
{ {
*status_code = 403; *status_code = 403;
@ -1600,6 +1600,7 @@ std::string getProfile(RESPONSE_CALLBACK_ARGS)
return "Broken profile!"; return "Broken profile!";
} }
contents.emplace("token", token); contents.emplace("token", token);
contents.emplace("expand", expand);
std::string query; std::string query;
for(auto &x : contents) for(auto &x : contents)
{ {
@ -1732,11 +1733,12 @@ void simpleGenerator()
if(ini.ItemExist("profile")) if(ini.ItemExist("profile"))
{ {
profile = ini.Get("profile"); profile = ini.Get("profile");
content = getProfile("name=" + UrlEncode(profile) + "&token=" + access_token, dummy_str, &ret_code, dummy_map); content = getProfile("name=" + UrlEncode(profile) + "&token=" + access_token + "&expand=true", dummy_str, &ret_code, dummy_map);
} }
else else
{ {
ini.GetItems(allItems); ini.GetItems(allItems);
allItems.emplace("expand", "true");
for(auto &y : allItems) for(auto &y : allItems)
{ {
if(y.first == "path") if(y.first == "path")

View File

@ -1702,6 +1702,7 @@ void netchToQuanX(std::vector<nodeInfo> &nodes, INIReader &ini, std::vector<rule
proxyStr += ", udp-relay=true"; proxyStr += ", udp-relay=true";
proxyStr += ", tag=" + remark; proxyStr += ", tag=" + remark;
remarks_list.push_back(remark);
ini.Set("{NONAME}", proxyStr); ini.Set("{NONAME}", proxyStr);
nodelist.emplace_back(x); nodelist.emplace_back(x);
} }
@ -2226,7 +2227,7 @@ std::string netchToLoon(std::vector<nodeInfo> &nodes, std::string &base_conf, st
if(pluginopts.size()) if(pluginopts.size())
proxy += "," + replace_all_distinct(replace_all_distinct(pluginopts, ";obfs-host=", ","), "obfs=", ""); proxy += "," + replace_all_distinct(replace_all_distinct(pluginopts, ";obfs-host=", ","), "obfs=", "");
} }
else else if(plugin.size())
continue; continue;
break; break;
case SPEEDTEST_MESSAGE_FOUNDVMESS: case SPEEDTEST_MESSAGE_FOUNDVMESS: