From 2e931f73bd6ffec74980102f3f173617d2e0d1ce Mon Sep 17 00:00:00 2001 From: KurimuzonAkuma Date: Mon, 1 Apr 2024 23:59:55 +0300 Subject: [PATCH] Add new update_birthday method --- compiler/docs/compiler.py | 1 + pyrogram/methods/users/__init__.py | 2 + pyrogram/methods/users/update_birthday.py | 67 +++++++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 pyrogram/methods/users/update_birthday.py diff --git a/compiler/docs/compiler.py b/compiler/docs/compiler.py index 81eed78c..2e8dcd2b 100644 --- a/compiler/docs/compiler.py +++ b/compiler/docs/compiler.py @@ -279,6 +279,7 @@ def pyrogram_api(): set_emoji_status update_status check_username + update_birthday """, invite_links=""" Invite Links diff --git a/pyrogram/methods/users/__init__.py b/pyrogram/methods/users/__init__.py index 5f1ddf7e..0f81ce9d 100644 --- a/pyrogram/methods/users/__init__.py +++ b/pyrogram/methods/users/__init__.py @@ -29,6 +29,7 @@ from .set_emoji_status import SetEmojiStatus from .set_profile_photo import SetProfilePhoto from .set_username import SetUsername from .unblock_user import UnblockUser +from .update_birthday import UpdateBirthday from .update_profile import UpdateProfile from .update_status import UpdateStatus @@ -45,6 +46,7 @@ class Users( SetUsername, GetChatPhotosCount, UnblockUser, + UpdateBirthday, UpdateProfile, UpdateStatus, GetDefaultEmojiStatuses, diff --git a/pyrogram/methods/users/update_birthday.py b/pyrogram/methods/users/update_birthday.py new file mode 100644 index 00000000..133bbb84 --- /dev/null +++ b/pyrogram/methods/users/update_birthday.py @@ -0,0 +1,67 @@ +# Pyrogram - Telegram MTProto API Client Library for Python +# Copyright (C) 2017-present Dan +# +# 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 . + +import pyrogram +from pyrogram import raw + + +class UpdateBirthday: + async def update_birthday( + self: "pyrogram.Client", + day: int = None, + month: int = None, + year: int = None + ) -> bool: + """Update birthday in your profile. + + .. include:: /_includes/usable-by/users.rst + + Parameters: + day (``int``, *optional*): + Birthday day. + + month (``int``, *optional*): + Birthday month. + + year (``int``, *optional*): + Birthday year. + + Returns: + ``bool``: True on success. + + Example: + .. code-block:: python + + # Update your birthday + await app.update_birthday(day=1, month=1, year=2000) + + # Remove birthday from profile + await app.update_birthday() + """ + birthday = None + + if all((day, month)): + birthday = raw.types.Birthday(day=day, month=month, year=year) + + return bool( + await self.invoke( + raw.functions.account.UpdateBirthday( + birthday=birthday + ) + ) + )