docs: update TODO and ROADMAP with completed work

This commit is contained in:
Username
2025-12-20 22:28:57 +01:00
parent bef12e6bcf
commit 3188d50707
2 changed files with 92 additions and 230 deletions

View File

@@ -221,17 +221,29 @@ PPF (Proxy Fetcher) is a Python 2 proxy scraping and validation framework design
- [x] Make IP2Location optional (graceful fallback)
- [x] Add --nobs flag for stdlib HTMLParser fallback (bs4 optional)
### Rate Limiting & Stability (Done)
- [x] InstanceTracker class in scraper.py with exponential backoff
- [x] Configurable backoff_base, backoff_max, fail_threshold
- [x] Exception logging with context (replaced bare except blocks)
- [x] Unified _known_proxies cache in fetch.py
### Monitoring & Maintenance (Done)
- [x] Stats class in proxywatchd.py (tested/passed/failed tracking)
- [x] Periodic stats reporting (configurable stats_interval)
- [x] Stale proxy cleanup (cleanup_stale() with configurable stale_days)
- [x] Timeout config options (timeout_connect, timeout_read)
---
## Technical Debt
| Item | Description | Risk |
|------|-------------|------|
| Dual _known_proxies | ppf.py and fetch.py maintain separate caches | Medium - duplicates possible |
| ~~Dual _known_proxies~~ | ~~ppf.py and fetch.py maintain separate caches~~ | **Resolved** |
| Global config in fetch.py | set_config() pattern is fragile | Low - works but not clean |
| No input validation | Proxy strings parsed without validation | Medium - could crash on bad data |
| Silent exception catching | Some except: pass patterns hide errors | High - hard to debug |
| Hardcoded timeouts | Various timeout values scattered in code | Low - works but not configurable |
| ~~Silent exception catching~~ | ~~Some except: pass patterns hide errors~~ | **Resolved** |
| ~~Hardcoded timeouts~~ | ~~Various timeout values scattered in code~~ | **Resolved** |
---