diff --git a/compiler/docs/compiler.py b/compiler/docs/compiler.py index 8afd99f8..d0c1f61c 100644 --- a/compiler/docs/compiler.py +++ b/compiler/docs/compiler.py @@ -225,6 +225,7 @@ def pyrogram_api(): get_profile_photos_count iter_profile_photos set_profile_photo + set_profile_video delete_profile_photos update_username update_profile diff --git a/pyrogram/client/methods/users/__init__.py b/pyrogram/client/methods/users/__init__.py index 65171af6..e80a1c76 100644 --- a/pyrogram/client/methods/users/__init__.py +++ b/pyrogram/client/methods/users/__init__.py @@ -25,6 +25,7 @@ from .get_profile_photos_count import GetProfilePhotosCount from .get_users import GetUsers from .iter_profile_photos import IterProfilePhotos from .set_profile_photo import SetProfilePhoto +from .set_profile_video import SetProfileVideo from .unblock_user import UnblockUser from .update_profile import UpdateProfile from .update_username import UpdateUsername @@ -42,6 +43,7 @@ class Users( GetProfilePhotosCount, IterProfilePhotos, UnblockUser, - UpdateProfile + UpdateProfile, + SetProfileVideo ): pass diff --git a/pyrogram/client/methods/users/set_profile_video.py b/pyrogram/client/methods/users/set_profile_video.py new file mode 100644 index 00000000..82213a65 --- /dev/null +++ b/pyrogram/client/methods/users/set_profile_video.py @@ -0,0 +1,57 @@ +# Pyrogram - Telegram MTProto API Client Library for Python +# Copyright (C) 2017-2020 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 . + +from typing import Union, BinaryIO + +from pyrogram.api import functions +from ...ext import BaseClient + + +class SetProfileVideo(BaseClient): + def set_profile_video( + self, + video: Union[str, BinaryIO] + ) -> bool: + """Set a new profile video (H.264/MPEG-4 AVC video, max 5 seconds). + + If you want to set a profile photo instead, use :meth:`~Client.set_profile_photo` + + This method only works for Users. + + Parameters: + video (``str``): + Profile video to set. + Pass a file path as string to upload a new video that exists on your local machine or + pass a binary file-like object with its attribute ".name" set for in-memory uploads. + + Returns: + ``bool``: True on success. + + Example: + .. code-block:: python + + app.set_profile_video("new_video.mp4") + """ + + return bool( + self.send( + functions.photos.UploadProfilePhoto( + video=self.save_file(video) + ) + ) + )