"""Backfill klipów RedGifs po niszach (społecznościach). Do uruchamiania ręcznego. Scheduler bierze tylko globalne „najnowsze" (co godzinę). Głębszy katalog chodzi się tu: lista nisz z API jest posortowana od najpopularniejszych, dla każdej bierzemy N stron po 100 gifów w wybranym porządku (`latest` = świeże, `top28` = najlepsze z miesiąca). Jedno zapytanie RedGifs widzi maks. 10 000 wyników, więc `--per-niche-pages` ≤ 100. Długi przebieg odpalaj przez `docker compose run -d --rm worker python -m scripts...` (nie `exec`, patrz notatka o restarcie workera), z pliku, nie z heredoca. python -m scripts.clips_backfill_redgifs --niche-pages 1 --per-niche-pages 1 # ~10k python -m scripts.clips_backfill_redgifs --niche-pages 19 --per-niche-pages 5 --order top28 """ from __future__ import annotations import argparse import logging from app.scheduler.clips_ingest import run_redgifs_niches def main() -> None: logging.basicConfig(level=logging.INFO, format="%(asctime)s %(message)s") ap = argparse.ArgumentParser() ap.add_argument("--niche-pages", type=int, default=1, help="stron listy nisz (100 nisz/strona)") ap.add_argument("--per-niche-pages", type=int, default=1, help="stron gifów na niszę (100/strona)") ap.add_argument("--order", default="latest", choices=["latest", "top", "top7", "top28", "trending", "score"]) ap.add_argument("--skip", type=int, default=0, help="pomiń pierwsze N nisz (wznowienie)") a = ap.parse_args() out = run_redgifs_niches( niche_pages=a.niche_pages, per_niche_pages=a.per_niche_pages, order=a.order, skip=a.skip ) print(out) if __name__ == "__main__": main()