90 lines
2.1 KiB
Python
90 lines
2.1 KiB
Python
from fastapi import FastAPI, Query, Request
|
|
from datetime import datetime
|
|
|
|
app = FastAPI()
|
|
|
|
|
|
@app.get("/")
|
|
async def root():
|
|
return "welcome to fastAPI!"
|
|
|
|
|
|
@app.get("/script/getscriparam")
|
|
async def getscriparam():
|
|
data = {
|
|
"interaction": {
|
|
"from": 20,
|
|
"to": 30
|
|
},
|
|
"bounceRate": {
|
|
"from": 0.3,
|
|
"to": 0.4
|
|
},
|
|
"ctr": {
|
|
"from": 0.03,
|
|
"to": 0.05
|
|
},
|
|
"pagesToViewPerSession": {
|
|
"from": 2,
|
|
"to": 3
|
|
},
|
|
"sessionsPerUser": {
|
|
"from": 2,
|
|
"to": 3
|
|
}
|
|
}
|
|
|
|
return data
|
|
|
|
|
|
@app.get("/script/success")
|
|
async def do_success(request: Request):
|
|
# 获取当前时间
|
|
current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
|
|
|
# 获取请求者的IP地址
|
|
client_host = request.client.host
|
|
|
|
# 打印上报成功的时间和IP地址
|
|
print(f"上报成功时间: {current_time}, IP地址: {client_host}")
|
|
|
|
data = {}
|
|
return {
|
|
"code": 0,
|
|
"msg": "ok",
|
|
"data": data
|
|
}
|
|
|
|
|
|
@app.get("/script/failed")
|
|
async def do_failed(reason: str = None, errortype: str = None):
|
|
# 获取当前时间
|
|
now = datetime.now()
|
|
|
|
# 格式化时间为 年-月-日 时:分:秒 的格式
|
|
formatted_now = now.strftime("%Y-%m-%d %H:%M:%S")
|
|
# 假设这里记录失败原因到日志或数据库
|
|
print(f"上报失败,Time: {formatted_now}, 失败原因: {reason},失败类型: {errortype}.") # 实际应用中应使用更专业的日志记录方式
|
|
return {
|
|
"code": 0,
|
|
"msg": "ok",
|
|
"data": {}
|
|
}
|
|
|
|
|
|
@app.get("/report/chrome/crash")
|
|
async def report_chrome_crash(id: str, timestamp: str = Query(None)):
|
|
# 获取当前时间
|
|
now = datetime.now()
|
|
|
|
# 格式化时间为 年-月-日 时:分:秒 的格式
|
|
formatted_now = now.strftime("%Y-%m-%d %H:%M:%S")
|
|
|
|
# 假设这里记录失败原因到日志或数据库
|
|
print(f"Time: {formatted_now}, ID: {id}, 时间戳: {timestamp}") # 实际应用中应使用更专业的日志记录方式
|
|
return {
|
|
"code": 0,
|
|
"msg": "ok",
|
|
"data": {}
|
|
}
|