fix(ingest): odrzucaj daty premiery odlegle w przyszlosc

Zgloszenie de732da2 ("porndish jakby zaprzestal ingestu"). Ingest dziala, 106 nowych
zrodel w 7 dni i 12-18 scen dziennie z poprawnymi datami. Problem byl na samej gorze
listy: dwie sceny porndish z datami 2026-12-02 i 2026-09-04, dodane jeszcze w maju,
stoja przy sortowaniu po premierze nad wszystkim, wiec pierwsze, co user widzi, nigdy
sie nie zmienia.

Data odlegla o miesiace to literowka w roku albo blad parsera, nie zapowiedz.
Przyjmujemy do 14 dni w przod, dalej odrzucamy, czyli scena sortuje sie po dacie
dodania. Wyczyszczone tez wstecz: 10 wierszy w calej bazie, po tym porndish ma na
gorze sceny z 2026-08-19.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
goon-foss 2026-08-20 16:45:03 +02:00
parent e26c78df24
commit 5065df6220

View file

@ -168,13 +168,30 @@ def normalize_performer(raw: RawPerformer) -> NormalizedPerformer:
) )
#: Ile dni w przod jeszcze uznajemy date premiery za wiarygodna. Studia zapowiadaja
#: sceny z niewielkim wyprzedzeniem, ale data odlegla o miesiace to literowka w roku
#: albo blad parsera. Takie daty sa szkodliwe, bo listy sortowane po premierze pinuja
#: je na stale na gorze: dwie sceny porndish (najdalsza 2026-12-02, dodana w maju)
#: siedzialy nad wszystkim, przez co serwis wygladal, jakby przestal ingestowac
#: (zgloszenie de732da2). Odrzucamy je, czyli scena sortuje sie po dacie dodania.
_MAX_FUTURE_RELEASE_DAYS = 14
def _sane_release_date(value):
if value is None:
return None
from datetime import date, timedelta
return None if value > date.today() + timedelta(days=_MAX_FUTURE_RELEASE_DAYS) else value
def normalize_scene(raw: RawScene) -> NormalizedScene: def normalize_scene(raw: RawScene) -> NormalizedScene:
return NormalizedScene( return NormalizedScene(
external_id=raw.external_id, external_id=raw.external_id,
title=raw.title, title=raw.title,
title_normalized=normalize(raw.title), title_normalized=normalize(raw.title),
slug=slugify(raw.title), slug=slugify(raw.title),
release_date=raw.release_date, release_date=_sane_release_date(raw.release_date),
description=raw.description, description=raw.description,
duration_sec=raw.duration_sec, duration_sec=raw.duration_sec,
code=raw.code, code=raw.code,