# 2026-03-23 Work History ## Summary - Strengthened Ohli24 browse-cache validation so list/search cache only survives when at least one row contains both a link and a title. - Hardened Ohli24 list, auto-list, and search parsing against nested `post-title` markup and missing image attributes. - Prevented malformed rows from crashing the entire list response by skipping incomplete entries with warning logs. ## Implementation Notes - Added `_extract_text()` and `_extract_first()` helpers in [`mod_ohli24.py`](/Volumes/WD/Users/Work/python/ff_dev_plugins/anime_downloader/mod_ohli24.py) to avoid repeated unsafe XPath `[0]` access. - Extended `_is_valid_cached_html()` to parse list/search rows and reject cache payloads that only contain placeholder rows. - Updated changelog and plugin version to `0.7.20`. ## Verification - `python3 -m py_compile /Volumes/WD/Users/Work/python/ff_dev_plugins/anime_downloader/mod_ohli24.py` - Smoke-checked validator behavior for valid list/detail HTML and blocked HTML patterns during implementation.