diff --git a/docs/source/pyrogram/Client.rst b/docs/source/pyrogram/Client.rst index fbab4ecc..3e65b0f6 100644 --- a/docs/source/pyrogram/Client.rst +++ b/docs/source/pyrogram/Client.rst @@ -7,6 +7,8 @@ Client :inherited-members: :members: + .. _available-methods: + **Available methods** .. autosummary:: diff --git a/pyrogram/client/methods/messages/media/send_media_group.py b/pyrogram/client/methods/messages/media/send_media_group.py index 6d004d9f..e7d73509 100644 --- a/pyrogram/client/methods/messages/media/send_media_group.py +++ b/pyrogram/client/methods/messages/media/send_media_group.py @@ -1,170 +1 @@ -# Pyrogram - Telegram MTProto API Client Library for Python -# Copyright (C) 2017-2018 Dan Tès -# -# 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 binascii -import mimetypes -import os -import struct - -from pyrogram.api import functions, types -from pyrogram.api.errors import FileIdInvalid -from pyrogram.client import types as pyrogram_types -from ....ext import BaseClient, utils - - -class SendMediaGroup(BaseClient): - # TODO: Add progress parameter - # TODO: Return new Message object - # TODO: Figure out how to send albums using URLs - def send_media_group(self, - chat_id: int or str, - media: list, - disable_notification: bool = None, - reply_to_message_id: int = None): - """Use this method to send a group of photos or videos as an album. - On success, an Update containing the sent Messages is returned. - - Args: - chat_id (``int`` | ``str``): - Unique identifier (int) or username (str) of the target chat. - For your personal cloud (Saved Messages) you can simply use "me" or "self". - For a contact that exists in your Telegram address book you can use his phone number (str). - For a private channel/supergroup you can use its *t.me/joinchat/* link. - - media (``list``): - A list containing either :obj:`InputMediaPhoto ` or - :obj:`InputMediaVideo ` objects - describing photos and videos to be sent, must include 2–10 items. - - disable_notification (``bool``, *optional*): - Sends the message silently. - Users will receive a notification with no sound. - - reply_to_message_id (``int``, *optional*): - If the message is a reply, ID of the original message. - """ - multi_media = [] - - for i in media: - style = self.html if i.parse_mode.lower() == "html" else self.markdown - - if isinstance(i, pyrogram_types.InputMediaPhoto): - if os.path.exists(i.media): - media = self.send( - functions.messages.UploadMedia( - peer=self.resolve_peer(chat_id), - media=types.InputMediaUploadedPhoto( - file=self.save_file(i.media) - ) - ) - ) - - media = types.InputMediaPhoto( - id=types.InputPhoto( - id=media.photo.id, - access_hash=media.photo.access_hash - ) - ) - else: - try: - decoded = utils.decode(i.media) - fmt = " 24 else " 24 else " # # 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 binascii import mimetypes import os import struct from pyrogram.api import functions, types from pyrogram.api.errors import FileIdInvalid from pyrogram.client import types as pyrogram_types from ....ext import BaseClient, utils class SendMediaGroup(BaseClient): # TODO: Add progress parameter # TODO: Return new Message object # TODO: Figure out how to send albums using URLs def send_media_group(self, chat_id: int or str, media: list, disable_notification: bool = None, reply_to_message_id: int = None): """Use this method to send a group of photos or videos as an album. On success, an Update containing the sent Messages is returned. Args: chat_id (``int`` | ``str``): Unique identifier (int) or username (str) of the target chat. For your personal cloud (Saved Messages) you can simply use "me" or "self". For a contact that exists in your Telegram address book you can use his phone number (str). For a private channel/supergroup you can use its *t.me/joinchat/* link. media (``list``): A list containing either :obj:`InputMediaPhoto ` or :obj:`InputMediaVideo ` objects describing photos and videos to be sent, must include 2–10 items. disable_notification (``bool``, *optional*): Sends the message silently. Users will receive a notification with no sound. reply_to_message_id (``int``, *optional*): If the message is a reply, ID of the original message. """ multi_media = [] for i in media: style = self.html if i.parse_mode.lower() == "html" else self.markdown if isinstance(i, pyrogram_types.InputMediaPhoto): if os.path.exists(i.media): media = self.send( functions.messages.UploadMedia( peer=self.resolve_peer(chat_id), media=types.InputMediaUploadedPhoto( file=self.save_file(i.media) ) ) ) media = types.InputMediaPhoto( id=types.InputPhoto( id=media.photo.id, access_hash=media.photo.access_hash ) ) else: try: decoded = utils.decode(i.media) fmt = " 24 else " 24 else "