48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
from typing import Any, Dict, Optional
|
|
from .base import ApiClient
|
|
|
|
|
|
class JellyseerrClient(ApiClient):
|
|
async def get_status(self) -> Optional[Dict[str, Any]]:
|
|
return await self.get("/api/v1/status")
|
|
|
|
async def get_request(self, request_id: str) -> Optional[Dict[str, Any]]:
|
|
return await self.get(f"/api/v1/request/{request_id}")
|
|
|
|
async def get_recent_requests(self, take: int = 10, skip: int = 0) -> Optional[Dict[str, Any]]:
|
|
return await self.get(
|
|
"/api/v1/request",
|
|
params={
|
|
"take": take,
|
|
"skip": skip,
|
|
},
|
|
)
|
|
|
|
async def get_users(self, take: int = 50, skip: int = 0) -> Optional[Dict[str, Any]]:
|
|
return await self.get(
|
|
"/api/v1/user",
|
|
params={
|
|
"take": take,
|
|
"skip": skip,
|
|
"sort": "createdAt",
|
|
},
|
|
)
|
|
|
|
async def get_media(self, media_id: int) -> Optional[Dict[str, Any]]:
|
|
return await self.get(f"/api/v1/media/{media_id}")
|
|
|
|
async def get_movie(self, tmdb_id: int) -> Optional[Dict[str, Any]]:
|
|
return await self.get(f"/api/v1/movie/{tmdb_id}")
|
|
|
|
async def get_tv(self, tmdb_id: int) -> Optional[Dict[str, Any]]:
|
|
return await self.get(f"/api/v1/tv/{tmdb_id}")
|
|
|
|
async def search(self, query: str, page: int = 1) -> Optional[Dict[str, Any]]:
|
|
return await self.get(
|
|
"/api/v1/search",
|
|
params={
|
|
"query": query,
|
|
"page": page,
|
|
},
|
|
)
|