new features

This commit is contained in:
Daniil
2026-02-27 23:33:56 +03:00
parent 937e58859a
commit dc04efe0fb
41 changed files with 2067 additions and 141 deletions
+48
View File
@@ -15,8 +15,11 @@ from cpv3.infrastructure.auth import get_current_user
from cpv3.modules.jobs.service import JobService
from cpv3.modules.tasks.schemas import (
CaptionsGenerateRequest,
FrameExtractRequest,
MediaConvertRequest,
MediaProbeRequest,
SilenceApplyRequest,
SilenceDetectRequest,
SilenceRemoveRequest,
TaskStatusEnum,
TaskStatusResponse,
@@ -61,6 +64,36 @@ async def submit_silence_remove(
return await service.submit_silence_remove(requester=current_user, request=body)
@router.post(
"/silence-detect/",
response_model=TaskSubmitResponse,
status_code=status.HTTP_202_ACCEPTED,
)
async def submit_silence_detect(
body: SilenceDetectRequest,
current_user: User = Depends(get_current_user),
db: AsyncSession = Depends(get_db),
) -> TaskSubmitResponse:
"""Submit a background task to detect silent segments in media file."""
service = TaskService(db)
return await service.submit_silence_detect(requester=current_user, request=body)
@router.post(
"/silence-apply/",
response_model=TaskSubmitResponse,
status_code=status.HTTP_202_ACCEPTED,
)
async def submit_silence_apply(
body: SilenceApplyRequest,
current_user: User = Depends(get_current_user),
db: AsyncSession = Depends(get_db),
) -> TaskSubmitResponse:
"""Submit a background task to apply silence cuts to media file."""
service = TaskService(db)
return await service.submit_silence_apply(requester=current_user, request=body)
@router.post(
"/media-convert/",
response_model=TaskSubmitResponse,
@@ -93,6 +126,21 @@ async def submit_transcription_generate(
)
@router.post(
"/frame-extract/",
response_model=TaskSubmitResponse,
status_code=status.HTTP_202_ACCEPTED,
)
async def submit_frame_extract(
body: FrameExtractRequest,
current_user: User = Depends(get_current_user),
db: AsyncSession = Depends(get_db),
) -> TaskSubmitResponse:
"""Submit a background task to extract video frames for timeline thumbnails."""
service = TaskService(db)
return await service.submit_frame_extract(requester=current_user, request=body)
@router.post(
"/captions-generate/",
response_model=TaskSubmitResponse,