goon/mobile/src
jtrzupek 77323d23e6 fix(playback): retry DoodStream/playmogo resolve, handle "RELOAD" token response
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>
2026-06-06 21:14:26 +02:00
..
components mobile: skeleton grid while scene lists load (perceived perf) 2026-06-02 12:03:33 +02:00
lib fix(playback): retry DoodStream/playmogo resolve, handle "RELOAD" token response 2026-06-06 21:14:26 +02:00
native Initial commit 2026-05-20 10:10:22 +02:00
screens perf(movies+scenes): direct-play #hash movie hosters; skip empty blacklist filters 2026-06-06 19:44:41 +02:00
api.ts feat(movies): watched/continue-watching tracking end-to-end 2026-05-28 23:24:06 +02:00
ClientContext.tsx Initial commit 2026-05-20 10:10:22 +02:00
ErrorBoundary.tsx Initial commit 2026-05-20 10:10:22 +02:00
navigation.tsx fix(mobile): unify header branding to logo mark + fix top-tab overflow on narrow phones 2026-06-01 21:44:16 +02:00
storage.ts Initial commit 2026-05-20 10:10:22 +02:00
theme.ts build(apk): 0.2.0 — expo-font native, runtime 1.1, fonts re-enabled 2026-05-31 12:51:32 +02:00
types.ts perf(scenes): bounded count + has_more for filtered scene lists 2026-05-31 19:24:26 +02:00