mirror of
https://github.com/solero/houdini.git
synced 2025-01-11 15:17:00 +00:00
Cache get_player_info_by_id result
This commit is contained in:
parent
dcd51968b9
commit
a4052b66d5
@ -1,17 +1,24 @@
|
|||||||
from houdini import handlers
|
from houdini import handlers
|
||||||
from houdini.handlers import XTPacket
|
from houdini.handlers import XTPacket
|
||||||
|
|
||||||
|
from aiocache import cached
|
||||||
|
|
||||||
async def get_player_info_by_id(p, id):
|
|
||||||
if id in p.server.penguins_by_id:
|
def get_player_info_key(_, p, player_id):
|
||||||
player = p.server.penguins_by_id[id]
|
return 'player.info.{}'.format(player_id)
|
||||||
|
|
||||||
|
|
||||||
|
@cached(alias='default', key_builder=get_player_info_key)
|
||||||
|
async def get_player_info_by_id(p, player_id):
|
||||||
|
if player_id in p.server.penguins_by_id:
|
||||||
|
player = p.server.penguins_by_id[player_id]
|
||||||
player_tuple = (player.data.nickname, player.data.id, player.data.nickname)
|
player_tuple = (player.data.nickname, player.data.id, player.data.nickname)
|
||||||
else:
|
else:
|
||||||
player_tuple = await p.data.select('nickname', 'id', 'nickname').where(p.data.id == id).gino.first()
|
player_tuple = await p.data.select('nickname', 'id', 'nickname').where(
|
||||||
|
p.data.id == player_id).gino.first()
|
||||||
|
|
||||||
if player_tuple is not None:
|
if player_tuple is not None:
|
||||||
player_data = [str(player_detail) for player_detail in player_tuple]
|
return "|".join(map(str, player_tuple))
|
||||||
return "|".join(player_data)
|
|
||||||
|
|
||||||
return str()
|
return str()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user