mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-21 10:17:59 -05:00
[Core] Add a cli flag for setting a max size of message cache (#3474)
* Add an arg in cli to change message cache size
* Add an arg in cli to change message cache size
* Changelog
* Actually pass None in message_cache_size
* Update cli.py
* Add a cli arg to disable message cache.
* Add a cli arg to disable message cache.
* well go away you useless
* you actually are an int
* Check if message cache is higher than 0 when set it.
* Use sys.maxsize as max cache size.
* Update cli.py
* Add bot.max_messages property.
* typos
* 🤦
* style
This commit is contained in:
@@ -74,6 +74,22 @@ async def interactive_config(red, token_set, prefix_set, *, print_header=True):
|
||||
return token
|
||||
|
||||
|
||||
def positive_int(arg: str) -> int:
|
||||
try:
|
||||
x = int(arg)
|
||||
except ValueError:
|
||||
raise argparse.ArgumentTypeError("Message cache size has to be a number.")
|
||||
if x < 1000:
|
||||
raise argparse.ArgumentTypeError(
|
||||
"Message cache size has to be greater than or equal to 1000."
|
||||
)
|
||||
if x > sys.maxsize:
|
||||
raise argparse.ArgumentTypeError(
|
||||
f"Message cache size has to be lower than or equal to {sys.maxsize}."
|
||||
)
|
||||
return x
|
||||
|
||||
|
||||
def parse_cli_flags(args):
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Red - Discord Bot", usage="redbot <instance_name> [arguments]"
|
||||
@@ -212,6 +228,15 @@ def parse_cli_flags(args):
|
||||
"all of the data on the host machine."
|
||||
),
|
||||
)
|
||||
parser.add_argument(
|
||||
"--message-cache-size",
|
||||
type=positive_int,
|
||||
default=1000,
|
||||
help="Set the maximum number of messages to store in the internal message cache.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--no-message-cache", action="store_true", help="Disable the internal message cache.",
|
||||
)
|
||||
|
||||
args = parser.parse_args(args)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user