def parse_add_command_args(cls, context, args): if context.message.attachments: return cls.parse_add_command_attachment(context, args) elif len(args) == 1: match = utils.emote.RE_CUSTOM_EMOTE.match(args[0]) if match is None: raise commands.BadArgument( 'Error: I expected a custom emote as the first argument, ' 'but I got something else. ' "If you're trying to add an emote using an image URL, " 'you need to provide a name as the first argument, like this:\n' '`{}add NAME_HERE URL_HERE`'.format(context.prefix)) else: animated, name, id = match.groups() url = utils.emote.url(id, animated=animated) return name, url elif len(args) >= 2: name = args[0] match = utils.emote.RE_CUSTOM_EMOTE.match(args[1]) if match is None: url = utils.strip_angle_brackets(args[1]) else: url = utils.emote.url(match['id'], animated=match['animated']) return name, url elif not args: raise commands.BadArgument('Your message had no emotes and no name!')