浏览代码

feat(gui): 添加 test_prefix 和 rule_ip_limit 配置项

- 在配置界面中新增 test_prefix 输入框
- 在配置界面中新增 rule_ip_limit 输入框
- 更新配置加载逻辑以支持新字段默认值
- 更新配置保存逻辑以处理新字段数据类型转换
mcbaiyun 2 月之前
父节点
当前提交
ae1f73a05e
共有 1 个文件被更改,包括 16 次插入0 次删除
  1. 16 0
      gui.py

+ 16 - 0
gui.py

@@ -49,6 +49,14 @@ class ProtectorGUI(tk.Tk):
         self.th_entry = tk.Entry(cf, width=10)
         self.th_entry.grid(row=1, column=1, sticky="w", padx=4, pady=2)
 
+        tk.Label(cf, text="test_prefix:").grid(row=1, column=2, sticky="w", padx=(12,0))
+        self.test_prefix_entry = tk.Entry(cf, width=15)
+        self.test_prefix_entry.grid(row=1, column=3, sticky="w", padx=4, pady=2)
+
+        tk.Label(cf, text="rule_ip_limit:").grid(row=2, column=2, sticky="w", padx=(12,0))
+        self.rule_limit_entry = tk.Entry(cf, width=15)
+        self.rule_limit_entry.grid(row=2, column=3, sticky="w", padx=4, pady=2)
+
         tk.Label(cf, text="scan_interval (s):").grid(row=2, column=0, sticky="w")
         self.interval_entry = tk.Entry(cf, width=10)
         self.interval_entry.grid(row=2, column=1, sticky="w", padx=4, pady=2)
@@ -88,6 +96,11 @@ class ProtectorGUI(tk.Tk):
         self.base_entry.insert(0, self.cfg.get("base_url", ""))
         self.th_entry.delete(0, tk.END)
         self.th_entry.insert(0, str(self.cfg.get("conn_threshold", "")))
+        # new fields
+        self.test_prefix_entry.delete(0, tk.END)
+        self.test_prefix_entry.insert(0, str(self.cfg.get("test_prefix", "Test_")))
+        self.rule_limit_entry.delete(0, tk.END)
+        self.rule_limit_entry.insert(0, str(self.cfg.get("rule_ip_limit", 1000)))
         self.interval_entry.delete(0, tk.END)
         self.interval_entry.insert(0, str(self.cfg.get("scan_interval", 60)))
 
@@ -103,6 +116,9 @@ class ProtectorGUI(tk.Tk):
         try:
             self.cfg["base_url"] = self.base_entry.get().strip()
             self.cfg["conn_threshold"] = int(self.th_entry.get().strip())
+            # optional new fields
+            self.cfg["test_prefix"] = str(self.test_prefix_entry.get().strip())
+            self.cfg["rule_ip_limit"] = int(self.rule_limit_entry.get().strip())
             self.cfg["scan_interval"] = int(self.interval_entry.get().strip())
         except Exception as e:
             messagebox.showerror("错误", f"配置输入无效: {e}")