e0b585f72b
(cherry picked from commit e57abdbef7e13e3880738cd639225df5db0c37be)
41 lines
1.5 KiB
Python
41 lines
1.5 KiB
Python
from datetime import datetime
|
|
|
|
from src.db.models.media import MediaFile
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class MediaFileResponse(BaseModel):
|
|
id: str
|
|
title: str | None = None
|
|
file_name: str | None = None
|
|
cloud_link: str | None = None
|
|
url: str | None = None
|
|
review: bool = False
|
|
should_download: bool = False
|
|
|
|
class Link(BaseModel):
|
|
url: str
|
|
|
|
def get_file_details(mediafile: MediaFile) -> MediaFileResponse:
|
|
response = MediaFileResponse(id=mediafile.id,
|
|
title=mediafile.title,
|
|
file_name=mediafile.file_name,
|
|
cloud_link=mediafile.cloud_link,
|
|
url=str(mediafile.url),
|
|
review=mediafile.review,
|
|
should_download=mediafile.should_download)
|
|
#print(f"id: {mediafile.id}: review: {response.review} <- {mediafile.review}")
|
|
#print(f"id: {mediafile.id}: download: {response.should_download} <- {mediafile.should_download}")
|
|
return response
|
|
|
|
def set_file(model: MediaFileResponse, mediafile: MediaFile) -> None:
|
|
mediafile.file_name = model.file_name
|
|
mediafile.cloud_link = model.cloud_link
|
|
if model.url is not None:
|
|
mediafile.url = model.url
|
|
if model.title is not None:
|
|
mediafile.title = model.title
|
|
mediafile.last_modified_date = datetime.now()
|
|
mediafile.review = model.review
|
|
mediafile.should_download = model.should_download
|