porndish scenes resolve only to playmogo.com embeds, which are DoodStream clones (doodcdn.io + pass_md5 + Cloudflare Turnstile). The mobile resolver already supported playmogo, but DoodStream is flaky from a single shot: the embed is sometimes Turnstile-gated (no pass_md5), and the pass_md5 endpoint intermittently returns the literal string "RELOAD" (stale/consumed token) instead of a base URL. The old code built "RELOAD<suffix>?token=..." -> ExoPlayer "no extractors" -> WebView -> loading forever (bug 62e78c9a). Wrap resolveDoodStream in a 3-attempt retry that re-fetches the embed (fresh token) on retryable failures (gate / RELOAD / empty / stale token), and reject a non-http pass_md5 body as retryable instead of building a garbage URL. Verified cross-IP that the pass_md5 -> base -> final flow yields 206 video/mp4 when not gated; real carrier IPs are gated far less than the test proxy. Strict improvement: worst case is the existing WebView fallback, best case native play. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| components | ||
| lib | ||
| native | ||
| screens | ||
| api.ts | ||
| ClientContext.tsx | ||
| ErrorBoundary.tsx | ||
| navigation.tsx | ||
| storage.ts | ||
| theme.ts | ||
| types.ts | ||