mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-06-07 20:28:38 +00:00
Typehint Sticker
This commit is contained in:
parent
52678b2eb5
commit
7e1f8bf1b4
@ -22,6 +22,9 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|||||||
DEALINGS IN THE SOFTWARE.
|
DEALINGS IN THE SOFTWARE.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
from typing import TYPE_CHECKING, List, Optional
|
||||||
|
|
||||||
from .mixins import Hashable
|
from .mixins import Hashable
|
||||||
from .asset import Asset
|
from .asset import Asset
|
||||||
from .utils import snowflake_time
|
from .utils import snowflake_time
|
||||||
@ -31,6 +34,12 @@ __all__ = (
|
|||||||
'Sticker',
|
'Sticker',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
import datetime
|
||||||
|
from .state import ConnectionState
|
||||||
|
from .types.message import Sticker as StickerPayload
|
||||||
|
|
||||||
|
|
||||||
class Sticker(Hashable):
|
class Sticker(Hashable):
|
||||||
"""Represents a sticker.
|
"""Represents a sticker.
|
||||||
|
|
||||||
@ -65,35 +74,36 @@ class Sticker(Hashable):
|
|||||||
tags: List[:class:`str`]
|
tags: List[:class:`str`]
|
||||||
A list of tags for the sticker.
|
A list of tags for the sticker.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
__slots__ = ('_state', 'id', 'name', 'description', 'pack_id', 'format', '_image', 'tags')
|
__slots__ = ('_state', 'id', 'name', 'description', 'pack_id', 'format', '_image', 'tags')
|
||||||
|
|
||||||
def __init__(self, *, state, data):
|
def __init__(self, *, state: ConnectionState, data: StickerPayload):
|
||||||
self._state = state
|
self._state: ConnectionState = state
|
||||||
self.id = int(data['id'])
|
self.id: int = int(data['id'])
|
||||||
self.name = data['name']
|
self.name: str = data['name']
|
||||||
self.description = data['description']
|
self.description: str = data['description']
|
||||||
self.pack_id = int(data['pack_id'])
|
self.pack_id: int = int(data['pack_id'])
|
||||||
self.format = try_enum(StickerType, data['format_type'])
|
self.format: StickerType = try_enum(StickerType, data['format_type'])
|
||||||
self._image = data['asset']
|
self._image: str = data['asset']
|
||||||
|
|
||||||
try:
|
try:
|
||||||
self.tags = [tag.strip() for tag in data['tags'].split(',')]
|
self.tags: List[str] = [tag.strip() for tag in data['tags'].split(',')]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
self.tags = []
|
self.tags = []
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self) -> str:
|
||||||
return f'<{self.__class__.__name__} id={self.id} name={self.name!r}>'
|
return f'<{self.__class__.__name__} id={self.id} name={self.name!r}>'
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self) -> str:
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def created_at(self):
|
def created_at(self) -> datetime.datetime:
|
||||||
""":class:`datetime.datetime`: Returns the sticker's creation time in UTC."""
|
""":class:`datetime.datetime`: Returns the sticker's creation time in UTC."""
|
||||||
return snowflake_time(self.id)
|
return snowflake_time(self.id)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def image(self):
|
def image(self) -> Optional[Asset]:
|
||||||
"""Returns an :class:`Asset` for the sticker's image.
|
"""Returns an :class:`Asset` for the sticker's image.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
Loading…
x
Reference in New Issue
Block a user