mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-06 03:08:55 -05:00
[Bank API] Cache global bank settings (#4723)
* cache global bank settings * Make the global variable name clearer Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
This commit is contained in:
parent
2b72f9bb99
commit
e4d24578b5
@ -75,6 +75,9 @@ log = logging.getLogger("red.core.bank")
|
|||||||
|
|
||||||
_data_deletion_lock = asyncio.Lock()
|
_data_deletion_lock = asyncio.Lock()
|
||||||
|
|
||||||
|
_cache_is_global = None
|
||||||
|
_cache = {"bank_name": None, "currency": None, "default_balance": None, "max_balance": None}
|
||||||
|
|
||||||
|
|
||||||
async def _init():
|
async def _init():
|
||||||
global _config
|
global _config
|
||||||
@ -642,7 +645,12 @@ async def is_global() -> bool:
|
|||||||
:code:`True` if the bank is global, otherwise :code:`False`.
|
:code:`True` if the bank is global, otherwise :code:`False`.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
return await _config.is_global()
|
global _cache_is_global
|
||||||
|
|
||||||
|
if _cache_is_global is None:
|
||||||
|
_cache_is_global = await _config.is_global()
|
||||||
|
|
||||||
|
return _cache_is_global
|
||||||
|
|
||||||
|
|
||||||
async def set_global(global_: bool) -> bool:
|
async def set_global(global_: bool) -> bool:
|
||||||
@ -671,12 +679,15 @@ async def set_global(global_: bool) -> bool:
|
|||||||
if (await is_global()) is global_:
|
if (await is_global()) is global_:
|
||||||
return global_
|
return global_
|
||||||
|
|
||||||
|
global _cache_is_global
|
||||||
|
|
||||||
if await is_global():
|
if await is_global():
|
||||||
await _config.clear_all_users()
|
await _config.clear_all_users()
|
||||||
else:
|
else:
|
||||||
await _config.clear_all_members()
|
await _config.clear_all_members()
|
||||||
|
|
||||||
await _config.is_global.set(global_)
|
await _config.is_global.set(global_)
|
||||||
|
_cache_is_global = global_
|
||||||
return global_
|
return global_
|
||||||
|
|
||||||
|
|
||||||
@ -701,7 +712,10 @@ async def get_bank_name(guild: discord.Guild = None) -> str:
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
if await is_global():
|
if await is_global():
|
||||||
return await _config.bank_name()
|
global _cache
|
||||||
|
if _cache["bank_name"] is None:
|
||||||
|
_cache["bank_name"] = await _config.bank_name()
|
||||||
|
return _cache["bank_name"]
|
||||||
elif guild is not None:
|
elif guild is not None:
|
||||||
return await _config.guild(guild).bank_name()
|
return await _config.guild(guild).bank_name()
|
||||||
else:
|
else:
|
||||||
@ -732,6 +746,8 @@ async def set_bank_name(name: str, guild: discord.Guild = None) -> str:
|
|||||||
"""
|
"""
|
||||||
if await is_global():
|
if await is_global():
|
||||||
await _config.bank_name.set(name)
|
await _config.bank_name.set(name)
|
||||||
|
global _cache
|
||||||
|
_cache["bank_name"] = name
|
||||||
elif guild is not None:
|
elif guild is not None:
|
||||||
await _config.guild(guild).bank_name.set(name)
|
await _config.guild(guild).bank_name.set(name)
|
||||||
else:
|
else:
|
||||||
@ -760,7 +776,10 @@ async def get_currency_name(guild: discord.Guild = None) -> str:
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
if await is_global():
|
if await is_global():
|
||||||
return await _config.currency()
|
global _cache
|
||||||
|
if _cache["currency"] is None:
|
||||||
|
_cache["currency"] = await _config.currency()
|
||||||
|
return _cache["currency"]
|
||||||
elif guild is not None:
|
elif guild is not None:
|
||||||
return await _config.guild(guild).currency()
|
return await _config.guild(guild).currency()
|
||||||
else:
|
else:
|
||||||
@ -791,6 +810,8 @@ async def set_currency_name(name: str, guild: discord.Guild = None) -> str:
|
|||||||
"""
|
"""
|
||||||
if await is_global():
|
if await is_global():
|
||||||
await _config.currency.set(name)
|
await _config.currency.set(name)
|
||||||
|
global _cache
|
||||||
|
_cache["currency"] = name
|
||||||
elif guild is not None:
|
elif guild is not None:
|
||||||
await _config.guild(guild).currency.set(name)
|
await _config.guild(guild).currency.set(name)
|
||||||
else:
|
else:
|
||||||
@ -821,7 +842,9 @@ async def get_max_balance(guild: discord.Guild = None) -> int:
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
if await is_global():
|
if await is_global():
|
||||||
return await _config.max_balance()
|
if _cache["max_balance"] is None:
|
||||||
|
_cache["max_balance"] = await _config.max_balance()
|
||||||
|
return _cache["max_balance"]
|
||||||
elif guild is not None:
|
elif guild is not None:
|
||||||
return await _config.guild(guild).max_balance()
|
return await _config.guild(guild).max_balance()
|
||||||
else:
|
else:
|
||||||
@ -865,6 +888,8 @@ async def set_max_balance(amount: int, guild: discord.Guild = None) -> int:
|
|||||||
|
|
||||||
if await is_global():
|
if await is_global():
|
||||||
await _config.max_balance.set(amount)
|
await _config.max_balance.set(amount)
|
||||||
|
global _cache
|
||||||
|
_cache["max_balance"] = amount
|
||||||
elif guild is not None:
|
elif guild is not None:
|
||||||
await _config.guild(guild).max_balance.set(amount)
|
await _config.guild(guild).max_balance.set(amount)
|
||||||
else:
|
else:
|
||||||
@ -895,7 +920,9 @@ async def get_default_balance(guild: discord.Guild = None) -> int:
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
if await is_global():
|
if await is_global():
|
||||||
return await _config.default_balance()
|
if _cache["default_balance"] is None:
|
||||||
|
_cache["default_balance"] = await _config.default_balance()
|
||||||
|
return _cache["default_balance"]
|
||||||
elif guild is not None:
|
elif guild is not None:
|
||||||
return await _config.guild(guild).default_balance()
|
return await _config.guild(guild).default_balance()
|
||||||
else:
|
else:
|
||||||
@ -941,6 +968,8 @@ async def set_default_balance(amount: int, guild: discord.Guild = None) -> int:
|
|||||||
|
|
||||||
if await is_global():
|
if await is_global():
|
||||||
await _config.default_balance.set(amount)
|
await _config.default_balance.set(amount)
|
||||||
|
global _cache
|
||||||
|
_cache["default_balance"] = amount
|
||||||
elif guild is not None:
|
elif guild is not None:
|
||||||
await _config.guild(guild).default_balance.set(amount)
|
await _config.guild(guild).default_balance.set(amount)
|
||||||
else:
|
else:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user