Kaynağa Gözat

Merge branch 'master' of http://git.choozmo.com:3000/choozmo/AI_Anchor_2

huaisianhuang 3 yıl önce
ebeveyn
işleme
ce174ddf0c

BIN
api/__pycache__/main.cpython-36.pyc


BIN
api/__pycache__/models.cpython-36.pyc


+ 53 - 2
api/main.py

@@ -233,7 +233,7 @@ async def register_old(request: Request):
         #return templates.TemplateResponse("make_video.html", {"request": request, "success": True},status_code=status.HTTP_302_FOUND)
         #return templates.TemplateResponse("login.html", {'request': request,"success": True}, status_code=status.HTTP_302_FOUND)
     else:
-        return 'msg':{'eng':user.username+' is duplicated user name try another','zh':user.username+'重複,請更改'}}
+        return {'msg':{'eng':user.username+' is duplicated user name try another','zh':user.username+'重複,請更改'}}
 
 @app.post("/register")
 async def register(request: models.register_req):
@@ -250,7 +250,7 @@ async def register(request: models.register_req):
         else :
             return {'msg':'error'}
     else:
-        return 'msg':{'eng':user.username+' is duplicated user name try another','zh':user.username+'重複,請更改'}}
+        return {'msg':{'eng':user.username+' is duplicated user name try another','zh':user.username+'重複,請更改'}}
 
 
 @app.get('/logout')
@@ -491,6 +491,57 @@ async def make_anchor_video_eng(req:models.request_eng,token: str = Depends(oaut
     x.start()
     return {"msg":"ok"} 
 
+@app.post("/save_draft")
+async def save_draft(req:models.video_draft,token: str = Depends(oauth2_scheme)):
+    db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/AI_anchor?charset=utf8mb4')
+    user_id = get_user_id(token)
+    
+    txt_content_seperate_by_dot = ''
+    for txt in req.text_content:
+        txt_content_seperate_by_dot += txt+","
+    txt_content_seperate_by_dot = txt_content_seperate_by_dot[:-1]
+    img_urls_seperate_by_dot = ''
+    for iurl in req.image_urls:
+        img_urls_seperate_by_dot += iurl+","
+    img_urls_seperate_by_dot = img_urls_seperate_by_dot[:-1]
+    time_stamp = datetime.fromtimestamp(time.time())
+    time_stamp = time_stamp.strftime("%Y-%m-%d %H:%M:%S")
+
+    if req.id==-1:
+        pk = db['draft'].insert({'title':req.title,'text_content':txt_content_seperate_by_dot,'image_urls':img_urls_seperate_by_dot
+        ,'user_id':user_id,'avatar':req.avatar,'multiLang':req.multiLang,'time_stamp':time_stamp})
+    else:
+        db['draft'].update({'id':req.id,'title':req.title,'text_content':txt_content_seperate_by_dot,'image_urls':img_urls_seperate_by_dot
+        ,'user_id':user_id,'avatar':req.avatar,'multiLang':req.multiLang,'time_stamp':time_stamp},['id'])
+    
+    return {'msg':'ok'}
+
+
+@app.post('/draft_list')
+async def draft_list(token: str = Depends(oauth2_scheme)):
+    db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/AI_anchor?charset=utf8mb4')
+    user_id = get_user_id(token)
+    statement = 'SELECT * FROM draft WHERE user_id='+str(user_id)+' ORDER BY time_stamp DESC LIMIT 50'
+    logs = []
+    for row in db.query(statement):
+        logs.append({'id':row['id'],'title':row['title'],'avatar':row['avatar'],'mulitLang':row['multiLang']
+        ,'text_content':row['text_content'].split(','),'image_urls':row['image_urls'].split(',')})
+    return logs
+
+@app.post('/del_draft')
+async def del_draft(id_obj:models.id_obj,token: str = Depends(oauth2_scheme)):
+    db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/AI_anchor?charset=utf8mb4')
+    user_id = get_user_id(token)
+    statement = 'SELECT * FROM draft WHERE user_id="'+str(user_id)+'" and id ="'+id_obj.id+'"'
+    if first(db.query(statement)) is not None:
+        db['draft'].delete(id=id)
+    else:
+        return {'msg':'wrong id'}
+    
+
+    return {'msg':'ok'}
+
+
 @app.get("/history_input_old")
 async def history_input_old(request: Request, Authorize: AuthJWT = Depends()):
     Authorize.jwt_required()

+ 11 - 0
api/models.py

@@ -2,6 +2,9 @@ from pydantic import BaseModel
 from typing import List, Optional
 SECRET_KEY = "df2f77bd544240801a048bd4293afd8eeb7fff3cb7050e42c791db4b83ebadcd"
 ALGORITHM = "HS256"
+class id_obj(BaseModel):
+    id: int
+    
 class Token(BaseModel):
     access_token: str
     token_type: str
@@ -68,3 +71,11 @@ class reset_pwd(BaseModel):
 
 class UserProfile(BaseModel):
     email: str
+
+class video_draft(BaseModel):
+    id: int
+    title: str
+    avatar: int
+    text_content: List[str]
+    multiLang: int
+    image_urls: List[str]