From 304830e38257039d0436b7656089ae49f47392bf Mon Sep 17 00:00:00 2001 From: Username Date: Wed, 18 Feb 2026 00:50:00 +0100 Subject: [PATCH] watchd: delete proxies immediately on max_fail instead of marking stale --- proxywatchd.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/proxywatchd.py b/proxywatchd.py index 4ef16e8..7dc387d 100644 --- a/proxywatchd.py +++ b/proxywatchd.py @@ -1648,9 +1648,20 @@ class Proxywatchd(): for job in self.collected if job.failcount == 0 and job.exit_ip] + # Separate dead proxies for deletion + dead_proxies = [a[-1] for a in args if a[0] == DEAD_PROXY or a[0] >= max_fail] + live_args = [a for a in args if a[0] != DEAD_PROXY and a[0] < max_fail] + with self._db_context() as db: query = 'UPDATE proxylist SET failed=?,tested=?,dronebl=?,country=?,proto=?,success_count=?,total_duration=?,mitm=?,consecutive_success=?,asn=?,protos_working=?,last_check=?,last_target=? WHERE proxy=?' - db.executemany(query, args) + if live_args: + db.executemany(query, live_args) + + # Delete proxies that reached max_fail + if dead_proxies: + db.executemany('DELETE FROM proxylist WHERE proxy=?', + [(p,) for p in dead_proxies]) + _log('deleted %d dead proxies' % len(dead_proxies), 'watchd') # Batch update latency metrics for successful proxies if latency_updates: