Skip to content

Commit

Permalink
Added methods
Browse files Browse the repository at this point in the history
set_birthdate
set_personal_chat
  • Loading branch information
SpEcHiDe committed Apr 3, 2024
1 parent e1439a1 commit a0726e6
Show file tree
Hide file tree
Showing 7 changed files with 139 additions and 4 deletions.
2 changes: 2 additions & 0 deletions compiler/docs/compiler.py
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,8 @@ def get_title_list(s: str) -> list:
get_common_chats
get_default_emoji_statuses
set_emoji_status
set_birthdate
set_personal_chat
""",
invite_links="""
Invite Links
Expand Down
6 changes: 5 additions & 1 deletion pyrogram/methods/users/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@
from .set_username import SetUsername
from .unblock_user import UnblockUser
from .update_profile import UpdateProfile
from .set_birthdate import SetBirthdate
from .set_personal_chat import SetPersonalChat


class Users(
Expand All @@ -44,6 +46,8 @@ class Users(
UnblockUser,
UpdateProfile,
GetDefaultEmojiStatuses,
SetEmojiStatus
SetEmojiStatus,
SetBirthdate,
SetPersonalChat
):
pass
62 changes: 62 additions & 0 deletions pyrogram/methods/users/set_birthdate.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Pyrogram - Telegram MTProto API Client Library for Python
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
#
# This file is part of Pyrogram.
#
# Pyrogram is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Pyrogram is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.

from typing import Optional

import pyrogram
from pyrogram import raw, types


class SetBirthdate:
async def set_birthdate(
self: "pyrogram.Client",
birthdate: Optional["types.Birthdate"] = None
) -> bool:
"""Changes the birthdate of the current user
.. include:: /_includes/usable-by/users.rst
Parameters:
birthdate (:obj:`~pyrogram.types.Birthdate`, *optional*):
The new value of the current user's birthdate; pass None to remove the birthdate
Returns:
``bool``: True on success.
Example:
.. code-block:: python
# Update your birthdate
await app.set_birthdate(birthdate=types.Birthdate(
day=15,
month=12,
year=2017
))
# Remove your birthdate
await app.set_birthdate()
"""

return bool(
await self.invoke(
raw.functions.account.UpdateBirthday(
birthday=birthdate.write() if birthdate else None
)
)
)
59 changes: 59 additions & 0 deletions pyrogram/methods/users/set_personal_chat.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Pyrogram - Telegram MTProto API Client Library for Python
# Copyright (C) 2017-present Dan <https://github.com/delivrance>
#
# This file is part of Pyrogram.
#
# Pyrogram is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Pyrogram is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.

from typing import Optional, Union

import pyrogram
from pyrogram import raw


class SetPersonalChat:
async def set_personal_chat(
self: "pyrogram.Client",
chat_id: Optional[Union[int, str]] = None,
) -> bool:
"""Changes the personal chat of the current user
.. include:: /_includes/usable-by/users.rst
Parameters:
chat_id (``int`` | ``str`, *optional*):
Identifier of the new personal chat; pass None to remove the chat. Use :meth:`~pyrogram.Client.get_suitable_personal_chats` to get suitable chats
Returns:
``bool``: True on success.
Example:
.. code-block:: python
# Update your personal chat
await app.set_personal_chat(chat_id="@Pyrogram")
# Hide your personal chat
await app.set_personal_chat()
"""

return bool(
await self.invoke(
raw.functions.account.UpdatePersonalChannel(
channel=await self.resolve_peer(
chat_id
) if chat_id else raw.types.InputChannelEmpty()
)
)
)
2 changes: 1 addition & 1 deletion pyrogram/methods/users/unblock_user.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ async def unblock_user(
.. include:: /_includes/usable-by/users.rst
Parameters:
user_id (``int`` | ``str``)::
user_id (``int`` | ``str``):
Unique identifier (int) or username (str) of the target user.
For you yourself you can simply use "me" or "self".
For a contact that exists in your Telegram address book you can use his phone number (str).
Expand Down
5 changes: 3 additions & 2 deletions pyrogram/types/messages_and_media/message.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,8 @@ class Message(Object, Update):
For replies, the original message. Note that the Message object in this field will not contain
further reply_to_message fields even if it itself is a reply.
external_reply
external_reply (:obj:`~pyrogram.types.ExternalReplyInfo`, *optional*):
Information about the message that is being replied to, which may come from another chat or forum topic
quote
Expand Down Expand Up @@ -323,7 +324,7 @@ class Message(Object, Update):
video_chat_ended (:obj:`~pyrogram.types.VideoChatEnded`, *optional*):
Service message: the voice chat has ended.
video_chat_participants_invited (:obj:`~pyrogram.types.VoiceChatParticipantsInvited`, *optional*):
video_chat_participants_invited (:obj:`~pyrogram.types.VideoChatParticipantsInvited`, *optional*):
Service message: new members were invited to the voice chat.
web_app_data (:obj:`~pyrogram.types.WebAppData`, *optional*):
Expand Down
7 changes: 7 additions & 0 deletions pyrogram/types/user_and_chats/birthdate.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,3 +58,10 @@ def _parse(
month=birthday.month,
year=getattr(birthday, "year", None)
)

def write(self):
return raw.types.Birthday(
day=self.day,
month=self.month,
year=self.year
)

0 comments on commit a0726e6

Please sign in to comment.