Add support for guild widget

This commit is contained in:
NCPlayz
2019-03-15 19:39:15 +00:00
committed by Rapptz
parent f507f508a2
commit 8a30a4cac0
6 changed files with 333 additions and 14 deletions

View File

@ -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