63 lines
2.0 KiB
Python
63 lines
2.0 KiB
Python
"""
|
|
Template font check and slide preview handlers.
|
|
|
|
Implementation is ported from presenton-enterprise fonts_and_slides_preview flow,
|
|
adapted for local app_data storage instead of S3.
|
|
"""
|
|
|
|
from typing import List, Optional
|
|
|
|
from fastapi import File, HTTPException, UploadFile
|
|
|
|
from templates.fonts_and_slides_preview import (
|
|
FontCheckResponse,
|
|
FontInfo,
|
|
FontsUploadAndSlidesPreviewResponse,
|
|
check_fonts_in_pptx_handler as _check_fonts_in_pptx_handler,
|
|
upload_fonts_and_preview_handler,
|
|
)
|
|
|
|
__all__ = [
|
|
"FontInfo",
|
|
"FontCheckResponse",
|
|
"FontsUploadAndSlidesPreviewResponse",
|
|
"check_fonts_in_pptx_handler",
|
|
"upload_fonts_and_slides_preview_handler",
|
|
]
|
|
|
|
|
|
async def check_fonts_in_pptx_handler(
|
|
pptx_file: UploadFile = File(..., description="PPTX file to analyze fonts from"),
|
|
) -> FontCheckResponse:
|
|
return await _check_fonts_in_pptx_handler(pptx_file)
|
|
|
|
|
|
async def upload_fonts_and_slides_preview_handler(
|
|
pptx_file: UploadFile,
|
|
font_files: Optional[List[UploadFile]] = None,
|
|
original_font_names: Optional[List[str]] = None,
|
|
google_font_original_names: Optional[List[str]] = None,
|
|
google_font_replacement_names: Optional[List[str]] = None,
|
|
google_font_names: Optional[List[str]] = None,
|
|
google_font_urls: Optional[List[str]] = None,
|
|
max_slides: Optional[int] = None,
|
|
upload_fonts: bool = True,
|
|
get_slide_images: bool = True,
|
|
upload_presentation: bool = True,
|
|
temp_dir: Optional[str] = None,
|
|
) -> FontsUploadAndSlidesPreviewResponse:
|
|
return await upload_fonts_and_preview_handler(
|
|
pptx_file=pptx_file,
|
|
font_files=font_files,
|
|
original_font_names=original_font_names,
|
|
google_font_original_names=google_font_original_names,
|
|
google_font_replacement_names=google_font_replacement_names,
|
|
google_font_names=google_font_names,
|
|
google_font_urls=google_font_urls,
|
|
max_slides=max_slides,
|
|
upload_fonts=upload_fonts,
|
|
get_slide_images=get_slide_images,
|
|
upload_presentation=upload_presentation,
|
|
temp_dir=temp_dir,
|
|
)
|