Three bugs prevented jable.tv from returning items:
1. FlaresolverrCookie deserialization (root cause): fields like `expires`,
`size`, `priority`, `sameParty`, `sourceScheme`, `sourcePort` are
omitted by FlareSolverr for session cookies, causing serde to fail with
"missing field" and the entire solve to return Err. Added #[serde(default)]
to all non-essential cookie fields.
2. Transport-error branch in get_with_headers: when direct fetch fails with
a transport error and Jina returns a CF challenge body, the old code
returned Ok(challenge_html) instead of falling through to FlareSolverr.
Now checks looks_like_cloudflare_challenge and breaks to FS.
3. Post-FlareSolverr retry: wreq's Firefox136 TLS fingerprint causes CF to
drop the connection even with FS cookies applied, so request.send()
returns Err. Was propagated with `?`; now catches and returns
res.solution.response (the headless-browser body) directly.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
New channel: hotbunny (AI-generated hentai, hotbunny.ai JSON API).
Includes thumbnail proxy (/proxy/hotbunny-thumb/) since assets.hotbunny.ai
is CF bot-managed. check.py updated to treat CF-protected format URLs as
warnings rather than errors.
requester.rs: store_response_cookies now honours the Domain attribute in
Set-Cookie headers — cookies scoped to .domain.com are registered against
the parent domain so the wreq Jar returns them for sub.domain.com requests
automatically, without per-provider workarounds.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
kwiky.com (ICF/StreamMate platform) short-form cam clips. Two-step API
(ID list → metadata batch), XSRF token auth cached with double-checked
RwLock, direct MP4 formats from media.icfcdn.com, 48 curated tags via
keywordSearch.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Bare keyword queries no longer hijack to a category archive when the
query matches a category name (sexy/ass/tiktok/...); only an explicit
cat:/category: prefix or the categories filter routes to an archive.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>