初次提交

This commit is contained in:
2022-04-15 12:26:43 +08:00
commit 09b2956573
30 changed files with 952 additions and 0 deletions

46
model/Workflow.py Normal file

@ -0,0 +1,46 @@
from datetime import datetime, timedelta
from typing import TYPE_CHECKING
from . import db
if TYPE_CHECKING:
from .VideoClip import VideoClip
from .VideoPart import VideoPart
from .DanmakuClip import DanmakuClip
class Workflow(db.Model):
video_clips: list["VideoClip"]
danmaku_clips: list["DanmakuClip"]
video_parts: list["VideoPart"]
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String(255), nullable=False)
state = db.Column(db.SmallInteger, nullable=False, default=0)
"""0未开始1弹幕处理2完成3弹幕压制4完成5切割视频6完成9全部完成"""
create_time = db.Column(db.DateTime, nullable=False, default=datetime.now)
update_time = db.Column(db.DateTime, nullable=False, default=datetime.now, onupdate=datetime.now)
automatic = db.Column(db.Boolean, default=False, nullable=False)
editing = db.Column(db.Boolean, default=True, nullable=False)
start_after_time = db.Column(db.DateTime, default=None)
def calculate_start_time(self):
if self.editing:
self.start_after_time = None
if not self.automatic:
self.start_after_time = self.start_after_time
else:
self.start_after_time = datetime.now() + timedelta(minutes=30)
def to_dict(self):
return {
"id": self.id,
"name": self.name,
"state": self.state,
"create_time": self.create_time.strftime("%Y/%m/%d %H:%M:%S") if self.create_time else None,
"update_time": self.update_time.strftime("%Y/%m/%d %H:%M:%S") if self.update_time else None,
"automatic": self.automatic,
"editing": self.editing,
"start_after_time": self.start_after_time.strftime("%Y/%m/%d %H:%M:%S") if self.start_after_time else None,
"video_clips": [i.to_json() for i in self.video_clips],
"danmaku_clips": [i.to_json() for i in self.danmaku_clips],
}