Cog-Creators / Cog-Creators/Red-DiscordBot
alias: curly-quote raises UnexpectedQuoteError when command consumes args
- Dominant language
- Python
- Stars
- 5.7k
- Forks
- 2.5k
- Avg merge
- 6d 16h
- Merged PRs (30d)
- 1
Description
# Command bugs
#### Command name
alias
#### What cog is this command from?
alias
#### What were you expecting to happen?
I aliased a command that consumes args. I expected the aliased command to work with the same arguments that the command itself works with.
#### What actually happened?
Instead, adding a curly-quote in the alias arguments causes the command to fail with no output.
My successful command with [quaggagriff](https://github.com/synrg/quaggagriff) inatcog is:
```
[p]inat taxon woodhouse’s toad
```

With `[p]taxon` set as a global alias for `[p]inat taxon`, my failing command using this alias is:
```
[p]taxon woodhouse’s toad
```
The traceback looks like this:
```python
Ignoring exception in on_message
Traceback (most recent call last):
File "/home/synrg/.local/lib/python3.7/site-packages/discord/client.py", line 270, in _run_event
await coro(*args, **kwargs)
File "/home/synrg/.local/lib/python3.7/site-packages/redbot/cogs/alias/alias.py", line 446, in on_message
await self.maybe_call_alias(message, aliases=aliases)
File "/home/synrg/.local/lib/python3.7/site-packages/redbot/cogs/alias/alias.py", line 210, in maybe_call_alias
await self.call_alias(message, prefix, alias)
File "/home/synrg/.local/lib/python3.7/site-packages/redbot/cogs/alias/alias.py", line 215, in call_alias
args = self.get_extra_args_from_alias(message, prefix, alias)
File "/home/synrg/.local/lib/python3.7/site-packages/redbot/cogs/alias/alias.py", line 185, in get_extra_args_from_alias
word = view.get_quoted_word()
File "/home/synrg/.local/lib/python3.7/site-packages/discord/ext/commands/view.py", line 174, in get_quoted_word
raise UnexpectedQuoteError(current)
discord.ext.commands.errors.UnexpectedQuoteError: Unexpected quote mark, '’', in non-quoted string
```
#### How can we reproduce this issue?
1. Write a command, or choose an existing command that consumes args (last arg is `*` and has one *kwarg*).
2. Alias the command. (I assume global makes no difference, but global is what I used.)
3. Execute the command with a curly-quote in the arguments to prove it works with an argument with a single curly-quote in it.
4. Execute the command via its alias with a curly-quote in the arguments to show that it breaks with a single curly-quote in it.
Use of any of these quotes probably causes the same error:
https://github.com/Rapptz/discord.py/blob/874c2cd3c9ed47fa42eea184b167b8c0c64ea18e/discord/ext/commands/view.py#L30-L48
Contributor guide
Assessment
This issue has not been assessed yet.