refactor: address /code-review — rename uploader_url() to build_uploader_url()

The R12 S3 underscore-publish left worker.uploader_url() sharing a name with the
`uploader_url` model attribute and the yt-dlp `"uploader_url"` info-dict key. The
function is now build_uploader_url() — the attribute, dict key, log line and
docstrings keep the plain `uploader_url` name. Rename touches only the def, its
two call sites, and the backfill import; no behaviour change (ruff clean,
pytest 193).
This commit is contained in:
2026-08-11 23:50:49 +02:00
parent c74f69babc
commit dd2118a547
2 changed files with 5 additions and 5 deletions
+2 -2
View File
@@ -21,7 +21,7 @@ from app.db import SessionLocal
from app.downloads import edit as editmod from app.downloads import edit as editmod
from app.downloads import formats, service from app.downloads import formats, service
from app.models import MediaAsset from app.models import MediaAsset
from app.worker import uploader_url from app.worker import build_uploader_url
log = logging.getLogger("siftlode.backfill") log = logging.getLogger("siftlode.backfill")
@@ -73,7 +73,7 @@ def run() -> dict:
if a.uploader_url is None and _should_refetch(a): if a.uploader_url is None and _should_refetch(a):
url = a.source_webpage_url or service.source_url(a.source_kind, a.source_ref) url = a.source_webpage_url or service.source_url(a.source_kind, a.source_ref)
info = _extract_meta(url) info = _extract_meta(url)
uu = uploader_url(info) if info else None uu = build_uploader_url(info) if info else None
if uu: if uu:
a.uploader_url = uu a.uploader_url = uu
filled_url += 1 filled_url += 1
+3 -3
View File
@@ -262,7 +262,7 @@ def _finish_from_cache(job_id: int, asset_id: int) -> None:
db.commit() db.commit()
def uploader_url(info: dict) -> str | None: def build_uploader_url(info: dict) -> str | None:
"""The channel/uploader page URL for the auto-clickable channel line. YouTube gives a """The channel/uploader page URL for the auto-clickable channel line. YouTube gives a
`channel_url`/`uploader_url` directly; Facebook gives neither but exposes a numeric `channel_url`/`uploader_url` directly; Facebook gives neither but exposes a numeric
`uploader_id` (the page id) that resolves at facebook.com/<id>. Returns None for sources with `uploader_id` (the page id) that resolves at facebook.com/<id>. Returns None for sources with
@@ -290,7 +290,7 @@ def _fill_asset_meta_early(asset_id: int, info: dict) -> None:
# the final title with its own source_ref fallback. # the final title with its own source_ref fallback.
asset.title = normalize_title(info.get("title")) or info.get("id") asset.title = normalize_title(info.get("title")) or info.get("id")
asset.uploader = info.get("uploader") or info.get("channel") asset.uploader = info.get("uploader") or info.get("channel")
asset.uploader_url = uploader_url(info) asset.uploader_url = build_uploader_url(info)
asset.thumbnail_url = info.get("thumbnail") asset.thumbnail_url = info.get("thumbnail")
asset.duration_s = int(info["duration"]) if info.get("duration") else None asset.duration_s = int(info["duration"]) if info.get("duration") else None
asset.upload_date = _parse_upload_date(info.get("upload_date")) asset.upload_date = _parse_upload_date(info.get("upload_date"))
@@ -638,7 +638,7 @@ def _download(job_id: int, asset_id: int, source_kind: str, source_ref: str, spe
asset.acodec = info.get("acodec") if info.get("acodec") not in (None, "none") else None asset.acodec = info.get("acodec") if info.get("acodec") not in (None, "none") else None
asset.title = meta.title asset.title = meta.title
asset.uploader = meta.uploader asset.uploader = meta.uploader
asset.uploader_url = uploader_url(info) asset.uploader_url = build_uploader_url(info)
asset.upload_date = meta.upload_date asset.upload_date = meta.upload_date
asset.thumbnail_url = meta.thumbnail_url asset.thumbnail_url = meta.thumbnail_url
# Record a self-hosted poster for every download: it's the reliable link-preview # Record a self-hosted poster for every download: it's the reliable link-preview