Simon b131910ea2 rule34video: make queries robust (single-page results, safe search paths, 429-proof enrichment)
- Parser no longer requires a pagination block: single-page results
  (small tags, short searches) used to parse to zero items.
- Search path is slugged like the site's own form: "2b/9s" 404'd, "%20"
  is refused with 403 and "&" truncated the query.
- Probed archives need >= 4 videos to beat keyword search ("elf girl" was a
  one-video tag); conclusive query -> target resolutions are remembered for 6h
  so later pages and the prefetch skip the probes.
- Enriched details are cached per video URL for 2h (tokens last ~12h);
  detail fetches go through get_probe so a lasting 429 stops the batch instead
  of escalating each page to Jina/FlareSolverr. Archive failures serve stale
  cache.
- requester: get_probe waits before retrying 429/5xx and compares redirect
  paths percent-decoded (non-ASCII archives like /tags/pokémon-species/ were
  treated as redirected away); get_with_headers backs off 1/2/4s on 429.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MUYdCh2nCVsQYgJAT7gwSi
2026-10-21 20:17:58 +00:00
2026-05-20 18:25:46 +00:00
2026-04-11 21:45:00 +00:00
2026-05-18 16:52:25 +00:00
2025-05-31 09:28:30 +00:00
2026-06-18 11:24:09 +00:00
2026-06-25 20:53:51 +00:00
2026-06-25 20:53:51 +00:00
2026-10-17 05:11:17 +00:00
2025-06-05 18:50:28 +00:00
2026-01-13 18:13:51 +00:00
2026-08-05 14:24:11 +00:00
2025-09-29 15:15:34 +00:00
2026-03-21 21:27:38 +00:00
2025-07-20 07:50:10 +00:00

hottub

Rust based hottub server

the following URL:

hottub.spacemoehre.de

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
Rust based hottub server
Readme 11 MiB
Languages
Rust 82.8%
Swift 16.4%
Python 0.8%