From 29f2fad446956b5f0253bae0f32418ce8c13419c Mon Sep 17 00:00:00 2001 From: wumode <32482253+wumode@users.noreply.github.com> Date: Sat, 2 Aug 2025 16:17:07 +0800 Subject: [PATCH] Update plugins.v2/clashruleprovider/__init__.py Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- plugins.v2/clashruleprovider/__init__.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/plugins.v2/clashruleprovider/__init__.py b/plugins.v2/clashruleprovider/__init__.py index f3f6cf4..f1df2c7 100644 --- a/plugins.v2/clashruleprovider/__init__.py +++ b/plugins.v2/clashruleprovider/__init__.py @@ -649,7 +649,7 @@ class ClashRuleProvider(_PluginBase): def get_hosts(self) -> schemas.Response: if not self._enabled: - schemas.Response(success=True, message='', data={'hosts': []}) + return schemas.Response(success=True, message='', data={'hosts': []}) return schemas.Response(success=True, message='', data={'hosts': self._hosts}) def update_hosts(self, params: dict = Body(...)) -> schemas.Response: @@ -660,13 +660,16 @@ class ClashRuleProvider(_PluginBase): return schemas.Response(success=False, message=f"Invalid param: domain={domain}") # Search for the host with the same domain for i, host in enumerate(self._hosts): - if host['domain'] == domain: + if host.get('domain') == domain: # Update the existing host self._hosts[i] = {**host, **params.get('value', {})} self.save_data('hosts', self._hosts) return schemas.Response(success=True, message=f'Host for domain {domain} updated successfully.') - self._hosts.append(params.get('value', {})) + new_host = params.get('value', {}) + if not new_host.get('domain'): + return schemas.Response(success=False, message=f"Invalid param: value={new_host}") + self._hosts.append(new_host) self.save_data('hosts', self._hosts) return schemas.Response(success=True, message=f"New host for domain {domain} added successfully.")