from fastapi import FastAPI, Request, Form
from fastapi.responses import HTMLResponse
import subprocess
app = FastAPI()
@app.get("/", response_class=HTMLResponse)
async def read_root(request: Request):
html_content = """
FastAPI Form
"""
return html_content
@app.post("/submit/")
async def submit(title: str = Form(...), context: str = Form(...)):
if not context:
return {"error": "Context is required"}
result = _send(title, context)
return {"message": result}
def _send(title, context):
command = [
'curl',
'-k',
'https://gotify.erhe.top/message?token=A0Xg6ZE5946iBYg',
'-F', f'title={title}',
'-F', f'message={context}',
'-F', 'priority=5'
]
# 执行命令
try:
result = subprocess.run(command, check=True, text=True, capture_output=True)
print('命令执行成功,输出:')
print(result.stdout)
except subprocess.CalledProcessError as e:
print('命令执行失败:')
print(e.stderr)
return result.stdout
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8082)