|
15 | 15 | field, |
16 | 16 | ) |
17 | 17 | from .channel import Channel |
| 18 | +from .emoji import Emoji |
18 | 19 | from .member import Member |
19 | 20 | from .misc import File, IDMixin, Snowflake |
20 | | -from .role import Role |
21 | 21 | from .team import Application |
22 | 22 | from .user import User |
23 | 23 |
|
24 | 24 | if TYPE_CHECKING: |
25 | 25 | from ...client.models.component import ActionRow, Button, Component, SelectMenu |
26 | 26 | from ..http import HTTPClient |
27 | | - from .guild import Guild |
28 | 27 |
|
29 | 28 | __all__ = ( |
30 | 29 | "MessageType", |
|
39 | 38 | "EmbedImageStruct", |
40 | 39 | "EmbedField", |
41 | 40 | "Attachment", |
42 | | - "Emoji", |
43 | 41 | "EmbedFooter", |
44 | 42 | "ReactionObject", |
45 | 43 | "PartialSticker", |
@@ -188,112 +186,6 @@ class ChannelMention(DictSerializerMixin, IDMixin): |
188 | 186 | name: str = field() |
189 | 187 |
|
190 | 188 |
|
191 | | -@define() |
192 | | -class Emoji(ClientSerializerMixin): |
193 | | - """ |
194 | | - A class objecting representing an emoji. |
195 | | -
|
196 | | - :ivar Optional[Snowflake] id?: Emoji id |
197 | | - :ivar Optional[str] name?: Emoji name. |
198 | | - :ivar Optional[List[Role]] roles?: Roles allowed to use this emoji |
199 | | - :ivar Optional[User] user?: User that created this emoji |
200 | | - :ivar Optional[bool] require_colons?: Status denoting of this emoji must be wrapped in colons |
201 | | - :ivar Optional[bool] managed?: Status denoting if this emoji is managed (by an integration) |
202 | | - :ivar Optional[bool] animated?: Status denoting if this emoji is animated |
203 | | - :ivar Optional[bool] available?: Status denoting if this emoji can be used. (Can be false via server boosting) |
204 | | - """ |
205 | | - |
206 | | - id: Optional[Snowflake] = field(converter=Snowflake, default=None) |
207 | | - name: Optional[str] = field(default=None) |
208 | | - roles: Optional[List[Role]] = field(converter=convert_list(Role), default=None) |
209 | | - user: Optional[User] = field(converter=User, default=None) |
210 | | - require_colons: Optional[bool] = field(default=None) |
211 | | - managed: Optional[bool] = field(default=None) |
212 | | - animated: Optional[bool] = field(default=None) |
213 | | - available: Optional[bool] = field(default=None) |
214 | | - |
215 | | - @classmethod |
216 | | - async def get( |
217 | | - cls, |
218 | | - guild_id: Union[int, Snowflake, "Guild"], |
219 | | - emoji_id: Union[int, Snowflake], |
220 | | - client: "HTTPClient", |
221 | | - ) -> "Emoji": |
222 | | - """ |
223 | | - Gets an emoji. |
224 | | -
|
225 | | - :param guild_id: The id of the guild of the emoji |
226 | | - :type guild_id: Union[int, Snowflake, "Guild"] |
227 | | - :param emoji_id: The id of the emoji |
228 | | - :type emoji_id: Union[int, Snowflake] |
229 | | - :param client: The HTTPClient of your bot. Equals to ``bot._http`` |
230 | | - :type client: HTTPClient |
231 | | - :return: The Emoji as object |
232 | | - :rtype: Emoji |
233 | | - """ |
234 | | - |
235 | | - _guild_id = int(guild_id) if isinstance(guild_id, (int, Snowflake)) else int(guild_id.id) |
236 | | - |
237 | | - res = await client.get_guild_emoji(guild_id=_guild_id, emoji_id=int(emoji_id)) |
238 | | - return cls(**res, _client=client) |
239 | | - |
240 | | - @classmethod |
241 | | - async def get_all_of_guild( |
242 | | - cls, |
243 | | - guild_id: Union[int, Snowflake, "Guild"], |
244 | | - client: "HTTPClient", |
245 | | - ) -> List["Emoji"]: |
246 | | - """ |
247 | | - Gets all emoji of a guild. |
248 | | -
|
249 | | - :param guild_id: The id of the guild to get the emojis of |
250 | | - :type guild_id: Union[int, Snowflake, "Guild"] |
251 | | - :param client: The HTTPClient of your bot. Equals to ``bot._http`` |
252 | | - :type client: HTTPClient |
253 | | - :return: The Emoji as list |
254 | | - :rtype: List[Emoji] |
255 | | - """ |
256 | | - |
257 | | - _guild_id = int(guild_id) if isinstance(guild_id, (int, Snowflake)) else int(guild_id.id) |
258 | | - |
259 | | - res = await client.get_all_emoji(guild_id=_guild_id) |
260 | | - return [cls(**emoji, _client=client) for emoji in res] |
261 | | - |
262 | | - async def delete( |
263 | | - self, |
264 | | - guild_id: Union[int, Snowflake, "Guild"], |
265 | | - reason: Optional[str] = None, |
266 | | - ) -> None: |
267 | | - """ |
268 | | - Deletes the emoji. |
269 | | -
|
270 | | - :param guild_id: The guild id to delete the emoji from |
271 | | - :type guild_id: Union[int, Snowflake, "Guild"] |
272 | | - :param reason?: The reason of the deletion |
273 | | - :type reason?: Optional[str] |
274 | | - """ |
275 | | - if not self._client: |
276 | | - raise LibraryException(code=13) |
277 | | - |
278 | | - _guild_id = int(guild_id) if isinstance(guild_id, (int, Snowflake)) else int(guild_id.id) |
279 | | - |
280 | | - return await self._client.delete_guild_emoji( |
281 | | - guild_id=_guild_id, emoji_id=int(self.id), reason=reason |
282 | | - ) |
283 | | - |
284 | | - @property |
285 | | - def url(self) -> str: |
286 | | - """ |
287 | | - Returns the emoji's URL. |
288 | | -
|
289 | | - :return: URL of the emoji |
290 | | - :rtype: str |
291 | | - """ |
292 | | - url = f"https://cdn.discordapp.com/emojis/{self.id}" |
293 | | - url += ".gif" if self.animated else ".png" |
294 | | - return url |
295 | | - |
296 | | - |
297 | 189 | @define() |
298 | 190 | class EmbedImageStruct(DictSerializerMixin): |
299 | 191 | """ |
|
0 commit comments