my-video-workflow/model/Workflow.py
2022-04-15 12:26:43 +08:00

47 lines
2.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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],
}