From 314e7aff54cf8f407deeadcd94f4ee0bc7b9e1c3 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Tue, 19 Apr 2022 09:39:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8=E5=86=85?= =?UTF-8?q?=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entity/DanmakuFile.py | 5 -- entity/File.py | 25 --------- entity/VideoClip.py | 18 ------- entity/VideoPart.py | 5 -- entity/WorkflowItem.py | 118 ----------------------------------------- 5 files changed, 171 deletions(-) delete mode 100644 entity/DanmakuFile.py delete mode 100644 entity/File.py delete mode 100644 entity/VideoClip.py delete mode 100644 entity/VideoPart.py delete mode 100644 entity/WorkflowItem.py diff --git a/entity/DanmakuFile.py b/entity/DanmakuFile.py deleted file mode 100644 index 0b03b9e..0000000 --- a/entity/DanmakuFile.py +++ /dev/null @@ -1,5 +0,0 @@ -from entity.File import File - - -class DanmakuFile(File): - ... \ No newline at end of file diff --git a/entity/File.py b/entity/File.py deleted file mode 100644 index 26aadf7..0000000 --- a/entity/File.py +++ /dev/null @@ -1,25 +0,0 @@ -import os -from os import PathLike -from typing import Union, Optional - - -class File(object): - base_path: Optional[Union[os.PathLike[str], str]] - file: Union[PathLike[str], str] - - def __init__(self, file: Union[os.PathLike[str], str], base_path: Optional[Union[os.PathLike[str], str]] = None): - self.file = file - self.base_path = base_path - - @property - def full_path(self) -> str: - if self.base_path is None or len(self.base_path.strip()) == 0: - return self.file - else: - return os.path.join(self.base_path, self.file) - - def abs_path(self) -> str: - return os.path.abspath(self.full_path) - - def exist(self) -> bool: - return os.path.exists(self.full_path) \ No newline at end of file diff --git a/entity/VideoClip.py b/entity/VideoClip.py deleted file mode 100644 index 92e4492..0000000 --- a/entity/VideoClip.py +++ /dev/null @@ -1,18 +0,0 @@ -from typing import Optional - -from entity.File import File - - -class VideoClip(File): - duration: Optional[float] - - def __init__(self, file, base_path): - super(VideoClip, self).__init__(file, base_path) - self.duration = None - - def set_duration(self, duration: Optional[float]): - self.duration = duration - - def evaluate_duration(self): - if self.duration is None or self.duration < 0: - ... \ No newline at end of file diff --git a/entity/VideoPart.py b/entity/VideoPart.py deleted file mode 100644 index f8bce88..0000000 --- a/entity/VideoPart.py +++ /dev/null @@ -1,5 +0,0 @@ -from entity.File import File - - -class VideoPart(File): - ... \ No newline at end of file diff --git a/entity/WorkflowItem.py b/entity/WorkflowItem.py deleted file mode 100644 index f7ed2c0..0000000 --- a/entity/WorkflowItem.py +++ /dev/null @@ -1,118 +0,0 @@ -import os -from datetime import datetime -from hashlib import md5 -from typing import Union, Optional - -from config import VIDEO_TITLE -from entity.DanmakuFile import DanmakuFile -from entity.VideoClip import VideoClip -from entity.VideoPart import VideoPart - - -class WorkflowItem(object): - automatic: bool - finished: bool - conflict: bool - editing: bool - error: bool - delay_time: int - mode: int - videoParts: list[VideoPart] - videos: list[VideoClip] - - def __init__(self): - self.automatic = False - self.finished = False - self.conflict = False - self.editing = False - self.error = False - self.title = VIDEO_TITLE - self.create_time = datetime.now() - self.delay_time = 0 - self.mode = WorkflowModeEnum.MANUAL - self.danmakus = [] - self.subtitleFiles = [] - self.videos = [] - self.videoParts = [] - - @property - def id(self): - return md5(self.name.encode("utf-8")).hexdigest() - - @property - def name(self): - return self.title.format(self.create_time.strftime("%Y%m%d")) - - def mode_set(self, mode: int): - self.mode = mode - - def mode_add(self, mode: int): - self.mode = self.mode | mode - - def mode_del(self, mode: int): - self.mode = self.mode ^ mode - - def mode_has(self, mode: int) -> bool: - return self.mode & mode == mode - - def mode_add_merge(self): - return self.mode_add(WorkflowModeEnum.MERGE) - - def mode_del_merge(self): - return self.mode_del(WorkflowModeEnum.MERGE) - - def mode_has_merge(self) -> bool: - return self.mode_has(WorkflowModeEnum.MERGE) - - def mode_add_danmaku(self): - return self.mode_add(WorkflowModeEnum.DANMAKU) - - def mode_del_danmaku(self): - return self.mode_del(WorkflowModeEnum.DANMAKU) - - def mode_has_danmaku(self) -> bool: - return self.mode_has(WorkflowModeEnum.DANMAKU) - - def mode_add_encode(self): - return self.mode_add(WorkflowModeEnum.ENCODE) - - def mode_del_encode(self): - return self.mode_del(WorkflowModeEnum.ENCODE) - - def mode_has_encode(self) -> bool: - return self.mode_has(WorkflowModeEnum.ENCODE) - - def mode_add_split(self): - return self.mode_add(WorkflowModeEnum.SPLIT) - - def mode_del_split(self): - return self.mode_del(WorkflowModeEnum.SPLIT) - - def mode_has_split(self) -> bool: - return self.mode_has(WorkflowModeEnum.SPLIT) - - def add_video(self, video_file: Union[VideoClip, os.PathLike[str], str], base_path: Optional[Union[os.PathLike[str], str]] = None) -> VideoClip: - if isinstance(video_file, VideoClip): - self.videos.append(video_file) - else: - video_file = VideoClip(video_file, base_path) - self.videos.append(video_file) - return video_file - - def add_danmaku(self, danmaku_file: Union[DanmakuFile, os.PathLike[str], str], base_path: Optional[Union[os.PathLike[str], str]] = None) -> DanmakuFile: - if isinstance(danmaku_file, DanmakuFile): - self.danmakus.append(danmaku_file) - else: - danmaku_file = DanmakuFile(danmaku_file, base_path) - self.danmakus.append(danmaku_file) - return danmaku_file - - -class WorkflowModeEnum: - MERGE = 1 << 4 - DANMAKU = 1 << 3 - ENCODE = 1 << 2 - SPLIT = 1 << 1 - DANMAKU_DUAL = DANMAKU | ENCODE | SPLIT - DANMAKU_SINGLE = DANMAKU | ENCODE | SPLIT - MANUAL = 0