This commit is contained in:
2025-08-20 07:32:57 -04:00
parent 3cebe14674
commit 81f79dea1e
4 changed files with 137 additions and 63 deletions

View File

@@ -14,6 +14,7 @@ from pydantic import BaseModel
class ValidBulkFetchRequest(BaseModel):
track_ids: list[int]
target: str
class RIP(FastAPI):
@@ -35,7 +36,7 @@ class RIP(FastAPI):
self.task_queue = Queue(
"dls",
connection=self.redis_conn,
default_timeout=3600,
default_timeout=14400,
default_result_ttl=86400,
default_failure_ttl=86400,
)
@@ -113,7 +114,7 @@ class RIP(FastAPI):
user=Depends(get_current_user),
) -> Response:
"""Bulk fetch a list of track IDs"""
if not data or not data.track_ids:
if not data or not data.track_ids or not data.target:
return JSONResponse(
content={
"err": True,
@@ -121,10 +122,11 @@ class RIP(FastAPI):
}
)
track_ids = data.track_ids
target = data.target
job = self.task_queue.enqueue(
bulk_download,
args=(track_ids,),
job_timeout=3600,
args=(track_ids, target),
job_timeout=14400,
failure_ttl=86400,
result_ttl=86400,
)
@@ -152,6 +154,8 @@ class RIP(FastAPI):
"enqueued_at": job.enqueued_at,
"started_at": job.started_at,
"ended_at": job.ended_at,
"progress": job.meta.get("progress"),
"target": job.meta.get("target"),
}
async def job_list_handler(self, request: Request, user=Depends(get_current_user)):
@@ -167,6 +171,7 @@ class RIP(FastAPI):
"result": job.result,
"enqueued_at": job.enqueued_at,
"progress": job.meta.get("progress", None),
"target": job.meta.get("target", None)
}
)
@@ -188,9 +193,11 @@ class RIP(FastAPI):
"id": job.id,
"status": status,
"result": job.result,
"tarball": job.meta.get("tarball", None),
"enqueued_at": job.enqueued_at,
"progress": job.meta.get("progress", None),
"tracks": job.meta.get("track_list", None),
"tracks": job.meta.get("tracks", None),
"target": job.meta.get("target", None),
}
)