diff options
| author | NCPlayz <[email protected]> | 2019-03-15 19:39:15 +0000 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2019-03-19 09:22:48 -0400 |
| commit | 8a30a4cac0651df5a24cb744fc104ced90a4cf3a (patch) | |
| tree | f211cab296d0aa43a6df3aa7f55c3771d34909c9 /discord/utils.py | |
| parent | Expose Metadata (diff) | |
| download | discord.py-8a30a4cac0651df5a24cb744fc104ced90a4cf3a.tar.xz discord.py-8a30a4cac0651df5a24cb744fc104ced90a4cf3a.zip | |
Add support for guild widget
Diffstat (limited to 'discord/utils.py')
| -rw-r--r-- | discord/utils.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/discord/utils.py b/discord/utils.py index dc63f1d3..96a26918 100644 --- a/discord/utils.py +++ b/discord/utils.py @@ -38,6 +38,7 @@ import re import warnings from .errors import InvalidArgument +from .object import Object DISCORD_EPOCH = 1420070400000 @@ -340,3 +341,28 @@ def _string_width(string, *, _IS_ASCII=_IS_ASCII): for char in string: width += 2 if func(char) in UNICODE_WIDE_CHAR_TYPE else 1 return width + +def resolve_invite(invite): + """ + Resolves an invite from a :class:`Invite`, URL or ID + + Parameters + ----------- + invite: Union[:class:`Invite`, :class:`Object`, :class:`str`] + The invite. + + Returns + -------- + :class:`str` + The invite code. + """ + from .invite import Invite # circular import + if isinstance(invite, Invite) or isinstance(invite, Object): + return invite.id + else: + rx = r'(?:https?\:\/\/)?discord(?:\.gg|app\.com\/invite)\/(.+)' + m = re.match(rx, invite) + if m: + return m.group(1) + return invite + |