9caa5f7c01d7a7eebbad8894a274c338d6a4bdbc
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>
hottub
Rust based hottub server
the following URL:
build it yourself
Get, Build and Host the docker image:
git clone https://gitea.spacemoehre.de/simon/hottub
sudo docker build hottub
cd hottub && cargo build --release
nano docker-compose.yml # adjust compose file
sudo docker compose up -d
Verify setup, replace the url with your setup url
curl -v http://127.0.0.1
->
* Trying 127.0.0.1:80...
* Connected to 127.0.0.1 (127.0.0.1) port 80
> GET / HTTP/1.1
> Host: 127.0.0.1:80
> User-Agent: curl/8.5.0
> Accept: */*
>
< HTTP/1.1 302 Found
< content-length: 0
< location: hottub://source?url=127.0.0.1:80
< date: Mon, 29 Sep 2025 14:58:15 GMT
<
* Connection #0 to host 127.0.0.1 left intact
make sure that you get a code 302 to a hottub:// url
Update via git pull
To Update (i.e. for new supported sites) do
cd /path/to/hottub && git pull && cargo build --release && sudo docker container restart hottub
Description
Languages
Rust
80.2%
Swift
19.1%
Python
0.7%