|
@@ -1,4 +1,4 @@
|
|
|
-from fastapi import FastAPI,Cookie, Depends, Query, WebSocket, status, WebSocketDisconnect,File, UploadFile,Request,Response,HTTPException
|
|
|
|
|
|
|
+from fastapi import FastAPI,Cookie, Depends, Query, status,File, UploadFile,Request,Response,HTTPException
|
|
|
from fastapi.templating import Jinja2Templates
|
|
from fastapi.templating import Jinja2Templates
|
|
|
from fastapi.responses import HTMLResponse, RedirectResponse, JSONResponse
|
|
from fastapi.responses import HTMLResponse, RedirectResponse, JSONResponse
|
|
|
from typing import List, Optional
|
|
from typing import List, Optional
|
|
@@ -20,7 +20,6 @@ import re
|
|
|
import asyncio
|
|
import asyncio
|
|
|
import urllib.request
|
|
import urllib.request
|
|
|
from fastapi.responses import FileResponse
|
|
from fastapi.responses import FileResponse
|
|
|
-from websocket import create_connection
|
|
|
|
|
from fastapi.middleware.cors import CORSMiddleware
|
|
from fastapi.middleware.cors import CORSMiddleware
|
|
|
import dataset
|
|
import dataset
|
|
|
from datetime import datetime, timedelta
|
|
from datetime import datetime, timedelta
|
|
@@ -36,6 +35,7 @@ from fastapi_jwt_auth.exceptions import AuthJWTException
|
|
|
from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm
|
|
from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm
|
|
|
import models
|
|
import models
|
|
|
import pymysql
|
|
import pymysql
|
|
|
|
|
+from first import first
|
|
|
pymysql.install_as_MySQLdb()
|
|
pymysql.install_as_MySQLdb()
|
|
|
|
|
|
|
|
app = FastAPI()
|
|
app = FastAPI()
|
|
@@ -55,6 +55,7 @@ pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
|
|
|
|
|
|
|
|
app.mount("/static", StaticFiles(directory="static"), name="static")
|
|
app.mount("/static", StaticFiles(directory="static"), name="static")
|
|
|
app.mount("/static/img", StaticFiles(directory="static/img"), name="static/img")
|
|
app.mount("/static/img", StaticFiles(directory="static/img"), name="static/img")
|
|
|
|
|
+app.mount("/templates", StaticFiles(directory="templates"), name="templates")
|
|
|
|
|
|
|
|
templates = Jinja2Templates(directory="templates")
|
|
templates = Jinja2Templates(directory="templates")
|
|
|
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
|
|
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
|
|
@@ -80,10 +81,17 @@ async def index2():
|
|
|
return FileResponse('static/index_eng.html')
|
|
return FileResponse('static/index_eng.html')
|
|
|
|
|
|
|
|
# home page
|
|
# home page
|
|
|
|
|
+@app.get("/index", response_class=HTMLResponse)
|
|
|
|
|
+async def get_home_page(request: Request, response: Response):
|
|
|
|
|
+ return templates.TemplateResponse("index.html", {"request": request, "response": response})
|
|
|
@app.get("/", response_class=HTMLResponse)
|
|
@app.get("/", response_class=HTMLResponse)
|
|
|
async def get_home_page(request: Request, response: Response):
|
|
async def get_home_page(request: Request, response: Response):
|
|
|
return templates.TemplateResponse("index.html", {"request": request, "response": response})
|
|
return templates.TemplateResponse("index.html", {"request": request, "response": response})
|
|
|
|
|
|
|
|
|
|
+@app.get("/make_video", response_class=HTMLResponse)
|
|
|
|
|
+async def get_home_page(request: Request, response: Response):
|
|
|
|
|
+ return templates.TemplateResponse("make_video.html", {"request": request, "response": response})
|
|
|
|
|
+
|
|
|
# login & register page
|
|
# login & register page
|
|
|
@app.get("/login", response_class=HTMLResponse)
|
|
@app.get("/login", response_class=HTMLResponse)
|
|
|
async def get_login_and_register_page(request: Request):
|
|
async def get_login_and_register_page(request: Request):
|
|
@@ -108,12 +116,10 @@ async def login_for_access_token(request: Request, form_data: OAuth2PasswordRequ
|
|
|
table.update(dict(user), ['username'])
|
|
table.update(dict(user), ['username'])
|
|
|
access_token = Authorize.create_access_token(subject=user.username)
|
|
access_token = Authorize.create_access_token(subject=user.username)
|
|
|
refresh_token = Authorize.create_refresh_token(subject=user.username)
|
|
refresh_token = Authorize.create_refresh_token(subject=user.username)
|
|
|
-
|
|
|
|
|
Authorize.set_access_cookies(access_token)
|
|
Authorize.set_access_cookies(access_token)
|
|
|
Authorize.set_refresh_cookies(refresh_token)
|
|
Authorize.set_refresh_cookies(refresh_token)
|
|
|
-
|
|
|
|
|
- return templates.TemplateResponse("index.html", {"request": request, "msg": 'Login'})
|
|
|
|
|
- #return {"access_token": access_token, "token_type": "bearer"}
|
|
|
|
|
|
|
+ #return templates.TemplateResponse("index.html", {"request": request, "msg": 'Login'})
|
|
|
|
|
+ return {"access_token": access_token, "token_type": "bearer"}
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.post("/token")
|
|
@app.post("/token")
|
|
@@ -130,7 +136,6 @@ async def access_token(form_data: OAuth2PasswordRequestForm = Depends(), Authori
|
|
|
access_token = create_access_token(
|
|
access_token = create_access_token(
|
|
|
data={"sub": user.username}, expires_delta=access_token_expires
|
|
data={"sub": user.username}, expires_delta=access_token_expires
|
|
|
)
|
|
)
|
|
|
-
|
|
|
|
|
return {"access_token": access_token, "token_type": "bearer"}
|
|
return {"access_token": access_token, "token_type": "bearer"}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -146,6 +151,7 @@ def protected(request: Request, Authorize: AuthJWT = Depends()):
|
|
|
current_user = Authorize.get_jwt_subject()
|
|
current_user = Authorize.get_jwt_subject()
|
|
|
return current_user
|
|
return current_user
|
|
|
|
|
|
|
|
|
|
+
|
|
|
@app.get('/logout')
|
|
@app.get('/logout')
|
|
|
def logout(request: Request, Authorize: AuthJWT = Depends()):
|
|
def logout(request: Request, Authorize: AuthJWT = Depends()):
|
|
|
Authorize.jwt_required()
|
|
Authorize.jwt_required()
|