import io

from PIL import Image as PImage
from moviepy.editor import VideoFileClip


def asset_upload(instance, filename):
    return f'videos/{instance.id}/{filename}'


def generate_thumbnail(video):
    clip = VideoFileClip(video.path)
    thumbnail_name = video.name.split('.')[0]
    thumbnail_name = f'{thumbnail_name}.jpg'
    clip.save_frame(thumbnail_name, t=1.00)

    thumbnail_name = thumbnail_name.split('/')[-1]

    return thumbnail_name


def get_thumbnail_content(thumbnail_path):
    img = PImage.open(thumbnail_path)

    roi_img = img.crop()

    img_byte_arr = io.BytesIO()
    roi_img.save(img_byte_arr, format='JPEG')
    content = img_byte_arr.getvalue()

    return content