File size: 1,243 Bytes
2285996
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from config import output_path_video, output_path_audio
from logger import logger
from resource_loader.video_loader_interface import VideoLoaderInterface


class UploadedMediaLoader(VideoLoaderInterface):
    def __init__(self, uploaded_stream, original_name, media_type='video'):
        self.uploaded_stream = uploaded_stream
        self.original_name = original_name
        self.media_type = media_type  # 'video' or 'audio'
        self.media_id = None
        self.filename = None
        self.output_path = None
        self.extract_filename()
        self.set_output_path()

    def extract_filename(self):
        self.filename = self.original_name.split(" - ", 1)[1]
        self.media_id = self.filename.rsplit(".", 1)[0]

    def set_output_path(self):
        if self.media_type == 'video':
            self.output_path = output_path_video
        elif self.media_type == 'audio':
            self.output_path = output_path_audio
        else:
            raise ValueError("Invalid media type")

    def download(self):
        with open(f"{self.output_path}/{self.filename}", "wb") as f:
            f.write(self.uploaded_stream.getvalue())
        logger.info(f"{self.media_type.capitalize()} processed: {self.original_name}")