78 lines
2.2 KiB
Python
78 lines
2.2 KiB
Python
from datetime import datetime
|
|
import uuid
|
|
|
|
from sqlalchemy.orm import Session
|
|
|
|
from src.db.models.media import MediaFile
|
|
from src.schema.media.file import MediaFileModel
|
|
|
|
|
|
def create_new_mediafile(link: str, db: Session) -> MediaFile:
|
|
"""
|
|
Create MediaFile with gievne URL.
|
|
"""
|
|
print("create MediaFile with url {link}")
|
|
media_file: MediaFile = MediaFile()
|
|
media_file.id = str(uuid.uuid4())
|
|
media_file.url = link
|
|
media_file.created_date = datetime.now()
|
|
media_file.last_modified_date = datetime.now()
|
|
media_file.version = 0
|
|
media_file.review = True
|
|
media_file.should_download = True
|
|
db.add(media_file)
|
|
db.commit()
|
|
db.refresh(media_file)
|
|
print("created %s", media_file)
|
|
return media_file
|
|
|
|
|
|
def delete_mediafile(db: Session, media_file_id: str):
|
|
"""
|
|
Delete MediaFile with given ID from db.
|
|
"""
|
|
print("delete MediaFile with id %s", media_file_id)
|
|
media_file = db.get(MediaFile, media_file_id)
|
|
db.delete(media_file)
|
|
db.commit()
|
|
|
|
|
|
def import_mediafile(db: Session, new_file: MediaFileModel) -> MediaFile:
|
|
"""
|
|
import MediaActor and set missing values with defautl ones.
|
|
"""
|
|
print("import MediaFile with %s", new_file)
|
|
media_file: MediaFile = MediaFile()
|
|
media_file.id = new_file.id
|
|
if new_file.created_date:
|
|
media_file.created_date = new_file.created_date
|
|
else:
|
|
media_file.created_date = datetime.now()
|
|
if new_file.last_modified_date:
|
|
media_file.last_modified_date = new_file.last_modified_date
|
|
else:
|
|
media_file.last_modified_date = datetime.now()
|
|
media_file.version = new_file.version
|
|
if new_file.title:
|
|
media_file.title = new_file.title
|
|
else:
|
|
media_file.title = ""
|
|
if new_file.file_name:
|
|
media_file.file_name = new_file.file_name
|
|
else:
|
|
media_file.file_name = ""
|
|
if new_file.cloud_link:
|
|
media_file.cloud_link = new_file.cloud_link
|
|
else:
|
|
media_file.cloud_link = ""
|
|
if new_file.url:
|
|
media_file.url = new_file.url
|
|
else:
|
|
media_file.url = ""
|
|
media_file.review = new_file.review
|
|
media_file.should_download = new_file.should_download
|
|
db.add(media_file)
|
|
db.commit()
|
|
db.refresh(media_file)
|
|
return media_file
|