Skip to content

Commit b5ebc95

Browse files
committed
all playeroptions2;start playerrank;deprecated qrs
1 parent 8f714c6 commit b5ebc95

3 files changed

Lines changed: 142 additions & 28 deletions

File tree

surftimer/ck_playeroptions2.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,3 +185,37 @@ async def updatePlayerOptions(
185185
response.headers["content-type"] = "application/json"
186186
response.status_code = status.HTTP_200_OK
187187
return response
188+
189+
190+
@router.delete(
191+
"/surftimer/deleteWipePlayerOptions",
192+
name="Wipe Player Options",
193+
tags=["ck_playeroptions2", "strays", "Wipe"],
194+
)
195+
def deleteWipePlayerOptions(
196+
request: Request,
197+
response: Response,
198+
steamid32: str,
199+
):
200+
"""```char sql_stray_deleteWipePlayerOptions[] = ....```\n
201+
Wipes player options for player"""
202+
tic = time.perf_counter()
203+
204+
xquery = insertQuery(
205+
surftimer.queries.sql_stray_deleteWipePlayerOptions.format(steamid32)
206+
)
207+
208+
content_data = {"deleted": xquery, "xtime": time.perf_counter() - tic}
209+
if xquery < 1:
210+
# response.body = json.dumps(content_data).encode('utf-8')
211+
response.headers["content-type"] = "application/json"
212+
response.status_code = status.HTTP_304_NOT_MODIFIED
213+
return response
214+
215+
toc = time.perf_counter()
216+
print(f"Execution time {toc - tic:0.4f}")
217+
218+
response.body = json.dumps(content_data).encode("utf-8")
219+
response.headers["content-type"] = "application/json"
220+
response.status_code = status.HTTP_200_OK
221+
return response

surftimer/ck_playerrank.py

Lines changed: 81 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,13 +247,15 @@ async def updatePlayerRank(
247247
"/surftimer/selectPlayerName",
248248
name="Select Player Name",
249249
tags=["ck_playerrank"],
250+
deprecated=True,
250251
)
251252
async def selectPlayerName(
252253
request: Request,
253254
response: Response,
254255
steamid32: str,
255256
):
256-
"""`char[] sql_selectPlayerName = ....`"""
257+
"""`char[] sql_selectPlayerName = ....`. \n
258+
Merged with `sql_stray_point_calc_playerRankData`"""
257259
tic = time.perf_counter()
258260

259261
# Check if data is cached in Redis
@@ -669,3 +671,81 @@ async def updatePlayerConnections(
669671
response.headers["content-type"] = "application/json"
670672
response.status_code = status.HTTP_200_OK
671673
return response
674+
675+
676+
@router.delete(
677+
"/surftimer/deleteWipePlayerRank",
678+
name="Wipe Player Rank",
679+
tags=["ck_playerrank", "strays", "Wipe"],
680+
)
681+
def deleteWipePlayerRank(
682+
request: Request,
683+
response: Response,
684+
steamid32: str,
685+
):
686+
"""```char sql_stray_deleteWipePlayerRank[] = ....```\n
687+
Wipes all `playerrank` entries for player"""
688+
tic = time.perf_counter()
689+
690+
xquery = insertQuery(
691+
surftimer.queries.sql_stray_deleteWipePlayerRank.format(steamid32)
692+
)
693+
694+
content_data = {"deleted": xquery, "xtime": time.perf_counter() - tic}
695+
if xquery < 1:
696+
# response.body = json.dumps(content_data).encode('utf-8')
697+
response.headers["content-type"] = "application/json"
698+
response.status_code = status.HTTP_304_NOT_MODIFIED
699+
return response
700+
701+
toc = time.perf_counter()
702+
print(f"Execution time {toc - tic:0.4f}")
703+
704+
response.body = json.dumps(content_data).encode("utf-8")
705+
response.headers["content-type"] = "application/json"
706+
response.status_code = status.HTTP_200_OK
707+
return response
708+
709+
710+
@router.get(
711+
"/surftimer/point_calc_playerRankData",
712+
name="Select Player Name",
713+
tags=["ck_playerrank", "strays", "Point Calculation"],
714+
)
715+
async def point_calc_playerRankData(
716+
request: Request,
717+
response: Response,
718+
steamid32: str,
719+
style: int,
720+
):
721+
"""```char sql_stray_point_calc_playerRankData[] = ....```"""
722+
tic = time.perf_counter()
723+
724+
# Check if data is cached in Redis
725+
cache_key = f"point_calc_playerRankData:{steamid32}-{style}"
726+
cached_data = get_cache(cache_key)
727+
if cached_data is not None:
728+
print(f"[Redis] Loaded '{cache_key}' ({time.perf_counter() - tic:0.4f}s)")
729+
response.headers["content-type"] = "application/json"
730+
response.status_code = status.HTTP_200_OK
731+
response.body = json.loads(cached_data, use_decimal=True, parse_nan=True)
732+
return response
733+
734+
xquery = selectQuery(
735+
surftimer.queries.sql_stray_point_calc_playerRankData.format(steamid32, style)
736+
)
737+
738+
if xquery:
739+
xquery = xquery.pop()
740+
else:
741+
response.status_code = status.HTTP_204_NO_CONTENT
742+
return response
743+
744+
toc = time.perf_counter()
745+
746+
print(f"Execution time {toc - tic:0.4f}")
747+
748+
# Cache the data in Redis
749+
set_cache(cache_key, xquery)
750+
751+
return xquery

surftimer/queries.py

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@
5454
sql_insertPlayerOptions = "INSERT INTO ck_playeroptions2 (steamid) VALUES ('{}');"
5555
sql_selectPlayerOptions = "SELECT timer, hide, sounds, chat, viewmodel, autobhop, checkpoints, gradient, speedmode, centrespeed, centrehud, teleside, module1c, module2c, module3c, module4c, module5c, module6c, sidehud, module1s, module2s, module3s, module4s, module5s, prestrafe, cpmessages, wrcpmessages, hints, csd_update_rate, csd_pos_x, csd_pos_y, csd_r, csd_g, csd_b, prespeedmode FROM ck_playeroptions2 where steamid = '{}';"
5656
sql_updatePlayerOptions = "UPDATE ck_playeroptions2 SET timer = {}, hide = {}, sounds = {}, chat = {}, viewmodel = {}, autobhop = {}, checkpoints = {}, gradient = {}, speedmode = {}, centrespeed = {}, centrehud = {}, teleside = {}, module1c = {}, module2c = {}, module3c = {}, module4c = {}, module5c = {}, module6c = {}, sidehud = {}, module1s = {}, module2s = {}, module3s = {}, module4s = {}, module5s = {}, prestrafe = {}, cpmessages = {}, wrcpmessages = {}, hints = {}, csd_update_rate = {}, csd_pos_x = {}, csd_pos_y = {}, csd_r= {}, csd_g = {}, csd_b = {}, prespeedmode = {} where steamid = '{}'"
57+
sql_stray_deleteWipePlayerOptions = (
58+
"DELETE FROM ck_playeroptions2 WHERE steamid = '{}';"
59+
)
5760

5861
## ck_playerrank
5962
sql_createPlayerRank = "CREATE TABLE IF NOT EXISTS `ck_playerrank` (`steamid` varchar(32) NOT NULL DEFAULT '', `steamid64` varchar(64) DEFAULT NULL, `name` varchar(64) DEFAULT NULL, `country` varchar(32) DEFAULT NULL, `countryCode` varchar(3) DEFAULT NULL, `continentCode` varchar(3) DEFAULT NULL, `points` int(12) DEFAULT '0', `wrpoints` int(12) NOT NULL DEFAULT '0', `wrbpoints` int(12) NOT NULL DEFAULT '0', `wrcppoints` int(11) NOT NULL DEFAULT '0', `top10points` int(12) NOT NULL DEFAULT '0', `groupspoints` int(12) NOT NULL DEFAULT '0', `mappoints` int(11) NOT NULL DEFAULT '0', `bonuspoints` int(12) NOT NULL DEFAULT '0', `finishedmaps` int(12) DEFAULT '0', `finishedmapspro` int(12) DEFAULT '0', `finishedbonuses` int(12) NOT NULL DEFAULT '0', `finishedstages` int(12) NOT NULL DEFAULT '0', `wrs` int(12) NOT NULL DEFAULT '0', `wrbs` int(12) NOT NULL DEFAULT '0', `wrcps` int(12) NOT NULL DEFAULT '0', `top10s` int(12) NOT NULL DEFAULT '0', `groups` int(12) NOT NULL DEFAULT '0', `lastseen` int(64) DEFAULT NULL, `joined` int(64) NOT NULL, `timealive` int(64) NOT NULL DEFAULT '0', `timespec` int(64) NOT NULL DEFAULT '0', `connections` int(64) NOT NULL DEFAULT '1', `readchangelog` int(11) NOT NULL DEFAULT '0', `style` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`steamid`, `style`)) DEFAULT CHARSET=utf8mb4;"
@@ -216,31 +219,28 @@
216219
sql_stray_selectMapcycle = "SELECT mapname, tier FROM ck_maptier ORDER BY mapname ASC"
217220

218221

219-
# # ck_playeroptions2
220-
# char sql_stray_deleteWipePlayerOptions[] = "DELETE FROM ck_playeroptions2 WHERE steamid = '{}';"
221-
222222
# # ck_playerrank
223-
# char sql_stray_deleteWipePlayerRank[] = "DELETE FROM ck_playerrank WHERE steamid = '{}';"
224-
# char sql_stray_point_calc_playerRankData[] = "SELECT name FROM ck_playerrank WHERE steamid = '{}' AND style = {};"
225-
# char sql_stray_playerRankByName[] = "SELECT steamid FROM ck_playerrank WHERE style = {} AND name LIKE '%{}%' LIMIT 1;"
226-
# char sql_stray_cleanupPlayerRank[] = "DELETE FROM ck_playerrank WHERE `points` <= 0"
227-
# char sql_stray_specificCountryRank[] = "SELECT COUNT(steamid), country FROM ck_playerrank WHERE country = '{}' AND style = {};"
228-
# char sql_stray_getPlayerPoints[] = "SELECT points FROM ck_playerrank WHERE name = '{}' AND style = {};"
229-
# char sql_stray_getPlayerCountryRank[] = "SELECT COUNT(steamid) + 1 FROM ck_playerrank WHERE country = '{}' AND style = {} AND points > {};"
230-
# char sql_stray_countryRankGetPlayerByName[] = "SELECT * FROM ck_playerrank WHERE name = '{}';"
231-
# char sql_stray_countryRankPlayerCountryRankByName[] = "SELECT country FROM ck_playerrank WHERE name = '{}' AND style = {};"
232-
# char sql_stray_countryTop[] = "SELECT name, country, points, style FROM ck_playerrank WHERE country = '{}' AND style = {} ORDER BY points DESC LIMIT 100;"
233-
# char sql_stray_countryTopAllCountries[] = "SELECT DISTINCT(country) FROM ck_playerrank WHERE style = {} ORDER BY country;"
234-
# char sql_stray_specificContinentRank[] = "SELECT COUNT(steamid) FROM ck_playerrank WHERE continentCode = '{}' AND style = {};"
235-
# char sql_stray_continentPlayerPoints[] = "SELECT points FROM ck_playerrank WHERE name = '{}' AND style = {};"
236-
# char sql_stray_continentPlayerRank[] = "SELECT COUNT(steamid) + 1 FROM ck_playerrank WHERE continentCode = '{}' AND style = {} AND points > {};"
237-
# char sql_stray_continentPlayerRankByName[] = "SELECT * FROM ck_playerrank WHERE name = '{}';"
238-
# char sql_stray_continentGetPlayerContinentByName[] = "SELECT continentCode FROM ck_playerrank WHERE name = '{}' AND style = {};"
239-
# char sql_stray_continentTop[] = "SELECT name, points, style FROM ck_playerrank WHERE continentCode = '{}' AND style = {} ORDER BY points DESC LIMIT 100;"
240-
# char sql_stray_continentNames[] = "SELECT DISTINCT(continentCode) FROM ck_playerrank WHERE style = {} AND continentCode IS NOT NULL ORDER BY continentCode;"
241-
# char sql_stray_viewPlayerRank[] = "SELECT name, points, style FROM ck_playerrank WHERE style = {} AND points >= (SELECT points FROM ck_playerrank WHERE steamid = '{}' AND style = {}) ORDER BY points;"
242-
# char sql_stray_getNextRankPoints[] = "SELECT points FROM ck_playerrank WHERE style = %d ORDER BY points DESC LIMIT %d,1;"
243-
# char sql_stray_viewPlayerInfo[] = "SELECT steamid, steamid64, name, country, lastseen, joined, connections, timealive, timespec FROM ck_playerrank WHERE steamid = '{}';"
244-
# char sql_stray_rankCommand[] = "SELECT name, points FROM ck_playerrank WHERE style = 0 ORDER BY points DESC LIMIT {}, 1;"
245-
# char sql_stray_rankCommandSelf[] = "SELECT name, points FROM ck_playerrank WHERE steamid = '{}' AND style = 0;"
246-
# char sql_stray_selectPlayerRankUnknown[] = "SELECT steamid, name, points FROM ck_playerrank WHERE name LIKE '%{}%' ORDER BY points DESC LIMIT 0, 1;"
223+
sql_stray_deleteWipePlayerRank = "DELETE FROM ck_playerrank WHERE steamid = '{}';"
224+
sql_stray_point_calc_playerRankData = "SELECT name FROM ck_playerrank WHERE steamid = '{}' AND style = {};" # duplicate of sql_selectPlayerName
225+
# sql_stray_playerRankByName = "SELECT steamid FROM ck_playerrank WHERE style = {} AND name LIKE '%{}%' LIMIT 1;"
226+
# sql_stray_cleanupPlayerRank = "DELETE FROM ck_playerrank WHERE `points` <= 0"
227+
# sql_stray_specificCountryRank = "SELECT COUNT(steamid), country FROM ck_playerrank WHERE country = '{}' AND style = {};"
228+
# sql_stray_getPlayerPoints = "SELECT points FROM ck_playerrank WHERE name = '{}' AND style = {};"
229+
# sql_stray_getPlayerCountryRank = "SELECT COUNT(steamid) + 1 FROM ck_playerrank WHERE country = '{}' AND style = {} AND points > {};"
230+
# sql_stray_countryRankGetPlayerByName = "SELECT * FROM ck_playerrank WHERE name = '{}';"
231+
# sql_stray_countryRankPlayerCountryRankByName = "SELECT country FROM ck_playerrank WHERE name = '{}' AND style = {};"
232+
# sql_stray_countryTop = "SELECT name, country, points, style FROM ck_playerrank WHERE country = '{}' AND style = {} ORDER BY points DESC LIMIT 100;"
233+
# sql_stray_countryTopAllCountries = "SELECT DISTINCT(country) FROM ck_playerrank WHERE style = {} ORDER BY country;"
234+
# sql_stray_specificContinentRank = "SELECT COUNT(steamid) FROM ck_playerrank WHERE continentCode = '{}' AND style = {};"
235+
# sql_stray_continentPlayerPoints = "SELECT points FROM ck_playerrank WHERE name = '{}' AND style = {};"
236+
# sql_stray_continentPlayerRank = "SELECT COUNT(steamid) + 1 FROM ck_playerrank WHERE continentCode = '{}' AND style = {} AND points > {};"
237+
# sql_stray_continentPlayerRankByName = "SELECT * FROM ck_playerrank WHERE name = '{}';"
238+
# sql_stray_continentGetPlayerContinentByName = "SELECT continentCode FROM ck_playerrank WHERE name = '{}' AND style = {};"
239+
# sql_stray_continentTop = "SELECT name, points, style FROM ck_playerrank WHERE continentCode = '{}' AND style = {} ORDER BY points DESC LIMIT 100;"
240+
# sql_stray_continentNames = "SELECT DISTINCT(continentCode) FROM ck_playerrank WHERE style = {} AND continentCode IS NOT NULL ORDER BY continentCode;"
241+
# sql_stray_viewPlayerRank = "SELECT name, points, style FROM ck_playerrank WHERE style = {} AND points >= (SELECT points FROM ck_playerrank WHERE steamid = '{}' AND style = {}) ORDER BY points;"
242+
# sql_stray_getNextRankPoints = "SELECT points FROM ck_playerrank WHERE style = {} ORDER BY points DESC LIMIT {},1;"
243+
# sql_stray_viewPlayerInfo = "SELECT steamid, steamid64, name, country, lastseen, joined, connections, timealive, timespec FROM ck_playerrank WHERE steamid = '{}';"
244+
# sql_stray_rankCommand = "SELECT name, points FROM ck_playerrank WHERE style = 0 ORDER BY points DESC LIMIT {}, 1;"
245+
# sql_stray_rankCommandSelf = "SELECT name, points FROM ck_playerrank WHERE steamid = '{}' AND style = 0;"
246+
# sql_stray_selectPlayerRankUnknown = "SELECT steamid, name, points FROM ck_playerrank WHERE name LIKE '%{}%' ORDER BY points DESC LIMIT 0, 1;"

0 commit comments

Comments
 (0)