fix(movies): okladki pandanetwork z Adult Empire zamiast wygasajacego wp.com
Zgloszenie 6799253d: filmy Tushy Raw bez okladek, linki dzialaja. Okladki sieci pandanetwork (i*.wp.com/pandanetwork.club/.../<numer>h.jpg) to kopie okladek Adult Empire pod tym samym numerem produktu; zrodlo oddaje 404, a pamiec wp.com wygasa (40 z 40 losowych martwych). Normalizacja nowych filmow podmienia adres na imgs1cdn.adultempire.com/products/<NN>/<numer>h.jpg. Jednorazowo na produkcji przepisane 51 900 okladek (kopia starych adresow w movies_poster_backup_20261012), probka 80 z 80 zywych z VPS. Zgodnosc numeru z filmem sprawdzona po tytulach i wzrokowo na okladkach. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
cd34b296e2
commit
f6081669a0
1 changed files with 20 additions and 1 deletions
|
|
@ -1,6 +1,7 @@
|
||||||
"""RawMovie → NormalizedMovie. Reuse normalize_studio/performer/tag z scenes.py."""
|
"""RawMovie → NormalizedMovie. Reuse normalize_studio/performer/tag z scenes.py."""
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import re
|
||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
from datetime import date
|
from datetime import date
|
||||||
|
|
||||||
|
|
@ -16,6 +17,24 @@ from app.normalize.scenes import (
|
||||||
from app.normalize.text import clean_description, normalize, slugify, unescape_html
|
from app.normalize.text import clean_description, normalize, slugify, unescape_html
|
||||||
|
|
||||||
|
|
||||||
|
# Okladki z sieci pandanetwork (i*.wp.com/pandanetwork.club/.../<numer>h.jpg) to kopie okladek
|
||||||
|
# Adult Empire pod tym samym numerem produktu. Zrodlo oddaje juz 404, a pamiec podreczna wp.com
|
||||||
|
# wygasa: 2026-10-12 40 z 40 losowych okladek martwych, zgloszenie 6799253d (Tushy Raw bez
|
||||||
|
# okladek). Oryginal z Adult Empire jest pod numerem z nazwy pliku (sprawdzone wzrokowo i po
|
||||||
|
# tytulach na probce).
|
||||||
|
_PANDA_POSTER_RE = re.compile(r"pandanetwork\.club/.*/(\d{6,8})h(?:-\d)?\.jpe?g", re.IGNORECASE)
|
||||||
|
|
||||||
|
|
||||||
|
def stable_poster_url(url: str | None) -> str | None:
|
||||||
|
if not url:
|
||||||
|
return url
|
||||||
|
m = _PANDA_POSTER_RE.search(url)
|
||||||
|
if not m:
|
||||||
|
return url
|
||||||
|
pid = m.group(1)
|
||||||
|
return f"https://imgs1cdn.adultempire.com/products/{pid[-2:]}/{pid}h.jpg"
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class NormalizedMovie:
|
class NormalizedMovie:
|
||||||
external_id: str
|
external_id: str
|
||||||
|
|
@ -55,7 +74,7 @@ def normalize_movie(raw: RawMovie) -> NormalizedMovie:
|
||||||
director=raw.director,
|
director=raw.director,
|
||||||
country=raw.country,
|
country=raw.country,
|
||||||
rating=raw.rating,
|
rating=raw.rating,
|
||||||
poster_url=raw.poster_url,
|
poster_url=stable_poster_url(raw.poster_url),
|
||||||
backdrop_url=raw.backdrop_url,
|
backdrop_url=raw.backdrop_url,
|
||||||
url=raw.url,
|
url=raw.url,
|
||||||
studio=normalize_studio(raw.studio) if raw.studio else None,
|
studio=normalize_studio(raw.studio) if raw.studio else None,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue