From c4cd7fb520892bcb5507b64a5af732f8268762a5 Mon Sep 17 00:00:00 2001 From: Tindy X <49061470+tindy2013@users.noreply.github.com> Date: Mon, 9 Oct 2023 16:34:25 +0800 Subject: [PATCH] Add img-url support for Loon proxy groups --- src/generator/config/subexport.cpp | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/generator/config/subexport.cpp b/src/generator/config/subexport.cpp index 63e3d64..bb17bf6 100644 --- a/src/generator/config/subexport.cpp +++ b/src/generator/config/subexport.cpp @@ -1453,8 +1453,8 @@ void proxyToQuanX(std::vector &nodes, INIReader &ini, std::vector &nodes, const std::string &base_conf, if(ext.nodelist) return output_nodelist; + string_multimap original_groups; ini.set_current_section("Proxy Group"); + ini.get_items(original_groups); ini.erase_section(); + for(const ProxyGroupConfig &x : extra_proxy_group) { string_array filtered_nodelist; @@ -1920,6 +1923,21 @@ std::string proxyToLoon(std::vector &nodes, const std::string &base_conf, if(filtered_nodelist.empty()) 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() + ","; /* for(std::string &y : filtered_nodelist)