Update main.py
Browse files
main.py
CHANGED
@@ -10,6 +10,7 @@ from pikpakapi import PikPakApi
|
|
10 |
from typing import Union, Any, Dict, List, Optional
|
11 |
from fastapi import (
|
12 |
FastAPI,
|
|
|
13 |
Depends,
|
14 |
Request,
|
15 |
Body,
|
@@ -70,9 +71,9 @@ PROXY_URL = os.getenv("PROXY_URL")
|
|
70 |
async def verify_token(
|
71 |
request: Request, credentials: HTTPAuthorizationCredentials = Depends(security)
|
72 |
):
|
73 |
-
excluded_paths = ["/"] # 需要排除的路径列表
|
74 |
-
if request.url.path in excluded_paths:
|
75 |
-
|
76 |
|
77 |
# 验证Bearer格式
|
78 |
if credentials.scheme != "Bearer":
|
@@ -88,7 +89,7 @@ async def verify_token(
|
|
88 |
)
|
89 |
|
90 |
|
91 |
-
app = FastAPI(
|
92 |
app.add_middleware(
|
93 |
CORSMiddleware,
|
94 |
allow_origins=["*"],
|
@@ -97,6 +98,9 @@ app.add_middleware(
|
|
97 |
allow_headers=["*"],
|
98 |
)
|
99 |
|
|
|
|
|
|
|
100 |
templates = Jinja2Templates(
|
101 |
directory="templates", variable_start_string="{[", variable_end_string="]}"
|
102 |
)
|
@@ -138,30 +142,34 @@ async def init_client():
|
|
138 |
)
|
139 |
|
140 |
|
141 |
-
@
|
142 |
async def home(request: Request):
|
143 |
return templates.TemplateResponse("index.html", {"request": request})
|
144 |
|
145 |
|
146 |
-
@
|
147 |
async def get_files(item: FileRequest):
|
148 |
return await THUNDERX_CLIENT.file_list(
|
149 |
item.size, item.parent_id, item.next_page_token, item.additional_filters
|
150 |
)
|
151 |
|
152 |
|
153 |
-
@
|
154 |
async def get_file_info(file_id: str):
|
155 |
return await THUNDERX_CLIENT.get_download_url(file_id)
|
156 |
|
157 |
|
158 |
-
@
|
159 |
async def offline(item: OfflineRequest):
|
160 |
return await THUNDERX_CLIENT.offline_download(
|
161 |
item.file_url, item.parent_id, item.name
|
162 |
)
|
163 |
|
164 |
|
165 |
-
@
|
166 |
async def userinfo():
|
167 |
return THUNDERX_CLIENT.get_user_info()
|
|
|
|
|
|
|
|
|
|
10 |
from typing import Union, Any, Dict, List, Optional
|
11 |
from fastapi import (
|
12 |
FastAPI,
|
13 |
+
APIRouter,
|
14 |
Depends,
|
15 |
Request,
|
16 |
Body,
|
|
|
71 |
async def verify_token(
|
72 |
request: Request, credentials: HTTPAuthorizationCredentials = Depends(security)
|
73 |
):
|
74 |
+
# excluded_paths = ["/"] # 需要排除的路径列表
|
75 |
+
# if request.url.path in excluded_paths:
|
76 |
+
# return # 直接跳过验证
|
77 |
|
78 |
# 验证Bearer格式
|
79 |
if credentials.scheme != "Bearer":
|
|
|
89 |
)
|
90 |
|
91 |
|
92 |
+
app = FastAPI()
|
93 |
app.add_middleware(
|
94 |
CORSMiddleware,
|
95 |
allow_origins=["*"],
|
|
|
98 |
allow_headers=["*"],
|
99 |
)
|
100 |
|
101 |
+
api_router = APIRouter(dependencies=[Depends(verify_token)])
|
102 |
+
front_router = APIRouter()
|
103 |
+
|
104 |
templates = Jinja2Templates(
|
105 |
directory="templates", variable_start_string="{[", variable_end_string="]}"
|
106 |
)
|
|
|
142 |
)
|
143 |
|
144 |
|
145 |
+
@front_router.get("/", response_class=HTMLResponse)
|
146 |
async def home(request: Request):
|
147 |
return templates.TemplateResponse("index.html", {"request": request})
|
148 |
|
149 |
|
150 |
+
@api_router.post("/files")
|
151 |
async def get_files(item: FileRequest):
|
152 |
return await THUNDERX_CLIENT.file_list(
|
153 |
item.size, item.parent_id, item.next_page_token, item.additional_filters
|
154 |
)
|
155 |
|
156 |
|
157 |
+
@api_router.get("/files/{file_id}")
|
158 |
async def get_file_info(file_id: str):
|
159 |
return await THUNDERX_CLIENT.get_download_url(file_id)
|
160 |
|
161 |
|
162 |
+
@api_router.post("/offline")
|
163 |
async def offline(item: OfflineRequest):
|
164 |
return await THUNDERX_CLIENT.offline_download(
|
165 |
item.file_url, item.parent_id, item.name
|
166 |
)
|
167 |
|
168 |
|
169 |
+
@api_router.get("/userinfo")
|
170 |
async def userinfo():
|
171 |
return THUNDERX_CLIENT.get_user_info()
|
172 |
+
|
173 |
+
|
174 |
+
app.include_router(front_router)
|
175 |
+
app.include_router(api_router)
|