1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- from typing import Optional
- from fastapi.staticfiles import StaticFiles
- from fastapi import FastAPI,File, UploadFile,Request,Response
- import util,os, math, time,queue,threading
- from pydantic import BaseModel
- from fastapi.templating import Jinja2Templates
- import rpyc
- rootPath = '../composer/'
- q = queue.Queue()
- app = FastAPI()
- templates = Jinja2Templates(directory="static")
- app.mount("/static", StaticFiles(directory="static"), name="static")
- class Cast_info:
- sub_dict = None
- img_dict = None
- name_hash = None
- class updateScriptModel(BaseModel):
- name_hash:str
- scriptStr:str
- class name_hash_in(BaseModel):
- name_hash:str
- def tEntry():
- while q.qsize!=0:
- ci = q.get()
- c = rpyc.connect("localhost", 8838)
- c._config['sync_request_timeout'] = None
- remote_svc = c.root
- result = remote_svc.gen_video(ci.name_hash,ci.sub_dict,ci.img_dict)
- t1 = threading.Thread(target=tEntry)
- t1.start()
- @app.get("/uploadAudio")
- def uploadAudio(request: Request, response: Response):
- return templates.TemplateResponse("uploadAudio.html", {"request": request, "response": response})
- @app.get("/modifyScript")
- def modifyScript(request: Request, response: Response):
- return templates.TemplateResponse("modifyScript.html", {"request": request, "response": response})
- @app.post("/updateScript")
- def updateScript(info : updateScriptModel):
- lines = info.scriptStr.split(',')
- cPath = rootPath+info.name_hash+'/'
-
- util.rewriteScript(cPath,lines)
- sub_dict,img_dict=filePrepare(info.name_hash)
- cinfo = Cast_info()
- cinfo.name_hash = info.name_hash
- cinfo.sub_dict
- cinfo.img_dict
-
- item = Item()
- q.put(item)
- if not t1.is_alive():
- t1 = threading.Thread(target=tEntry)
- t1.start()
-
- return 'ok'
- @app.post("/uploadmp3/")
- async def uploadmp3(file: UploadFile = File(...)):
- name_hash = str(time.time()).replace('.','')
- cPath = rootPath+name_hash+'/'
- try:
- os.mkdir(cPath)
- except FileExistsError:
- pass
- with open(cPath+'speech.mp3', "wb+") as file_object:
- file_object.write(file.file.read())
-
- util.transScript(cPath)
- return name_hash
- @app.post("/get_script/")
- async def get_script(date_in:name_hash_in):
- cPath = rootPath+date_in.name_hash+'/'
- scripts = util.get_script(cPath)
- return scripts
|