Commit Graph

609 Commits

Author SHA1 Message Date
Simon
9c078f1b60 Fix eporner provider never resolving playable video formats
item.formats was always null, leaving the client to open the bare
eporner.com page URL — which the site serves as a small
restricted/preview clip with an "only available on the website"
message instead of the real video.

Reverse-engineered the site's own player flow (matches yt-dlp's
EpornerIE extractor): derive calc_hash from the page's hash via
per-chunk base36 encoding, call the site's /xhr/video/{id} JSON API,
and populate formats[] with the real direct mp4 URLs across all
available resolutions, sorted highest first.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017haiuheHbREQdnh3B5rqgc
2026-09-08 18:30:08 +00:00
Simon
9e3a680ef2 Fix hornyleak/hentaimama providers returning wrong media
hornyleak: yt-dlp's generic extractor on the detail page picked up the
site's own 728x90 banner-ad <video> tag instead of following the real
/embed/{id}/ iframe, so every item streamed an ad. Now resolve the
actual HLS master playlist via the existing embed -> hdplayer.gives
chain and ship it as an explicit format.

hentaimama: search/genre/studio results are series cards, and
resolving them only followed the *last* episode link, so a 4-episode
series only ever surfaced 1 item. Now expands every series match into
all of its episodes.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017haiuheHbREQdnh3B5rqgc
2026-09-08 16:37:58 +00:00
Simon
e50003a7ea error fixes 2026-09-08 10:44:25 +00:00
Simon
7452dd5aa3 more providers 2026-09-07 19:31:34 +00:00
Simon
dd0c6f8a91 playwright update to 0.17 2026-09-07 16:10:28 +00:00
Simon
16219e1ddf playwright update 2026-09-07 15:59:03 +00:00
Simon
86c8faca44 more providers 2026-09-07 15:25:03 +00:00
Simon
5941a6e607 upgraded wreq 2026-09-07 13:00:19 +00:00
Simon
e37563e5bc hentaihaven fixes 2026-09-07 08:57:43 +00:00
Simon
ee5e124056 fixes 2026-09-07 08:02:15 +00:00
Simon
1537836b19 include chromium 2026-08-05 14:24:11 +00:00
Simon
2b491995f2 production fix 2026-08-05 14:13:41 +00:00
Simon
361d8e785c xgroovy 2026-08-05 13:36:04 +00:00
Simon
fbc473d518 xlecx 2026-07-15 06:01:23 +00:00
Simon
3b591c1950 melonstube fix 2026-07-06 17:51:06 +00:00
Simon
94cc3d7bbb melonstube 2026-07-06 17:29:04 +00:00
Simon
b753863d30 another redgifs fix 2026-07-06 17:12:50 +00:00
Simon
4c88ceef0d redgifs fix 2026-07-06 16:39:16 +00:00
Simon
d1a05de50e ytdlp command and xgroovy 2026-07-06 16:07:54 +00:00
Simon
55d687c361 sxyprn fix? 2026-07-06 14:59:11 +00:00
Simon
1f9977062c redgifs 2026-07-06 11:51:52 +00:00
Simon
4dc1072d86 omgxxx fix 2026-06-30 20:42:48 +00:00
Simon
83e433d09b supjav fix 2026-06-27 19:28:14 +00:00
Simon
bf8d1c9f9e tnaflix fix 2026-06-27 07:18:20 +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
03c4e4d3c4 paradisehill fixes 2026-06-26 16:55:24 +00:00
Simon
9571c7031a sxyporn cdn racing 2026-06-26 15:46:15 +00:00
Simon
3c69382d5c javtiful fix 2026-06-26 12:33:53 +00:00
Simon
82d22e99f7 sxyprn update (no formats) 2026-06-25 20:53:51 +00:00
Simon
e4a84f34ee added playbackMethod to videoitem 2026-06-25 05:33:11 +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
8373d49593 sxyprn includes referer on post sites 2026-06-24 18:10:44 +00:00
Simon
94e9603fe5 add kwiky provider
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>
2026-06-24 15:43:45 +00:00
Simon
b7ebb0d768 fixed a bug in requester 2026-06-23 19:17:16 +00:00
Simon
228fdf7a21 perverzija fixed 2026-06-23 11:31:16 +00:00
Simon
4dcdf5e8d1 xfree frontpage 2026-06-23 10:47:30 +00:00
Simon
0402e5ac76 ensure proxy urls have a host in front and not simple "/" path 2026-06-23 06:33:03 +00:00
Simon
614361f0f3 animeidhentai fixed 2026-06-23 06:07:36 +00:00
Simon
0a1bc6b727 xxxtik 2026-06-23 05:45:08 +00:00
Simon
da51d6a910 hentai 2026-06-22 18:54:59 +00:00
Simon
342c7dc098 camsoda update 2026-06-22 13:22:37 +00:00
Simon
570a77c90b hourly cleanup 2026-06-21 11:39:38 +00:00
Simon
6d18397c51 camsoda 2026-06-21 11:21:56 +00:00
Simon
ff680964cf porn4fans fix 2026-06-20 12:03:23 +00:00
Simon
d21c36e585 fyptt search fix
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>
2026-06-19 21:47:21 +00:00
Simon
1bd06db894 fyptt 2026-06-19 08:25:33 +00:00
Simon
674ea99b0d fikffap 2026-06-19 06:07:50 +00:00
Simon
1a1a05941c fikfap 2026-06-18 13:49:08 +00:00
Simon
25ea03d696 hentaihaven 2026-06-18 11:24:09 +00:00
Simon
751fc7765a tikporn 2026-06-18 10:41:49 +00:00