浏览代码

add draft

ming 3 年之前
父节点
当前提交
2ebc693036
共有 2 个文件被更改,包括 62 次插入0 次删除
  1. 51 0
      api/main.py
  2. 11 0
      api/models.py

+ 51 - 0
api/main.py

@@ -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(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)
+    statement = 'SELECT * FROM draft WHERE user_id="'+str(user_id)+'" ORDER BY timestamp 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]