diff --git a/app.py b/app.py index 7006d01..9874dc1 100644 --- a/app.py +++ b/app.py @@ -801,7 +801,9 @@ def get_admin_unwatched_shows(limit=10, months=ADMIN_UNWATCHED_MONTHS): dashboard uses) because a recency-limited window could mismark a show that genuinely was watched — just a while ago — as never-watched, which matters a lot more here than elsewhere given what's attached to - the wrong answer. + the wrong answer. Each show also carries whoever's Ombi request + triggered it, best-effort by title match — a show added straight in + Sonarr rather than requested has no requester to find. """ try: series_list = sonarr_series_cached() @@ -851,8 +853,26 @@ def get_admin_unwatched_shows(limit=10, months=ADMIN_UNWATCHED_MONTHS): never.sort(key=lambda x: x["size"], reverse=True) top = never[:limit] + + # Sonarr doesn't know who asked for a show — Ombi does, via whoever's + # request triggered the grab. Best-effort only: a show added straight + # in Sonarr, without an Ombi request, has no requester to find, and an + # unreachable Ombi shouldn't take down the rest of the section. + requested_by = {} + try: + for show in ombi_get("Request/tv"): + for child in show.get("childRequests", []): + user = child.get("requestedUser", {}) + alias = (user.get("alias") or user.get("userAlias") + or user.get("userName") or "").split("@")[0] + if alias: + requested_by.setdefault(show.get("title", "").lower(), alias) + except Exception: + pass + for show in top: show["size_display"] = _fmt_bytes(show["size"]) + show["requested_by"] = requested_by.get(show["title"].lower(), "") total_bytes = sum(show["size"] for show in top) return { diff --git a/templates/system.html b/templates/system.html index 3d34b5f..d25cb65 100644 --- a/templates/system.html +++ b/templates/system.html @@ -186,7 +186,7 @@ {{ show.ep_count }} EP {{ show.title }} - {% if show.year %}{{ show.year }} · {% endif %}Downloaded {{ show.added[:10] if show.added else 'unknown' }} · Never watched + {% if show.year %}{{ show.year }} · {% endif %}Downloaded {{ show.added[:10] if show.added else 'unknown' }} · {% if show.requested_by %}Requested by {{ show.requested_by }}{% else %}Requester unknown{% endif %} · Never watched {{ show.size_display }}