1717# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
1818
1919from datetime import datetime
20- from typing import Union
20+ from typing import Optional , Union
2121
2222import pyrogram
23- from pyrogram import raw
24- from pyrogram import types
25- from pyrogram import utils
26- from pyrogram import media_utils
23+ from pyrogram import raw , types , utils
2724
2825
2926class EditMessageMedia :
@@ -32,11 +29,10 @@ async def edit_message_media(
3229 chat_id : Union [int , str ],
3330 message_id : int ,
3431 media : "types.InputMedia" ,
35- show_caption_above_media : bool = None ,
36- schedule_date : datetime = None ,
37- business_connection_id : str = None ,
38- reply_markup : "types.InlineKeyboardMarkup" = None ,
39- file_name : str = None
32+ show_caption_above_media : Optional [bool ] = None ,
33+ schedule_date : Optional [datetime ] = None ,
34+ business_connection_id : Optional [str ] = None ,
35+ reply_markup : Optional ["types.InlineKeyboardMarkup" ] = None ,
4036 ) -> "types.Message" :
4137 """Edit animation, audio, document, photo or video messages, or to add media to text messages.
4238
@@ -104,18 +100,23 @@ async def edit_message_media(
104100 message , entities = None , None
105101
106102 if caption is not None :
107- message , entities = (await utils .parse_text_entities (self , caption , parse_mode , caption_entities )).values ()
108-
109- if isinstance (media , types .InputMediaPhoto ):
110- raw_media = await media_utils .resolve_to_raw_photo (self , media , chat_id )
111- elif isinstance (media , types .InputMediaVideo ):
112- raw_media = await media_utils .resolve_to_raw_video (self , media , file_name , chat_id )
113- elif isinstance (media , types .InputMediaAudio ):
114- raw_media = await media_utils .resolve_to_raw_audio (self , media , file_name , chat_id )
115- elif isinstance (media , types .InputMediaAnimation ):
116- raw_media = await media_utils .resolve_to_raw_animation (self , media , file_name , chat_id )
117- elif isinstance (media , types .InputMediaDocument ):
118- raw_media = await media_utils .resolve_to_raw_document (self , media , file_name , chat_id )
103+ message , entities = (
104+ await utils .parse_text_entities (self , caption , parse_mode , caption_entities )
105+ ).values ()
106+
107+ raw_media = None
108+
109+ if isinstance (
110+ media ,
111+ (
112+ types .InputMediaPhoto ,
113+ types .InputMediaVideo ,
114+ types .InputMediaAudio ,
115+ types .InputMediaAnimation ,
116+ types .InputMediaDocument ,
117+ ),
118+ ):
119+ raw_media = await utils .resolve_raw_media (self , media )
119120 else :
120121 raise ValueError ("Unsupported media type" )
121122
@@ -128,15 +129,13 @@ async def edit_message_media(
128129 schedule_date = utils .datetime_to_timestamp (schedule_date ),
129130 reply_markup = await reply_markup .write (self ) if reply_markup else None ,
130131 message = message ,
131- entities = entities
132+ entities = entities ,
132133 ),
133- business_connection_id = business_connection_id
134+ business_connection_id = business_connection_id ,
134135 )
135136
136137 for i in r .updates :
137138 if isinstance (i , (raw .types .UpdateEditMessage , raw .types .UpdateEditChannelMessage )):
138139 return await types .Message ._parse (
139- self , i .message ,
140- {i .id : i for i in r .users },
141- {i .id : i for i in r .chats }
140+ self , i .message , {i .id : i for i in r .users }, {i .id : i for i in r .chats }
142141 )
0 commit comments