Skip to content

Commit

Permalink
Add wear bound method to Gift class
Browse files Browse the repository at this point in the history
  • Loading branch information
KurimuzonAkuma committed Jan 29, 2025
1 parent 8a6fab4 commit 1fd0d5a
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 9 deletions.
1 change: 1 addition & 0 deletions compiler/docs/compiler.py
Original file line number Diff line number Diff line change
Expand Up @@ -857,6 +857,7 @@ def get_title_list(s: str) -> list:
Gift.convert
Gift.upgrade
Gift.transfer
Gift.wear
""",
animation="""
Animation
Expand Down
4 changes: 4 additions & 0 deletions pyrogram/methods/users/set_emoji_status.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,11 @@ async def set_emoji_status(
from pyrogram import types
# Set emoji status
await app.set_emoji_status(types.EmojiStatus(custom_emoji_id=1234567890987654321))
# Set collectible emoji status
await app.set_emoji_status(types.EmojiStatus(collectible_id=1234567890987654321))
"""
await self.invoke(
raw.functions.account.UpdateEmojiStatus(
Expand Down
27 changes: 27 additions & 0 deletions pyrogram/types/messages_and_media/gift.py
Original file line number Diff line number Diff line change
Expand Up @@ -491,3 +491,30 @@ async def transfer(self, to_chat_id: Union[int, str]) -> bool:
message_id=self.message_id,
to_chat_id=to_chat_id
)

async def wear(self) -> bool:
"""Bound method *wear* of :obj:`~pyrogram.types.Gift`.
.. note::
This works for upgraded gifts only.
Use as a shortcut for:
.. code-block:: python
await client.set_emoji_status(types.EmojiStatus(gift_id=123))
Example:
.. code-block:: python
await star_gift.wear()
Returns:
``bool``: On success, True is returned.
"""
return self._client.set_emoji_status(
emoji_status=types.EmojiStatus(
gift_id=self.id
)
)
18 changes: 9 additions & 9 deletions pyrogram/types/user_and_chats/emoji_status.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ class EmojiStatus(Object):
"""A user emoji status.
Parameters:
custom_emoji_id (``int``):
custom_emoji_id (``int``, *optional*):
Custom emoji id.
until_date (:py:obj:`~datetime.datetime`, *optional*):
Expand All @@ -38,8 +38,8 @@ class EmojiStatus(Object):
title (``str``, *optional*):
Title of the collectible.
collectible_id (``int``, *optional*):
Collectible id.
gift_id (``int``, *optional*):
Gift collectible id.
name (``str``, *optional*):
Name of the collectible.
Expand All @@ -64,10 +64,10 @@ def __init__(
self,
*,
client: "pyrogram.Client" = None,
custom_emoji_id: int,
custom_emoji_id: Optional[int] = None,
gift_id: Optional[int] = None,
until_date: Optional[datetime] = None,
title: Optional[str] = None,
collectible_id: Optional[int] = None,
name: Optional[str] = None,
pattern_custom_emoji_id: Optional[int] = None,
center_color: Optional[int] = None,
Expand All @@ -78,9 +78,9 @@ def __init__(
super().__init__(client)

self.custom_emoji_id = custom_emoji_id
self.gift_id = gift_id
self.until_date = until_date
self.title = title
self.collectible_id = collectible_id
self.name = name
self.pattern_custom_emoji_id = pattern_custom_emoji_id
self.center_color = center_color
Expand All @@ -101,9 +101,9 @@ def _parse(client, emoji_status: "raw.base.EmojiStatus") -> Optional["EmojiStatu
return EmojiStatus(
client=client,
custom_emoji_id=emoji_status.document_id,
gift_id=emoji_status.collectible_id,
until_date=utils.timestamp_to_datetime(getattr(emoji_status, "until", None)),
title=emoji_status.title,
collectible_id=emoji_status.collectible_id,
name=emoji_status.slug,
pattern_custom_emoji_id=emoji_status.pattern_document_id,
center_color=emoji_status.center_color,
Expand All @@ -115,9 +115,9 @@ def _parse(client, emoji_status: "raw.base.EmojiStatus") -> Optional["EmojiStatu
return None

def write(self):
if self.collectible_id:
if self.gift_id:
return raw.types.InputEmojiStatusCollectible(
collectible_id=self.collectible_id,
collectible_id=self.gift_id,
until=utils.datetime_to_timestamp(self.until_date)
)

Expand Down

0 comments on commit 1fd0d5a

Please sign in to comment.