Исправление бага статистики

This commit is contained in:
Your Name 2024-12-04 12:07:45 +03:00
parent e124f45b35
commit 71bfb67807

19
api.py
View File

@ -5,6 +5,7 @@ from datetime import datetime, timedelta
from statistics import median
from uuid import uuid4
from random import randint
from time import sleep
# Fix 3.3 + 0.15 = 3.4499999999999997
from decimal import Decimal as d
@ -24,12 +25,20 @@ def token_check(token):
else:
return False
############## STATS ##################
STAT_RUN = False
def stat_run(cdm_change):
# Общий баланс, среднее значение, медиана
# Низшее значение, высшее значение
# Изменение баланса и time2cdm
# Прирост за счёт алмазов, за счёт time2cdm
# Защита от конфликтов
global STAT_RUN
while STAT_RUN:
sleep(1)
STAT_RUN = True
# Получаем все балансы
db = read()
bals = []
@ -72,6 +81,9 @@ def stat_run(cdm_change):
stat[date] = stats
write(stat, 'stat.json')
STAT_RUN = False
#######################
class User_in_db(BaseModel):
token: str
@ -333,7 +345,6 @@ class Add_time(BaseModel):
def add_time(it: Add_time):
token, id, time = it.token, it.id, int(it.time)
if token_check(token):
stat_run(0)
course = read('conf.json')['time2cdm']
amount = time*course
# Пополнение баланса
@ -353,6 +364,8 @@ def add_time(it: Add_time):
stat = read('stat.json')
stat[date]['time2cdm'] += amount
write(stat, 'stat.json')
stat_run(0)
return 'OK'
else:
return 'Error'
@ -452,10 +465,12 @@ def get_time(it: Get_time2cdm):
class Get_stat(BaseModel):
token: str
date: Optional[str] = datetime.today().strftime('%Y-%m-%d')
date: Optional[str] = None
@app.post('/api/get_stat/')
def get_stat(it: Get_stat):
token, date = it.token, it.date
if not date:
date = datetime.today().strftime('%Y-%m-%d')
if token_check(token):
stat_run(0)
db = read('stat.json')