Commit Graph

50 Commits

Author SHA1 Message Date
Simon
2d35f29f44 Fix xxxtik empty results; replay solved identity on raw requests
Raw requester calls did not adopt the remembered FlareSolverr user agent,
so a RedGifs token minted under it was rejected on every gif lookup.
Tag/creator pages that mix non-RedGifs sources are refilled from later
cursor batches instead of coming back empty.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MUYdCh2nCVsQYgJAT7gwSi
2026-10-10 09:33:36 +00:00
Simon
e204202611 Add fullporner provider with xiaoshenke proxy
- Implement fullporner.com provider with search, pagination, categories, pornstars
- Add xiaoshenke.net proxy for Cloudflare-protected embed videos
- Proxy fetches signed URLs via FlareSolverr and streams video content
- Fix quality bitmask mapping (1=360p, 2=480p, 4=720p, 8=1080p)
- Support HEAD/GET/Range for video streaming

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-08 17:33:09 +00:00
Simon
2adde22514 Fix broken-playback providers (wowxxx, porndish, noodlemagazine) and a shared 429 retry bug
- wowxxx: site migrated wow.xxx -> wowxxx.to; update BASE_URL and stop
  pinning Version::HTTP_11, which mismatched the TLS handshake's h2 ALPN
  and got scored as a bot (same root cause already fixed for jable.tv)
- porndish: recognize playmogo.com iframes as the same Doodstream-clone
  embed protocol as myvidplay.com (confirmed live) instead of falling
  through to a naive branch that pointed formats[0] at the unresolved,
  Cloudflare-protected iframe URL; kept in sync in both providers/porndish.rs
  and proxies/porndish.rs since single-provider builds can't share code
  across that boundary
- noodlemagazine: entity-decode the thumb URL pulled from a raw
  data-original="..." attribute - undecoded `&amp;` in the query string
  was getting the CDN to 400 the request
- requester.rs: cap the previously-unbounded HTTP 429 retry loop at 3
  attempts before falling through to the existing Jina/FlareSolverr
  fallback, instead of retrying forever with no bound

Also fixes check.py: the thumbnail check never consulted the
CF-protected-host allowlist (only the page-url check did), and adds
missav.ws/surrit.com, tik.porn/image-cdn.tik.porn, vrporn.com, and
www.wowxxx.to/img.wowxxx.to to that allowlist - all four providers
already work fine through the app's real client; the checker's plain
probes (and its yt-dlp invocation, which never applies a channel's
declared ytdlpCommand impersonation flag) just can't replicate that.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QTqf6orbHZ9rFFpVpcgzcR
2026-09-22 19:42:53 +00:00
Simon
5941a6e607 upgraded wreq 2026-09-07 13:00:19 +00:00
Simon
2b491995f2 production fix 2026-08-05 14:13:41 +00:00
Simon
9caa5f7c01 fix jable: FlaresolverrCookie missing fields + requester transport-error fallback
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>
2026-06-26 20:43:56 +00:00
Simon
3c69382d5c javtiful fix 2026-06-26 12:33:53 +00:00
Simon
6d5771a038 add hotbunny provider + fix domain cookie scoping in requester
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>
2026-06-24 18:40:57 +00:00
Simon
b7ebb0d768 fixed a bug in requester 2026-06-23 19:17:16 +00:00
Simon
e4941b1209 removed archivebate1 2026-05-22 09:19:19 +00:00
Simon
07154d50de fullporner & thepornbunny 2026-05-21 12:17:44 +00:00
Simon
5e5786010a doodstream and lulustream in sxyprn integrated
Co-authored-by: Copilot <copilot@github.com>
2026-05-06 11:17:26 +00:00
Simon
01306c508a vidara and cargo updates 2026-05-05 12:25:43 +00:00
Simon
6a72f84c17 archivebate1 2026-04-22 14:01:08 +00:00
Simon
fe5cf9a42f archivebate work and pornxp returned 2026-04-14 16:58:04 +00:00
Simon
b8c326306d vjav 2026-04-03 19:24:46 +00:00
Simon
e2796bfd71 freejse searches 2026-03-31 23:01:51 +00:00
Simon
80207efa73 noodlemagazine upgrade 2026-03-31 13:09:51 +00:00
Simon
bbb1792dbe increase runtime test timout to 100s 2026-03-29 17:37:32 +00:00
Simon
fbe04fc752 upgrades 2026-03-22 15:56:25 +00:00
Simon
50ea0e73b7 pimpbunny fix 2026-03-22 12:27:46 +00:00
Simon
a2d31d90a1 more debug info 2026-03-21 22:29:45 +00:00
Simon
7b66e5b28a debugging and single provider compime 2026-03-21 21:18:43 +00:00
Simon
a66f44c747 heavyfetish and other changes 2026-03-17 21:04:11 +00:00
Simon
7680a93fab pimpbunny thumb 2026-03-17 09:17:28 +00:00
Simon
3a2e77436e swap to curl-cffi 2026-03-17 08:41:48 +00:00
Simon
9d7146e705 updated wreq emulation 2026-03-10 16:15:45 +00:00
Simon
8b54eeac81 upgraded wreq 2026-03-10 16:07:48 +00:00
Simon
97046f1399 xfree fix 2026-03-08 21:23:18 +00:00
Simon
2627505ade fixes and cleanup 2026-03-05 18:18:48 +00:00
Simon
76fd5a4f4f bugfixes 2026-03-05 13:51:57 +00:00
Simon
8157e223fe provider refactors and fixes 2026-03-05 13:28:38 +00:00
Simon
eea8d9ae6f some upgrades 2026-02-23 11:52:15 +00:00
Simon
34992242b7 various bugfixes 2026-01-13 18:13:51 +00:00
Simon
aaff7d00c6 hypnotube 2026-01-10 18:29:29 +00:00
Simon
0fc3bed6a7 javtiful done 2026-01-07 12:48:38 +00:00
Simon
9739560c03 removed unimportant prints 2025-12-04 13:51:34 +00:00
Simon
d856ade32b adjusted requester to supply http::version itself 2025-11-30 06:53:21 +00:00
Simon
a0e0a8e4b1 hanime updates 2025-10-17 08:19:32 +00:00
Simon
09c06df163 pmvhaven fix 2025-10-12 19:23:16 +00:00
Simon
7c73601954 now supports sites 2025-10-04 17:40:03 +00:00
Simon
28a4c57616 overhault to fix warnings etc 2025-10-04 14:28:29 +00:00
Simon
584abfd431 cargo fixed 2025-09-19 11:13:37 +00:00
Simon
ff18f3eb34 sxyprn 2025-09-03 12:15:08 +00:00
Simon
c3f994ccbb freshporno 2025-09-02 09:58:19 +00:00
Simon
44b42170be testing this fix 2025-08-28 17:53:02 +00:00
Simon
f10491dd73 bugfix 2025-08-23 06:50:21 +00:00
Simon
2a32690894 removed debug prints 2025-08-21 10:18:36 +00:00
Simon
59d30695e9 now safes the cookies for the requester 2025-08-21 10:18:06 +00:00
Simon
c05991ee23 fixes for perfectgirls and missav 2025-08-21 09:06:30 +00:00