Fix six dead providers (shooshtime, hdporn92, camsoda, sextb, supjav, hentaimama)
- shooshtime: update parse_list_videos selectors for the site's redesigned
markup (div.card / a.title / a.image img / div.duration / div.list div.box
/ div.name a.text)
- hdporn92: mirror the site's own links.hls4||hls3||hls2 fallback and scan
every P.A.C.K.E.R. block instead of assuming the first one is the player
block; prefer a genuine .m3u8 candidate over a decoy .txt one
- camsoda: replace naive first-`{`/last-`}` JSON extraction with a proper
balanced-brace scan so trailing wrapper markup can't corrupt the parse
("key must be a string")
- sextb: fix mirror_url() double-prefixing the scheme when building Jina
mirror URLs (produced a malformed https://r.jina.ai/http://https://... URL)
- supjav: switch curl_cffi impersonation from chrome to safari18_0 - Cloudflare
blocks the chrome/firefox profiles outright but passes Safari
- hentaimama: resolve every card on a listing page (not just the first
perPage) and truncate after filtering, so a bulk "Coming soon" placeholder
batch at the front of the feed no longer empties the whole page; report a
provider error if literally every candidate fails
Refreshes graphify's graph and docs/provider-catalog.md with the new
technical details for all six providers.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QTqf6orbHZ9rFFpVpcgzcR
This commit is contained in:
@@ -243,7 +243,15 @@ impl SextbProvider {
|
||||
}
|
||||
|
||||
fn mirror_url(&self, url: &str) -> String {
|
||||
format!("{MIRROR_PREFIX}{url}")
|
||||
// `url` is already an absolute `https://sextb.net/...` URL, and
|
||||
// MIRROR_PREFIX already supplies a scheme — concatenating them
|
||||
// directly produces a malformed `.../http://https://...` target
|
||||
// that Jina rejects, so strip the scheme first.
|
||||
let stripped = url
|
||||
.strip_prefix("https://")
|
||||
.or_else(|| url.strip_prefix("http://"))
|
||||
.unwrap_or(url);
|
||||
format!("{MIRROR_PREFIX}{stripped}")
|
||||
}
|
||||
|
||||
fn slugify(value: &str) -> String {
|
||||
@@ -1258,6 +1266,15 @@ mod tests {
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn builds_jina_mirror_url_without_double_scheme() {
|
||||
let url = provider().mirror_url("https://sextb.net/censored?genre=all");
|
||||
assert_eq!(
|
||||
url,
|
||||
"https://r.jina.ai/http://sextb.net/censored?genre=all"
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn builds_search_page_two_url() {
|
||||
let url = provider().build_url_for_target(
|
||||
|
||||
Reference in New Issue
Block a user