fix(listy): prog dlugosci nie ukrywa juz scen o NIEZNANEJ dlugosci w drill-downach
Zgloszenia 2026-08-20 ("hentaimama dalej 0 scen", "porndish zaprzestal ingestu",
"czemu sexu ma tylko 38 scen"). Trzy razy ten sam pierwotny powod, i to NIE ingest.
`api.ts` doklejal `min_duration_sec=60` do KAZDEGO listScenes bez wlasnej wartosci.
W SQL `duration_sec >= 60` jest nieprawda takze dla NULL, wiec prog wycinal nie tylko
krotkie sceny, ale wszystkie o NIEZNANEJ dlugosci. Zmierzone na produkcji:
supjav, hentaigasm, hentaimama, hentaiplay, javflix, xanimeporn 100% NULL
xhamster 90,3% (360 709) porndish 88,9% (37 736) porntrex 76,8% (616 345)
latestpornvideo 68,4% xnxx 65,2% (226 217) xvideos 63,8% (258 711)
Czyli wejscie w konkretny serwis ukrywalo ponad 1,5 mln scen i wygladalo jak martwy
albo zatrzymany tube. Ekrany drill-down (SiteScenes, PerformerScenes, StudioScenes,
TagScenes) przekazuja teraz 0: user wszedl JAWNIE w te pozycje, wiec ma zobaczyc jej
zawartosc. Glowny feed zostaje z progiem 60s, bo tam chroni przed teaserami.
Zweryfikowane na produkcji: hentaimama / supjav / xanimeporn 0 -> 50 pozycji.
Pulapka NULL opisana w api.ts, zeby ktos nie "uproscil" tego z powrotem.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
20c04698b1
commit
ae3c4ac9bb
6 changed files with 31 additions and 0 deletions
|
|
@ -134,6 +134,14 @@ export class GoonClient {
|
||||||
// "Takie sceny po 1 min to można wywalić". Pornapp/freshporno czasem
|
// "Takie sceny po 1 min to można wywalić". Pornapp/freshporno czasem
|
||||||
// zassuje teasery/trailery 30-50s, które są bezużyteczne na listach.
|
// zassuje teasery/trailery 30-50s, które są bezużyteczne na listach.
|
||||||
// Caller może override przez explicit 0 (lub null), np. admin browse.
|
// Caller może override przez explicit 0 (lub null), np. admin browse.
|
||||||
|
//
|
||||||
|
// UWAGA, drugie dno: w SQL `duration_sec >= 60` jest NIEPRAWDĄ dla NULL, więc ten
|
||||||
|
// próg wycina też sceny o NIEZNANEJ długości, a nie tylko krótkie. Dla głównego
|
||||||
|
// feedu to akceptowalne, ale przy wejściu w KONKRETNY serwis/performera/tag ukrywał
|
||||||
|
// ogromne części katalogu i wyglądał jak zatrzymany ingest (zgłoszenia 2026-08-20:
|
||||||
|
// hentaimama 0 scen, porndish "zaprzestał ingestu"). Pomiar: 100% scen supjav,
|
||||||
|
// hentaigasm, hentaimama, hentaiplay, javflix i xanimeporn ma duration NULL, do tego
|
||||||
|
// xhamster 90%, porndish 89%, porntrex 77%. Ekrany drill-down przekazują więc 0.
|
||||||
const minDur = params.min_duration_sec ?? 60;
|
const minDur = params.min_duration_sec ?? 60;
|
||||||
if (minDur > 0) qs.set('min_duration_sec', String(minDur));
|
if (minDur > 0) qs.set('min_duration_sec', String(minDur));
|
||||||
if (params.max_duration_sec !== undefined)
|
if (params.max_duration_sec !== undefined)
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,13 @@ export type ChangelogEntry = {
|
||||||
};
|
};
|
||||||
|
|
||||||
export const CHANGELOG: ChangelogEntry[] = [
|
export const CHANGELOG: ChangelogEntry[] = [
|
||||||
|
{
|
||||||
|
id: '2026-08-20',
|
||||||
|
date: 'August 2026',
|
||||||
|
items: [
|
||||||
|
'Sites, performers, studios and tags were hiding a large part of the catalogue. The "minimum length" rule was also dropping every scene whose length we simply do not know, which is most of them on some sites: hentaimama, supjav, hentaigasm, hentaiplay, javflix and xanimeporn showed nothing at all, and xhamster, porndish and porntrex showed a fraction. Opening one of those now shows everything it has.',
|
||||||
|
],
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: '2026-08-18i',
|
id: '2026-08-18i',
|
||||||
date: 'August 2026',
|
date: 'August 2026',
|
||||||
|
|
|
||||||
|
|
@ -148,6 +148,10 @@ export function PerformerScenesScreen() {
|
||||||
client.listScenes({
|
client.listScenes({
|
||||||
performer_ids: [id],
|
performer_ids: [id],
|
||||||
vertical: vertical ?? undefined,
|
vertical: vertical ?? undefined,
|
||||||
|
// 0 = nie nakładaj progu długości. User wszedł JAWNIE w tę pozycję, więc
|
||||||
|
// ukrywanie scen o nieznanej długości (w SQL NULL nie przechodzi `>= 60`)
|
||||||
|
// wyglądało jak pusty albo zatrzymany serwis. Patrz komentarz w api.ts.
|
||||||
|
min_duration_sec: 0,
|
||||||
tags: selectedTag ? [selectedTag.slug] : undefined,
|
tags: selectedTag ? [selectedTag.slug] : undefined,
|
||||||
sort: 'release_date',
|
sort: 'release_date',
|
||||||
per_page: 200,
|
per_page: 200,
|
||||||
|
|
|
||||||
|
|
@ -64,6 +64,10 @@ export function SiteScenesScreen() {
|
||||||
origin,
|
origin,
|
||||||
tags: selectedTags.length > 0 ? selectedTags : undefined,
|
tags: selectedTags.length > 0 ? selectedTags : undefined,
|
||||||
sort: 'release_date',
|
sort: 'release_date',
|
||||||
|
// 0 = nie nakładaj progu długości. User wszedł JAWNIE w tę pozycję, więc
|
||||||
|
// ukrywanie scen o nieznanej długości (w SQL NULL nie przechodzi `>= 60`)
|
||||||
|
// wyglądało jak pusty albo zatrzymany serwis. Patrz komentarz w api.ts.
|
||||||
|
min_duration_sec: 0,
|
||||||
page: pageParam,
|
page: pageParam,
|
||||||
per_page: PER_PAGE,
|
per_page: PER_PAGE,
|
||||||
}),
|
}),
|
||||||
|
|
|
||||||
|
|
@ -125,6 +125,10 @@ export function StudioScenesScreen() {
|
||||||
client.listScenes({
|
client.listScenes({
|
||||||
studio_slugs: [slug],
|
studio_slugs: [slug],
|
||||||
vertical: vertical ?? undefined,
|
vertical: vertical ?? undefined,
|
||||||
|
// 0 = nie nakładaj progu długości. User wszedł JAWNIE w tę pozycję, więc
|
||||||
|
// ukrywanie scen o nieznanej długości (w SQL NULL nie przechodzi `>= 60`)
|
||||||
|
// wyglądało jak pusty albo zatrzymany serwis. Patrz komentarz w api.ts.
|
||||||
|
min_duration_sec: 0,
|
||||||
sort: 'release_date',
|
sort: 'release_date',
|
||||||
per_page: 200,
|
per_page: 200,
|
||||||
has_playback: true,
|
has_playback: true,
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,10 @@ export function TagScenesScreen() {
|
||||||
queryFn: () =>
|
queryFn: () =>
|
||||||
client.listScenes({
|
client.listScenes({
|
||||||
tags: [slug],
|
tags: [slug],
|
||||||
|
// 0 = nie nakładaj progu długości. User wszedł JAWNIE w tę pozycję, więc
|
||||||
|
// ukrywanie scen o nieznanej długości (w SQL NULL nie przechodzi `>= 60`)
|
||||||
|
// wyglądało jak pusty albo zatrzymany serwis. Patrz komentarz w api.ts.
|
||||||
|
min_duration_sec: 0,
|
||||||
// Wertykał przyniesiony ze sceny. Bez niego backend wycina wszystkie sekcje
|
// Wertykał przyniesiony ze sceny. Bez niego backend wycina wszystkie sekcje
|
||||||
// poboczne, więc tag kliknięty w anime pokazywał sceny spoza anime (e9de414c).
|
// poboczne, więc tag kliknięty w anime pokazywał sceny spoza anime (e9de414c).
|
||||||
vertical: vertical ?? undefined,
|
vertical: vertical ?? undefined,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue