Files
my-video-workflow/model/Workflow.py
2022-04-22 16:03:05 +08:00

45 lines
1.8 KiB
Python

from datetime import datetime, timedelta
from typing import TYPE_CHECKING
from . import db
if TYPE_CHECKING:
from .VideoClip import VideoClip
from .VideoPart import VideoPart
class Workflow(db.Model):
video_clips: list["VideoClip"]
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],
}