Skip to content

Commit dfbefc4

Browse files
committed
more playerrank queries
1 parent 498c02c commit dfbefc4

2 files changed

Lines changed: 71 additions & 0 deletions

File tree

surftimer/ck_playerrank.py

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,43 @@ async def selectRankedPlayers(request: Request, response: Response):
429429

430430
return xquery
431431

432+
@router.get(
433+
"/surftimer/selectRankedPlayer",
434+
name="Select Ranked Players",
435+
tags=["ck_playerrank"],
436+
)
437+
async def selectRankedPlayer(request: Request, response: Response, steamid32: str):
438+
"""`char[] sql_selectRankedPlayer = ....`"""
439+
tic = time.perf_counter()
440+
441+
# Check if data is cached in Redis
442+
cache_key = f"selectRankedPlayer"
443+
cached_data = get_cache(cache_key)
444+
if cached_data is not None:
445+
print(f"[Redis] Loaded '{cache_key}' ({time.perf_counter() - tic:0.4f}s)")
446+
return JSONResponse(
447+
status_code=status.HTTP_200_OK, content=json.loads(cached_data)
448+
)
449+
450+
xquery = selectQuery(surftimer.queries.sql_selectRankedPlayer.format(steamid32))
451+
# xquery = []
452+
453+
if len(xquery) > 0:
454+
xquery = xquery
455+
else:
456+
response.status_code = status.HTTP_404_NOT_FOUND
457+
xquery = {}
458+
xquery["xtime"] = time.perf_counter() - tic
459+
460+
toc = time.perf_counter()
461+
462+
print(f"Execution time {toc - tic:0.4f}")
463+
464+
# Cache the data in Redis
465+
set_cache(cache_key, xquery)
466+
467+
return xquery
468+
432469

433470
@router.get(
434471
"/surftimer/countRankedPlayers",
@@ -590,3 +627,36 @@ async def selectUnknownPlayerProfile(
590627
set_cache(cache_key, xquery)
591628

592629
return xquery
630+
631+
@router.put(
632+
"/surftimer/updatePlayerConnections",
633+
name="Update Player Connections",
634+
tags=["ck_playerrank"],
635+
)
636+
async def updatePlayerConnections(
637+
request: Request,
638+
response: Response,
639+
steamid32: str,
640+
):
641+
"""```UPDATE ck_playerrank SET connections = connections + 1 WHERE steamid = '%s';```"""
642+
tic = time.perf_counter()
643+
644+
sql = surftimer.queries.sql_updatePlayerConnections.format(steamid32)
645+
xquery = insertQuery(sql)
646+
647+
content_data = {"updated": xquery, "xtime": time.perf_counter() - tic}
648+
if xquery < 1:
649+
response.body = json.dumps(content_data).encode('utf-8')
650+
response.headers['content-type'] = 'application/json'
651+
response.status_code = status.HTTP_304_NOT_MODIFIED
652+
return response
653+
654+
# Prepare the response
655+
toc = time.perf_counter()
656+
print(f"Execution time {toc - tic:0.4f}")
657+
658+
response.body = json.dumps(content_data).encode('utf-8')
659+
response.headers['content-type'] = 'application/json'
660+
response.status_code = status.HTTP_200_OK
661+
return response
662+

surftimer/queries.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
"SELECT COUNT(steamid) FROM ck_playerrank where points > 0 AND style = {};"
7373
)
7474
sql_selectPlayerProfile = "SELECT steamid, steamid64, name, country, points, wrpoints, wrbpoints, wrcppoints, top10points, groupspoints, mappoints, bonuspoints, finishedmapspro, finishedbonuses, finishedstages, wrs, wrbs, wrcps, top10s, `groups`, lastseen, countryCode, continentCode FROM ck_playerrank WHERE steamid = '{}' AND style = '{}';"
75+
sql_updatePlayerConnections = "UPDATE ck_playerrank SET connections = connections + 1 WHERE steamid = '{}';"
7576

7677
## ck_playertemp
7778
sql_createPlayertmp = "CREATE TABLE IF NOT EXISTS ck_playertemp (steamid VARCHAR(32), mapname VARCHAR(32), cords1 FLOAT NOT NULL DEFAULT '-1.0', cords2 FLOAT NOT NULL DEFAULT '-1.0', cords3 FLOAT NOT NULL DEFAULT '-1.0', angle1 FLOAT NOT NULL DEFAULT '-1.0',angle2 FLOAT NOT NULL DEFAULT '-1.0',angle3 FLOAT NOT NULL DEFAULT '-1.0', EncTickrate INT(12) DEFAULT '-1.0', runtimeTmp decimal(12,6) NOT NULL DEFAULT '-1.000000', Stage INT, zonegroup INT NOT NULL DEFAULT 0, PRIMARY KEY(steamid,mapname)) DEFAULT CHARSET=utf8mb4;"

0 commit comments

Comments
 (0)