Skip to content

bae4d55

Choose a tag to compare

@github-actions github-actions released this 04 Oct 08:47
· 2 commits to master since this release
LXManga: present one browser identity — UA + matching client hints

Answering "why not just use CloudFlareInterceptor": we do — it is
inherited from `context.httpClient` on every parser and the device log
proves it fires (`okhttp rejected by Cloudflare (...):
CloudFlareProtectedException`). What the interceptor cannot do is make
Cloudflare *accept* a clearance that was issued to a different client.

The client it recorded was the app's WebView. So send exactly that
identity instead of half of it:

  * the WebView user agent (userAgentKey is left at the app default);
  * `Sec-Ch-Ua`, `Sec-Ch-Ua-Mobile`, `Sec-Ch-Ua-Platform` derived from
    that user agent — these were missing entirely, and a request that
    claims to be Chrome on Android but sends no client hints at all is
    a contradiction Cloudflare can see;
  * `Accept-Language` from the device locales and
    `Upgrade-Insecure-Requests: 1`, both of which the WebView sends.

`Sec-Fetch-*` is deliberately absent: those values differ per request
type and a wrong one is worse than none.

Tests: 35/35, including the new header assertions.