基础的查询功能
This commit is contained in:
parent
9d3ecd2b0d
commit
82223971ab
1 changed files with 31 additions and 1 deletions
32
main.py
32
main.py
|
@ -1,5 +1,5 @@
|
||||||
from contextlib import asynccontextmanager
|
from contextlib import asynccontextmanager
|
||||||
from datetime import datetime, timezone
|
from datetime import datetime, timedelta, timezone
|
||||||
from typing import Annotated
|
from typing import Annotated
|
||||||
|
|
||||||
from fastapi import Depends, FastAPI
|
from fastapi import Depends, FastAPI
|
||||||
|
@ -77,3 +77,33 @@ def upload(data: PostData, session: SessionDep):
|
||||||
session.add(system_db)
|
session.add(system_db)
|
||||||
session.commit()
|
session.commit()
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
|
@app.get("/user/today")
|
||||||
|
def user_today(session: SessionDep) -> int:
|
||||||
|
user_set = set()
|
||||||
|
yesterday = datetime.now(timezone.utc) - timedelta(days=1)
|
||||||
|
for system in session.exec(select(System).where(System.upload_time > yesterday)):
|
||||||
|
user_set.add(system.user_id)
|
||||||
|
return len(user_set)
|
||||||
|
|
||||||
|
|
||||||
|
@app.get("/user/week")
|
||||||
|
def user_week(session: SessionDep) -> int:
|
||||||
|
user_set = set()
|
||||||
|
last_week = datetime.now(timezone.utc) - timedelta(weeks=1)
|
||||||
|
for system in session.exec(select(System).where(System.upload_time > last_week)):
|
||||||
|
user_set.add(system.user_id)
|
||||||
|
return len(user_set)
|
||||||
|
|
||||||
|
|
||||||
|
@app.get("/screenshot/{screenshot_time}")
|
||||||
|
def screenshot_rank(screenshot_time: int, session: SessionDep) -> float:
|
||||||
|
yesterday = datetime.now(timezone.utc) - timedelta(days=1)
|
||||||
|
total = 0
|
||||||
|
slower = 0
|
||||||
|
for system in session.exec(select(System).where(System.upload_time > yesterday)):
|
||||||
|
total += 1
|
||||||
|
if system.avg_time > screenshot_time:
|
||||||
|
slower += 1
|
||||||
|
return slower / total if total > 0 else 0
|
||||||
|
|
Loading…
Add table
Reference in a new issue