Skip to content

Commit b631a71

Browse files
committed
Fix BytesIO support for pyrogram 2.x by @doggyhaha
1 parent dd4961c commit b631a71

2 files changed

Lines changed: 12 additions & 10 deletions

File tree

pyrogram/methods/messages/edit_inline_media.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import os
2020
import re
2121
import asyncio
22+
import io
2223

2324
import pyrogram
2425
from pyrogram import raw
@@ -77,7 +78,7 @@ async def edit_inline_media(
7778
parse_mode = media.parse_mode
7879

7980
if isinstance(media, types.InputMediaPhoto):
80-
if os.path.isfile(media.media):
81+
if isinstance(media.media, io.BytesIO) or os.path.isfile(media.media):
8182
media = raw.types.InputMediaUploadedPhoto(
8283
file=await self.save_file(media.media)
8384
)
@@ -88,7 +89,7 @@ async def edit_inline_media(
8889
else:
8990
media = utils.get_input_media_from_file_id(media.media, FileType.PHOTO)
9091
elif isinstance(media, types.InputMediaVideo):
91-
if os.path.isfile(media.media):
92+
if isinstance(media.media, io.BytesIO) or os.path.isfile(media.media):
9293
media = raw.types.InputMediaUploadedDocument(
9394
mime_type=self.guess_mime_type(media.media) or "video/mp4",
9495
thumb=await self.save_file(media.thumb),
@@ -112,7 +113,7 @@ async def edit_inline_media(
112113
else:
113114
media = utils.get_input_media_from_file_id(media.media, FileType.VIDEO)
114115
elif isinstance(media, types.InputMediaAudio):
115-
if os.path.isfile(media.media):
116+
if isinstance(media.media, io.BytesIO) or os.path.isfile(media.media):
116117
media = raw.types.InputMediaUploadedDocument(
117118
mime_type=self.guess_mime_type(media.media) or "audio/mpeg",
118119
thumb=await self.save_file(media.thumb),
@@ -135,7 +136,7 @@ async def edit_inline_media(
135136
else:
136137
media = utils.get_input_media_from_file_id(media.media, FileType.AUDIO)
137138
elif isinstance(media, types.InputMediaAnimation):
138-
if os.path.isfile(media.media):
139+
if isinstance(media.media, io.BytesIO) or os.path.isfile(media.media):
139140
media = raw.types.InputMediaUploadedDocument(
140141
mime_type=self.guess_mime_type(media.media) or "video/mp4",
141142
thumb=await self.save_file(media.thumb),
@@ -161,7 +162,7 @@ async def edit_inline_media(
161162
else:
162163
media = utils.get_input_media_from_file_id(media.media, FileType.ANIMATION)
163164
elif isinstance(media, types.InputMediaDocument):
164-
if os.path.isfile(media.media):
165+
if isinstance(media.media, io.BytesIO) or os.path.isfile(media.media):
165166
media = raw.types.InputMediaUploadedDocument(
166167
mime_type=self.guess_mime_type(media.media) or "application/zip",
167168
thumb=await self.save_file(media.thumb),

pyrogram/methods/messages/edit_message_media.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import os
2020
import re
21+
import io
2122
from typing import Union
2223

2324
import pyrogram
@@ -89,7 +90,7 @@ async def edit_message_media(
8990
message, entities = (await self.parser.parse(caption, parse_mode)).values()
9091

9192
if isinstance(media, types.InputMediaPhoto):
92-
if os.path.isfile(media.media):
93+
if isinstance(media.media, io.BytesIO) or os.path.isfile(media.media):
9394
media = await self.invoke(
9495
raw.functions.messages.UploadMedia(
9596
peer=await self.resolve_peer(chat_id),
@@ -113,7 +114,7 @@ async def edit_message_media(
113114
else:
114115
media = utils.get_input_media_from_file_id(media.media, FileType.PHOTO)
115116
elif isinstance(media, types.InputMediaVideo):
116-
if os.path.isfile(media.media):
117+
if isinstance(media.media, io.BytesIO) or os.path.isfile(media.media):
117118
media = await self.invoke(
118119
raw.functions.messages.UploadMedia(
119120
peer=await self.resolve_peer(chat_id),
@@ -150,7 +151,7 @@ async def edit_message_media(
150151
else:
151152
media = utils.get_input_media_from_file_id(media.media, FileType.VIDEO)
152153
elif isinstance(media, types.InputMediaAudio):
153-
if os.path.isfile(media.media):
154+
if isinstance(media.media, io.BytesIO) or os.path.isfile(media.media):
154155
media = await self.invoke(
155156
raw.functions.messages.UploadMedia(
156157
peer=await self.resolve_peer(chat_id),
@@ -186,7 +187,7 @@ async def edit_message_media(
186187
else:
187188
media = utils.get_input_media_from_file_id(media.media, FileType.AUDIO)
188189
elif isinstance(media, types.InputMediaAnimation):
189-
if os.path.isfile(media.media):
190+
if isinstance(media.media, io.BytesIO) or os.path.isfile(media.media):
190191
media = await self.invoke(
191192
raw.functions.messages.UploadMedia(
192193
peer=await self.resolve_peer(chat_id),
@@ -224,7 +225,7 @@ async def edit_message_media(
224225
else:
225226
media = utils.get_input_media_from_file_id(media.media, FileType.ANIMATION)
226227
elif isinstance(media, types.InputMediaDocument):
227-
if os.path.isfile(media.media):
228+
if isinstance(media.media, io.BytesIO) or os.path.isfile(media.media):
228229
media = await self.invoke(
229230
raw.functions.messages.UploadMedia(
230231
peer=await self.resolve_peer(chat_id),

0 commit comments

Comments
 (0)