From 90498afeb74f71ce5eecb80c33520f58ff46cead Mon Sep 17 00:00:00 2001 From: parhelia512 <0011d3@gmail.com> Date: Wed, 1 Oct 2025 18:34:46 +0800 Subject: [PATCH 1/2] Update RouteEntity.cpp --- src/dataStore/RouteEntity.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/dataStore/RouteEntity.cpp b/src/dataStore/RouteEntity.cpp index 2979816..d852c18 100644 --- a/src/dataStore/RouteEntity.cpp +++ b/src/dataStore/RouteEntity.cpp @@ -567,14 +567,15 @@ namespace Configs { QJsonArray RoutingChain::get_route_rules(bool forView, std::map outboundMap) { QJsonArray res; - if (Configs::dataStore->adblock_enable) { + bool added_adblock; + auto createAdblockRule = []() -> QJsonObject { QJsonObject obj; obj["action"] = "reject"; QJsonArray jarray; jarray.append("throne-adblocksingbox"); obj["rule_set"] = jarray; - res += obj; - } + return obj; + }; for (const auto &item: Rules) { auto outboundTag = QString(); if (outboundMap.contains(item->outboundID)) outboundTag = outboundMap[item->outboundID]; @@ -583,8 +584,14 @@ namespace Configs { MW_show_log("Aborted generating routing section, an error has occurred"); return {}; } + if (Configs::dataStore->adblock_enable && rule_json["action"] == "route") { + res += createAdblockRule(); + added_adblock = true; + } res += rule_json; } + if (Configs::dataStore->adblock_enable && !added_adblock) + res += createAdblockRule(); return res; } @@ -849,4 +856,4 @@ namespace Configs { } JsonStore::FromJson(object); } -} \ No newline at end of file +} From 47d10b1fa23f10bca2e197a78c9ad16333dd1fc2 Mon Sep 17 00:00:00 2001 From: parhelia512 <0011d3@gmail.com> Date: Wed, 1 Oct 2025 19:12:25 +0800 Subject: [PATCH 2/2] Update RouteEntity.cpp --- src/dataStore/RouteEntity.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dataStore/RouteEntity.cpp b/src/dataStore/RouteEntity.cpp index d852c18..be35320 100644 --- a/src/dataStore/RouteEntity.cpp +++ b/src/dataStore/RouteEntity.cpp @@ -584,13 +584,13 @@ namespace Configs { MW_show_log("Aborted generating routing section, an error has occurred"); return {}; } - if (Configs::dataStore->adblock_enable && rule_json["action"] == "route") { + if (!added_adblock && Configs::dataStore->adblock_enable && rule_json["action"] == "route") { res += createAdblockRule(); added_adblock = true; } res += rule_json; } - if (Configs::dataStore->adblock_enable && !added_adblock) + if (!added_adblock && Configs::dataStore->adblock_enable) res += createAdblockRule(); return res;