Wire Requests approval into Radarr/Sonarr with live download status

Admin can now Approve a pending request as Movie or TV, which looks up
the title via Radarr/Sonarr's own lookup API, adds the best match with
search-on-add enabled, and tracks the resulting radarr_id/sonarr_id on
the request. A live status line (searching/queued/downloading/downloaded,
polled every 15s) shows next to each approved request.
This commit is contained in:
Myron Blair
2026-07-26 20:55:22 -05:00
parent 1891fd0b7c
commit 3d2b7a4122
5 changed files with 256 additions and 8 deletions
+10 -1
View File
@@ -191,6 +191,10 @@ class RequestUpdate(BaseModel):
status: str
class RequestApprove(BaseModel):
content_type: str # "movie" | "tv"
class MovieRequest(BaseModel):
model_config = ConfigDict(extra="ignore")
id: str = Field(default_factory=lambda: str(uuid.uuid4()))
@@ -199,7 +203,12 @@ class MovieRequest(BaseModel):
title: str
year: Optional[int] = None
notes: str = ""
status: str = "pending"
status: str = "pending" # pending | approved | fulfilled | rejected
content_type: Optional[str] = None # movie | tv, set once approved
radarr_id: Optional[int] = None
sonarr_id: Optional[int] = None
matched_title: Optional[str] = None
matched_year: Optional[int] = None
created_at: str = Field(default_factory=_now_iso)