Add img-url support for Loon proxy groups

This commit is contained in:
Tindy X 2023-10-09 16:34:25 +08:00
parent cb409ddf7e
commit c4cd7fb520
No known key found for this signature in database
GPG Key ID: CD068E6DB6C55A1C

View File

@ -1453,8 +1453,8 @@ void proxyToQuanX(std::vector<Proxy> &nodes, INIReader &ini, std::vector<Ruleset
break; break;
case ProxyGroupType::SSID: case ProxyGroupType::SSID:
type = "ssid"; type = "ssid";
for(auto iter = x.Proxies.begin(); iter != x.Proxies.end(); iter++) for(const auto & proxy : x.Proxies)
filtered_nodelist.emplace_back(replaceAllDistinct(*iter, "=", ":")); filtered_nodelist.emplace_back(replaceAllDistinct(proxy, "=", ":"));
break; break;
default: default:
continue; continue;
@ -1889,8 +1889,11 @@ std::string proxyToLoon(std::vector<Proxy> &nodes, const std::string &base_conf,
if(ext.nodelist) if(ext.nodelist)
return output_nodelist; return output_nodelist;
string_multimap original_groups;
ini.set_current_section("Proxy Group"); ini.set_current_section("Proxy Group");
ini.get_items(original_groups);
ini.erase_section(); ini.erase_section();
for(const ProxyGroupConfig &x : extra_proxy_group) for(const ProxyGroupConfig &x : extra_proxy_group)
{ {
string_array filtered_nodelist; string_array filtered_nodelist;
@ -1920,6 +1923,21 @@ std::string proxyToLoon(std::vector<Proxy> &nodes, const std::string &base_conf,
if(filtered_nodelist.empty()) if(filtered_nodelist.empty())
filtered_nodelist.emplace_back("DIRECT"); filtered_nodelist.emplace_back("DIRECT");
auto iter = std::find_if(original_groups.begin(), original_groups.end(), [&](const string_multimap::value_type &n)
{
return trim(n.first) == x.Name;
});
if(iter != original_groups.end())
{
string_array vArray = split(iter->second, ",");
if(vArray.size() > 1)
{
if(trim(vArray[vArray.size() - 1]).find("img-url") == 0)
filtered_nodelist.emplace_back(trim(vArray[vArray.size() - 1]));
}
}
group = x.TypeStr() + ","; group = x.TypeStr() + ",";
/* /*
for(std::string &y : filtered_nodelist) for(std::string &y : filtered_nodelist)