|
@@ -138,26 +138,13 @@ pub async fn enhance() -> (Mapping, Vec<String>, HashMap<String, ResultLog>) {
|
|
|
let mut result_map = HashMap::new(); // 保存脚本日志
|
|
|
let mut exists_keys = use_keys(&config); // 保存出现过的keys
|
|
|
|
|
|
- // 处理用户的profile
|
|
|
-
|
|
|
- if let ChainType::Rules(rules) = rules_item.data {
|
|
|
- config = use_seq(rules, config.to_owned(), "rules");
|
|
|
- }
|
|
|
-
|
|
|
- if let ChainType::Proxies(proxies) = proxies_item.data {
|
|
|
- config = use_seq(proxies, config.to_owned(), "proxies");
|
|
|
- }
|
|
|
-
|
|
|
- if let ChainType::Groups(groups) = groups_item.data {
|
|
|
- config = use_seq(groups, config.to_owned(), "proxy-groups");
|
|
|
- }
|
|
|
-
|
|
|
- if let ChainType::Merge(merge) = merge_item.data {
|
|
|
+ // 全局Merge和Script
|
|
|
+ if let ChainType::Merge(merge) = global_merge.data {
|
|
|
exists_keys.extend(use_keys(&merge));
|
|
|
config = use_merge(merge, config.to_owned());
|
|
|
}
|
|
|
|
|
|
- if let ChainType::Script(script) = script_item.data {
|
|
|
+ if let ChainType::Script(script) = global_script.data {
|
|
|
let mut logs = vec![];
|
|
|
|
|
|
match use_script(script, config.to_owned()) {
|
|
@@ -169,16 +156,28 @@ pub async fn enhance() -> (Mapping, Vec<String>, HashMap<String, ResultLog>) {
|
|
|
Err(err) => logs.push(("exception".into(), err.to_string())),
|
|
|
}
|
|
|
|
|
|
- result_map.insert(script_item.uid, logs);
|
|
|
+ result_map.insert(global_script.uid, logs);
|
|
|
}
|
|
|
|
|
|
- // 全局Merge和Script
|
|
|
- if let ChainType::Merge(merge) = global_merge.data {
|
|
|
+ // 订阅关联的Merge、Script、Rules、Proxies、Groups
|
|
|
+ if let ChainType::Rules(rules) = rules_item.data {
|
|
|
+ config = use_seq(rules, config.to_owned(), "rules");
|
|
|
+ }
|
|
|
+
|
|
|
+ if let ChainType::Proxies(proxies) = proxies_item.data {
|
|
|
+ config = use_seq(proxies, config.to_owned(), "proxies");
|
|
|
+ }
|
|
|
+
|
|
|
+ if let ChainType::Groups(groups) = groups_item.data {
|
|
|
+ config = use_seq(groups, config.to_owned(), "proxy-groups");
|
|
|
+ }
|
|
|
+
|
|
|
+ if let ChainType::Merge(merge) = merge_item.data {
|
|
|
exists_keys.extend(use_keys(&merge));
|
|
|
config = use_merge(merge, config.to_owned());
|
|
|
}
|
|
|
|
|
|
- if let ChainType::Script(script) = global_script.data {
|
|
|
+ if let ChainType::Script(script) = script_item.data {
|
|
|
let mut logs = vec![];
|
|
|
|
|
|
match use_script(script, config.to_owned()) {
|
|
@@ -190,7 +189,7 @@ pub async fn enhance() -> (Mapping, Vec<String>, HashMap<String, ResultLog>) {
|
|
|
Err(err) => logs.push(("exception".into(), err.to_string())),
|
|
|
}
|
|
|
|
|
|
- result_map.insert(global_script.uid, logs);
|
|
|
+ result_map.insert(script_item.uid, logs);
|
|
|
}
|
|
|
|
|
|
// 合并默认的config
|