fix(telemetry): thread origin/title through WebView auto-extract re-nav
Some checks are pending
Backend tests / test (push) Waiting to run
Some checks are pending
Backend tests / test (push) Waiting to run
Źródła które grają przez WebView (embed) → INJECTED_JS wyłuskuje direct mp4 →
nav.replace('Player', {mode:'video'}) gubiły origin i title. Player bez origin
→ success-effect (!playOrigin) SKIP → udane odtworzenia NIE raportowały się.
freshporno (KVS ale VPS resolve spada na embed → phone WebView-extract) miało
przez to 0 success / same błędy → health=0 → fałszywe offline.
3 nav.replace w EmbedWebViewPlayer (hoster-resolve, extractedUrl effect, banner)
teraz przekazują origin/title/playbackId/entityKind z params. Zweryfikowane na
realnym telefonie: origin=tube:freshpornoorg, success-effect FIRE, backend
zapisał 2× success.
This commit is contained in:
parent
aa11fb022a
commit
e2cb8df670
2 changed files with 18 additions and 1 deletions
|
|
@ -16,6 +16,13 @@ export type ChangelogEntry = {
|
||||||
};
|
};
|
||||||
|
|
||||||
export const CHANGELOG: ChangelogEntry[] = [
|
export const CHANGELOG: ChangelogEntry[] = [
|
||||||
|
{
|
||||||
|
id: '2026-07-20',
|
||||||
|
date: 'July 2026',
|
||||||
|
items: [
|
||||||
|
'Fixed site ratings for sources that play through a quick web-view step (like freshporno): their successful plays now count, so they no longer get wrongly marked offline and demoted. Freshporno is back in rotation.',
|
||||||
|
],
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: '2026-07-16',
|
id: '2026-07-16',
|
||||||
date: 'July 2026',
|
date: 'July 2026',
|
||||||
|
|
|
||||||
|
|
@ -1467,6 +1467,8 @@ function EmbedWebViewPlayer({ params }: { params: RouteParams }) {
|
||||||
nav.replace('Player', {
|
nav.replace('Player', {
|
||||||
url: result.url,
|
url: result.url,
|
||||||
sceneId,
|
sceneId,
|
||||||
|
origin: params.origin,
|
||||||
|
title: params.title,
|
||||||
playbackId: params.playbackId,
|
playbackId: params.playbackId,
|
||||||
entityKind,
|
entityKind,
|
||||||
durationSec,
|
durationSec,
|
||||||
|
|
@ -1534,11 +1536,15 @@ function EmbedWebViewPlayer({ params }: { params: RouteParams }) {
|
||||||
nav.replace('Player', {
|
nav.replace('Player', {
|
||||||
url: extractedUrl,
|
url: extractedUrl,
|
||||||
sceneId,
|
sceneId,
|
||||||
|
origin: params.origin,
|
||||||
|
title: params.title,
|
||||||
|
playbackId: params.playbackId,
|
||||||
|
entityKind,
|
||||||
durationSec,
|
durationSec,
|
||||||
refererHost: refererHost || (initialHostRef.current || undefined),
|
refererHost: refererHost || (initialHostRef.current || undefined),
|
||||||
mode: 'video',
|
mode: 'video',
|
||||||
});
|
});
|
||||||
}, [extractedUrl, nav, sceneId, durationSec, refererHost]);
|
}, [extractedUrl, nav, sceneId, durationSec, refererHost, params.origin, params.title, params.playbackId, entityKind]);
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
upsertWatchProgress({ position_sec: 0, duration_sec: durationSec ?? undefined }).catch(
|
upsertWatchProgress({ position_sec: 0, duration_sec: durationSec ?? undefined }).catch(
|
||||||
|
|
@ -1685,6 +1691,10 @@ function EmbedWebViewPlayer({ params }: { params: RouteParams }) {
|
||||||
nav.replace('Player', {
|
nav.replace('Player', {
|
||||||
url: extractedUrl,
|
url: extractedUrl,
|
||||||
sceneId,
|
sceneId,
|
||||||
|
origin: params.origin,
|
||||||
|
title: params.title,
|
||||||
|
playbackId: params.playbackId,
|
||||||
|
entityKind,
|
||||||
durationSec,
|
durationSec,
|
||||||
refererHost,
|
refererHost,
|
||||||
mode: 'video',
|
mode: 'video',
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue