You've already forked my-video-workflow
							
							初始版本
This commit is contained in:
		@@ -1,4 +1,5 @@
 | 
			
		||||
import os.path
 | 
			
		||||
import threading
 | 
			
		||||
from datetime import datetime, timedelta
 | 
			
		||||
from glob import glob
 | 
			
		||||
from flask import Blueprint, jsonify, request, current_app
 | 
			
		||||
@@ -9,12 +10,25 @@ from model import db
 | 
			
		||||
from model.DanmakuClip import DanmakuClip
 | 
			
		||||
from model.VideoClip import VideoClip
 | 
			
		||||
from model.Workflow import Workflow
 | 
			
		||||
from worker.danmaku import do_workflow
 | 
			
		||||
 | 
			
		||||
blueprint = Blueprint("api_bilirecorder", __name__, url_prefix="/api/bilirecorder")
 | 
			
		||||
 | 
			
		||||
bili_record_workflow_item: Optional[Workflow] = None
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def auto_submit_task():
 | 
			
		||||
    global bili_record_workflow_item
 | 
			
		||||
    if not bili_record_workflow_item.editing:
 | 
			
		||||
        if len(bili_record_workflow_item.video_clips) > 0 and len(bili_record_workflow_item.danmaku_clips) > 0:
 | 
			
		||||
            threading.Thread(target=do_workflow, args=(
 | 
			
		||||
                bili_record_workflow_item.video_clips[0].full_path,
 | 
			
		||||
                bili_record_workflow_item.danmaku_clips[0].full_path,
 | 
			
		||||
                [clip.full_path for clip in bili_record_workflow_item.danmaku_clips[1:]]
 | 
			
		||||
            )).start()
 | 
			
		||||
            clear_item()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def clear_item():
 | 
			
		||||
    global bili_record_workflow_item
 | 
			
		||||
    bili_record_workflow_item = None
 | 
			
		||||
@@ -86,7 +100,6 @@ def collect_danmaku_files(workflow: Optional[Workflow]):
 | 
			
		||||
    commit_item()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@blueprint.post("/")
 | 
			
		||||
def bilirecorder_event():
 | 
			
		||||
    payload = request.json
 | 
			
		||||
@@ -107,7 +120,7 @@ def bilirecorder_event():
 | 
			
		||||
        item = safe_get_item()
 | 
			
		||||
        item.editing = False
 | 
			
		||||
        commit_item()
 | 
			
		||||
        clear_item()
 | 
			
		||||
        auto_submit_task()
 | 
			
		||||
        return jsonify(item.to_dict())
 | 
			
		||||
    elif payload['EventType'] == "FileClosed":
 | 
			
		||||
        # 文件关闭
 | 
			
		||||
@@ -128,6 +141,7 @@ def bilirecorder_event():
 | 
			
		||||
            item.video_clips.append(video_clip)
 | 
			
		||||
            commit_item()
 | 
			
		||||
        collect_danmaku_files(item)
 | 
			
		||||
        auto_submit_task()
 | 
			
		||||
        return jsonify(item.to_dict())
 | 
			
		||||
    commit_item()
 | 
			
		||||
    item = safe_get_item()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user