aboutsummaryrefslogtreecommitdiff
path: root/discord/utils.py
diff options
context:
space:
mode:
authorNCPlayz <[email protected]>2019-03-15 19:39:15 +0000
committerRapptz <[email protected]>2019-03-19 09:22:48 -0400
commit8a30a4cac0651df5a24cb744fc104ced90a4cf3a (patch)
treef211cab296d0aa43a6df3aa7f55c3771d34909c9 /discord/utils.py
parentExpose Metadata (diff)
downloaddiscord.py-8a30a4cac0651df5a24cb744fc104ced90a4cf3a.tar.xz
discord.py-8a30a4cac0651df5a24cb744fc104ced90a4cf3a.zip
Add support for guild widget
Diffstat (limited to 'discord/utils.py')
-rw-r--r--discord/utils.py26
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
+