Compare commits

..

No commits in common. "32817f735e994420da7c9eacfbe5a715bed55ce3" and "333d6890c21f3a522ce7704a6a674d222a088dd9" have entirely different histories.

3 changed files with 14 additions and 20 deletions

View File

@ -35,12 +35,8 @@ class ArgumentParser:
def range_type(string, min=0, max=100): def range_type(string, min=0, max=100):
try:
value = int(string) value = int(string)
except ValueError:
raise argparse.ArgumentTypeError(f"value not a valid integer")
if min <= value <= max: if min <= value <= max:
return value return value
else: else:
raise argparse.ArgumentTypeError(f"value not in range {min}-{max}") raise argparse.ArgumentTypeError("value not in range %s-%s" % (min, max))

View File

@ -1,6 +1,7 @@
import re import re
import arguments import arguments
import commands import commands
import utils import utils
@ -13,7 +14,9 @@ async def clear(message):
) )
parser.add_argument( parser.add_argument(
"count", "count",
type=lambda c: arguments.range_type(c, min=1, max=1000), type=int,
choices=range(1, 1001),
metavar="[1-1000]",
help="amount of messages to delete", help="amount of messages to delete",
) )
parser.add_argument( parser.add_argument(
@ -35,12 +38,6 @@ async def clear(message):
action="store_true", action="store_true",
help="delete oldest messages first", help="delete oldest messages first",
) )
parser.add_argument(
"-R",
"--reactions",
action="store_true",
help="delete messages with reactions",
)
if not (args := await parser.parse_args(message, tokens)): if not (args := await parser.parse_args(message, tokens)):
return return
@ -50,20 +47,17 @@ async def clear(message):
c.append(re.match(r, m.content)) c.append(re.match(r, m.content))
if i := args.author_id: if i := args.author_id:
c.append(m.author.id in i) c.append(m.author.id in i)
if args.reactions:
c.append(len(m.reactions) > 0)
return all(c) return all(c)
messages = len( message_count = len(
await message.channel.purge( await message.channel.purge(
limit=args.count, check=check, oldest_first=args.oldest_first limit=args.count, check=check, oldest_first=args.oldest_first
) )
) )
try: try:
await utils.reply( await utils.reply(
message, message,
f"purged **{messages}/{args.count} {'message' if args.count == 1 else 'messages'}**", f"purged **{message_count} {'message' if message_count == 1 else 'messages'}**",
) )
except: except:
pass pass

View File

@ -1,3 +1,5 @@
import functools
import arguments import arguments
import commands import commands
import utils import utils
@ -23,7 +25,8 @@ async def queue_or_play(message):
"-v", "-v",
"--volume", "--volume",
default=50, default=50,
type=lambda v: arguments.range_type(v, min=0, max=150), type=functools.partial(arguments.range_type, min=0, max=150),
metavar="[0-150]",
help="the volume level (0 - 150)", help="the volume level (0 - 150)",
) )
group.add_argument( group.add_argument(
@ -224,7 +227,8 @@ async def volume(message):
parser.add_argument( parser.add_argument(
"volume", "volume",
nargs="?", nargs="?",
type=lambda v: arguments.range_type(v, min=0, max=150), type=functools.partial(arguments.range_type, min=0, max=150),
metavar="[0-150]",
help="the volume level (0 - 150)", help="the volume level (0 - 150)",
) )
if not (args := await parser.parse_args(message, tokens)): if not (args := await parser.parse_args(message, tokens)):