AniX/backend/modules/release/release.py

75 lines
2.2 KiB
Python

import requests
from fastapi import APIRouter
from fastapi import Request
from modules.proxy import apiRequest
from modules.proxy import ENDPOINTS
from modules.proxy import USER_AGENT
router = APIRouter()
@router.get("/{release_id}", summary="Get release info")
async def GetReleaseById(request: Request, release_id: str, token: str = ""):
return await apiRequest(
request, ENDPOINTS["release"]["info"], release_id, query=f"?token={token}"
)
@router.get("/{release_id}/voiceover", summary="Get release voiceover info")
async def GetReleaseVoiceover(request: Request, release_id: str):
return await apiRequest(request, ENDPOINTS["release"]["episode"], release_id)
@router.get(
"/{release_id}/{voiceover_id}",
summary="Get available players for selected voiceover of a release",
)
async def GetReleaseVoiceoverPlayer(
request: Request, release_id: str, voiceover_id: str
):
return await apiRequest(
request, ENDPOINTS["release"]["episode"], f"{release_id}/{voiceover_id}"
)
@router.get(
"/{release_id}/{voiceover_id}/{source_id}",
summary="Get available episodes for selected voiceover and a player of a release",
)
async def GetReleaseEpisodes(
request: Request,
release_id: str,
voiceover_id: str,
source_id: str,
token: str = "",
):
return await apiRequest(
request,
ENDPOINTS["release"]["episode"],
f"{release_id}/{voiceover_id}/{source_id}",
query=f"?token={token}",
)
@router.get(
"/{release_id}/{source_id}/{episode}/saveToHistory",
summary="mark episode of a selected voiceover as watched and save it to watch history",
)
async def MarkEpisodeAsWatched(
request: Request, release_id: str, source_id: str, episode: str, token: str
):
headers = {
"User-Agent": USER_AGENT,
"Content-Type": "application/json; charset=UTF-8",
}
requests.get(
f"{ENDPOINTS['statistic']['markWatched']}/{release_id}/{source_id}/{episode}?token={token}",
headers=headers,
)
requests.get(
f"{ENDPOINTS['statistic']['addHistory']}/{release_id}/{source_id}/{episode}?token={token}",
headers=headers,
)
return {"success"}