| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- import asyncio
- import socket
- import time
- from fastapi import FastAPI, Request
- from fastapi.responses import HTMLResponse
- from fastapi.staticfiles import StaticFiles
- from fastapi.templating import Jinja2Templates
- import requests
- import uvicorn
- from fastapi.responses import FileResponse,JSONResponse
- from fastapi import FastAPI, Depends, HTTPException, Form
- import httpx
- import os
- from config import *
- from db.engine import create_all_table
- from fastapi.middleware.cors import CORSMiddleware
- from api.login import login_router
- from api.upload import upload_router
- from api.webhook import webhook_route
- from api.asr import asr_router
- from contextlib import asynccontextmanager
- from sqlmodel import SQLModel
- from douyin.manage_user import auto_refresh_access_token,auto_renew_refresh_token
- # from task_manage.main_task import rk_app
- @asynccontextmanager
- async def lifespan(app: FastAPI):
- # 在应用启动前运行的代码
- create_all_table()
- asyncio.create_task(auto_refresh_access_token())
- asyncio.create_task(auto_renew_refresh_token())
- yield
- # 在应用关闭后运行的代码
- pass
- app = FastAPI(lifespan=lifespan)
- app.add_middleware(
- CORSMiddleware,
- allow_origins=["*"],
- allow_credentials=True,
- allow_methods=["*"],
- allow_headers=["*"],
- )
- app.include_router(login_router)
- app.include_router(upload_router)
- app.include_router(webhook_route)
- app.include_router(asr_router)
- def get_session(request: Request):
- return request.session
-
- @app.get("/")
- async def read_root(request: Request):
- return {"message": "FastApi server is running.", "time":time.strftime("%Y-%m-%d_%H-%M-%S", time.localtime())}
- def main():
- logger.debug(f"https://open-douyin-cf.magong.site 公网代理地址,cloudflare dns proxy ,由 caddy 转发到 8600 端口")
- logger.debug(f"https://open-douyin-wk.magong.site 公网代理地址,cloudflare workers 转发到 8600 端口")
- logger.debug(f"http://sv-v2.magong.site:{PORT} 仅支持 ipv6 ,直连、满速、无延迟。缺点是不支持 https 协议,因为不经过 Caddy 代理,直达 Fastapi 没有配置 https")
- logger.debug(f"https://open-douyin.magong.site 内网穿透隧道,cloudflare tunnel ,经常访问不了")
- logger.info(f"http://localhost:{PORT} ⭐ 推荐。 vscode 会自动建立一条本地隧道,可以在本地浏览器直接打开")
- # logger.info(f"扫码登录 https://open.douyin.com/platform/oauth/connect/?client_key=aw6aipmfdtplwtyq&response_type=code&scope=user_info,renew_refresh_token,trial.whitelist,item.comment&redirect_uri=https://api.magong.site/swl/douyin/verify_callback")
- # "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJfMDAwTGlWX28wRkdLTXdhWmdxR01DdmNWU2YtVUFuTlVfa2siLCJleHAiOjE3MjAzNDMyOTR9.vmTMpzXb-Z4uc963e0odepOT8AcvgYELtng0PDKBeDA"
- logger.info(f"扫码登录 https://open.douyin.com/platform/oauth/connect/?client_key=aw6aipmfdtplwtyq&response_type=code&scope=user_info,renew_refresh_token&redirect_uri=https://api.magong.site/swl/douyin/verify_callback")
- logger.info(f"https://swl.magong.site/ 访问前端网站")
- uvicorn.run(app, host=None, port=PORT, log_level="info")
- if __name__ == "__main__":
- main()
|