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