diff --git a/pyrogram/methods/messages/edit_inline_media.py b/pyrogram/methods/messages/edit_inline_media.py
index 77fa673a..7ab424a4 100644
--- a/pyrogram/methods/messages/edit_inline_media.py
+++ b/pyrogram/methods/messages/edit_inline_media.py
@@ -16,11 +16,10 @@
# You should have received a copy of the GNU Lesser General Public License
# along with Pyrogram. If not, see .
-import os
-import re
-import io
import asyncio
import io
+import os
+import re
import pyrogram
from pyrogram import raw
@@ -80,8 +79,6 @@ class EditInlineMedia:
caption = media.caption
parse_mode = media.parse_mode
- is_photo = isinstance(media, types.InputMediaPhoto)
-
is_bytes_io = isinstance(media.media, io.BytesIO)
is_uploaded_file = is_bytes_io or os.path.isfile(media.media)
@@ -99,15 +96,16 @@ class EditInlineMedia:
else:
filename_attribute = []
-
- if is_photo:
+ if isinstance(media, types.InputMediaPhoto):
if is_uploaded_file:
media = raw.types.InputMediaUploadedPhoto(
- file=await self.save_file(media.media)
+ file=await self.save_file(media.media),
+ spoiler=media.has_spoiler
)
elif is_external_url:
media = raw.types.InputMediaPhotoExternal(
- url=media.media
+ url=media.media,
+ spoiler=media.has_spoiler
)
else:
media = utils.get_input_media_from_file_id(media.media, FileType.PHOTO)
@@ -117,18 +115,20 @@ class EditInlineMedia:
mime_type=(None if is_bytes_io else self.guess_mime_type(media.media)) or "video/mp4",
thumb=await self.save_file(media.thumb),
file=await self.save_file(media.media),
+ spoiler=media.has_spoiler,
attributes=[
- raw.types.DocumentAttributeVideo(
- supports_streaming=media.supports_streaming or None,
- duration=media.duration,
- w=media.width,
- h=media.height
- )
- ] + filename_attribute
+ raw.types.DocumentAttributeVideo(
+ supports_streaming=media.supports_streaming or None,
+ duration=media.duration,
+ w=media.width,
+ h=media.height
+ )
+ ] + filename_attribute
)
elif is_external_url:
media = raw.types.InputMediaDocumentExternal(
- url=media.media
+ url=media.media,
+ spoiler=media.has_spoiler
)
else:
media = utils.get_input_media_from_file_id(media.media, FileType.VIDEO)
@@ -139,12 +139,12 @@ class EditInlineMedia:
thumb=await self.save_file(media.thumb),
file=await self.save_file(media.media),
attributes=[
- raw.types.DocumentAttributeAudio(
- duration=media.duration,
- performer=media.performer,
- title=media.title
- )
- ] + filename_attribute
+ raw.types.DocumentAttributeAudio(
+ duration=media.duration,
+ performer=media.performer,
+ title=media.title
+ )
+ ] + filename_attribute
)
elif is_external_url:
media = raw.types.InputMediaDocumentExternal(
@@ -158,20 +158,22 @@ class EditInlineMedia:
mime_type=(None if is_bytes_io else self.guess_mime_type(media.media)) or "video/mp4",
thumb=await self.save_file(media.thumb),
file=await self.save_file(media.media),
+ spoiler=media.has_spoiler,
attributes=[
- raw.types.DocumentAttributeVideo(
- supports_streaming=True,
- duration=media.duration,
- w=media.width,
- h=media.height
- ),
- raw.types.DocumentAttributeAnimated()
- ] + filename_attribute,
+ raw.types.DocumentAttributeVideo(
+ supports_streaming=True,
+ duration=media.duration,
+ w=media.width,
+ h=media.height
+ ),
+ raw.types.DocumentAttributeAnimated()
+ ] + filename_attribute,
nosound_video=True
)
elif is_external_url:
media = raw.types.InputMediaDocumentExternal(
- url=media.media
+ url=media.media,
+ spoiler=media.has_spoiler
)
else:
media = utils.get_input_media_from_file_id(media.media, FileType.ANIMATION)
@@ -196,7 +198,6 @@ class EditInlineMedia:
session = await get_session(self, dc_id)
-
if is_uploaded_file:
uploaded_media = await self.invoke(
raw.functions.messages.UploadMedia(
@@ -210,13 +211,15 @@ class EditInlineMedia:
id=uploaded_media.photo.id,
access_hash=uploaded_media.photo.access_hash,
file_reference=uploaded_media.photo.file_reference
- )
- ) if is_photo else raw.types.InputMediaDocument(
+ ),
+ spoiler=getattr(media, "has_spoiler", None)
+ ) if isinstance(media, types.InputMediaPhoto) else raw.types.InputMediaDocument(
id=raw.types.InputDocument(
id=uploaded_media.document.id,
access_hash=uploaded_media.document.access_hash,
- file_reference=uploaded_media.document.file_reference
- )
+ file_reference=uploaded_media.document.file_reference
+ ),
+ spoiler=getattr(media, "has_spoiler", None)
)
else:
actual_media = media
diff --git a/pyrogram/methods/messages/edit_message_media.py b/pyrogram/methods/messages/edit_message_media.py
index 16efb5b8..5a34f138 100644
--- a/pyrogram/methods/messages/edit_message_media.py
+++ b/pyrogram/methods/messages/edit_message_media.py
@@ -16,9 +16,9 @@
# You should have received a copy of the GNU Lesser General Public License
# along with Pyrogram. If not, see .
+import io
import os
import re
-import io
from typing import Union
import pyrogram
@@ -93,36 +93,40 @@ class EditMessageMedia:
if isinstance(media, types.InputMediaPhoto):
if isinstance(media.media, io.BytesIO) or os.path.isfile(media.media):
- media = await self.invoke(
+ uploaded_media = await self.invoke(
raw.functions.messages.UploadMedia(
peer=await self.resolve_peer(chat_id),
media=raw.types.InputMediaUploadedPhoto(
- file=await self.save_file(media.media)
+ file=await self.save_file(media.media),
+ spoiler=media.has_spoiler
)
)
)
media = raw.types.InputMediaPhoto(
id=raw.types.InputPhoto(
- id=media.photo.id,
- access_hash=media.photo.access_hash,
- file_reference=media.photo.file_reference
- )
+ id=uploaded_media.photo.id,
+ access_hash=uploaded_media.photo.access_hash,
+ file_reference=uploaded_media.photo.file_reference
+ ),
+ spoiler=media.has_spoiler
)
elif re.match("^https?://", media.media):
media = raw.types.InputMediaPhotoExternal(
- url=media.media
+ url=media.media,
+ spoiler=media.has_spoiler
)
else:
media = utils.get_input_media_from_file_id(media.media, FileType.PHOTO)
elif isinstance(media, types.InputMediaVideo):
if isinstance(media.media, io.BytesIO) or os.path.isfile(media.media):
- media = await self.invoke(
+ uploaded_media = await self.invoke(
raw.functions.messages.UploadMedia(
peer=await self.resolve_peer(chat_id),
media=raw.types.InputMediaUploadedDocument(
mime_type=self.guess_mime_type(media.media) or "video/mp4",
thumb=await self.save_file(media.thumb),
+ spoiler=media.has_spoiler,
file=await self.save_file(media.media),
attributes=[
raw.types.DocumentAttributeVideo(
@@ -141,14 +145,16 @@ class EditMessageMedia:
media = raw.types.InputMediaDocument(
id=raw.types.InputDocument(
- id=media.document.id,
- access_hash=media.document.access_hash,
- file_reference=media.document.file_reference
- )
+ id=uploaded_media.document.id,
+ access_hash=uploaded_media.document.access_hash,
+ file_reference=uploaded_media.document.file_reference
+ ),
+ spoiler=media.has_spoiler
)
elif re.match("^https?://", media.media):
media = raw.types.InputMediaDocumentExternal(
- url=media.media
+ url=media.media,
+ spoiler=media.has_spoiler
)
else:
media = utils.get_input_media_from_file_id(media.media, FileType.VIDEO)
@@ -190,12 +196,13 @@ class EditMessageMedia:
media = utils.get_input_media_from_file_id(media.media, FileType.AUDIO)
elif isinstance(media, types.InputMediaAnimation):
if isinstance(media.media, io.BytesIO) or os.path.isfile(media.media):
- media = await self.invoke(
+ uploaded_media = await self.invoke(
raw.functions.messages.UploadMedia(
peer=await self.resolve_peer(chat_id),
media=raw.types.InputMediaUploadedDocument(
mime_type=self.guess_mime_type(media.media) or "video/mp4",
thumb=await self.save_file(media.thumb),
+ spoiler=media.has_spoiler,
file=await self.save_file(media.media),
attributes=[
raw.types.DocumentAttributeVideo(
@@ -215,14 +222,16 @@ class EditMessageMedia:
media = raw.types.InputMediaDocument(
id=raw.types.InputDocument(
- id=media.document.id,
- access_hash=media.document.access_hash,
- file_reference=media.document.file_reference
- )
+ id=uploaded_media.document.id,
+ access_hash=uploaded_media.document.access_hash,
+ file_reference=uploaded_media.document.file_reference
+ ),
+ spoiler=media.has_spoiler
)
elif re.match("^https?://", media.media):
media = raw.types.InputMediaDocumentExternal(
- url=media.media
+ url=media.media,
+ spoiler=media.has_spoiler
)
else:
media = utils.get_input_media_from_file_id(media.media, FileType.ANIMATION)
diff --git a/pyrogram/methods/messages/send_media_group.py b/pyrogram/methods/messages/send_media_group.py
index 0dfbbaa2..a8b905de 100644
--- a/pyrogram/methods/messages/send_media_group.py
+++ b/pyrogram/methods/messages/send_media_group.py
@@ -100,7 +100,8 @@ class SendMediaGroup:
raw.functions.messages.UploadMedia(
peer=await self.resolve_peer(chat_id),
media=raw.types.InputMediaUploadedPhoto(
- file=await self.save_file(i.media)
+ file=await self.save_file(i.media),
+ spoiler=i.has_spoiler
)
)
)
@@ -110,14 +111,16 @@ class SendMediaGroup:
id=media.photo.id,
access_hash=media.photo.access_hash,
file_reference=media.photo.file_reference
- )
+ ),
+ spoiler=i.has_spoiler
)
elif re.match("^https?://", i.media):
media = await self.invoke(
raw.functions.messages.UploadMedia(
peer=await self.resolve_peer(chat_id),
media=raw.types.InputMediaPhotoExternal(
- url=i.media
+ url=i.media,
+ spoiler=i.has_spoiler
)
)
)
@@ -127,7 +130,8 @@ class SendMediaGroup:
id=media.photo.id,
access_hash=media.photo.access_hash,
file_reference=media.photo.file_reference
- )
+ ),
+ spoiler=i.has_spoiler
)
else:
media = utils.get_input_media_from_file_id(i.media, FileType.PHOTO)
@@ -136,7 +140,8 @@ class SendMediaGroup:
raw.functions.messages.UploadMedia(
peer=await self.resolve_peer(chat_id),
media=raw.types.InputMediaUploadedPhoto(
- file=await self.save_file(i.media)
+ file=await self.save_file(i.media),
+ spoiler=i.has_spoiler
)
)
)
@@ -146,7 +151,8 @@ class SendMediaGroup:
id=media.photo.id,
access_hash=media.photo.access_hash,
file_reference=media.photo.file_reference
- )
+ ),
+ spoiler=i.has_spoiler
)
elif isinstance(i, types.InputMediaVideo):
if isinstance(i.media, str):
@@ -157,6 +163,7 @@ class SendMediaGroup:
media=raw.types.InputMediaUploadedDocument(
file=await self.save_file(i.media),
thumb=await self.save_file(i.thumb),
+ spoiler=i.has_spoiler,
mime_type=self.guess_mime_type(i.media) or "video/mp4",
attributes=[
raw.types.DocumentAttributeVideo(
@@ -176,14 +183,16 @@ class SendMediaGroup:
id=media.document.id,
access_hash=media.document.access_hash,
file_reference=media.document.file_reference
- )
+ ),
+ spoiler=i.has_spoiler
)
elif re.match("^https?://", i.media):
media = await self.invoke(
raw.functions.messages.UploadMedia(
peer=await self.resolve_peer(chat_id),
media=raw.types.InputMediaDocumentExternal(
- url=i.media
+ url=i.media,
+ spoiler=i.has_spoiler
)
)
)
@@ -193,7 +202,8 @@ class SendMediaGroup:
id=media.document.id,
access_hash=media.document.access_hash,
file_reference=media.document.file_reference
- )
+ ),
+ spoiler=i.has_spoiler
)
else:
media = utils.get_input_media_from_file_id(i.media, FileType.VIDEO)
@@ -204,6 +214,7 @@ class SendMediaGroup:
media=raw.types.InputMediaUploadedDocument(
file=await self.save_file(i.media),
thumb=await self.save_file(i.thumb),
+ spoiler=i.has_spoiler,
mime_type=self.guess_mime_type(getattr(i.media, "name", "video.mp4")) or "video/mp4",
attributes=[
raw.types.DocumentAttributeVideo(
@@ -223,7 +234,8 @@ class SendMediaGroup:
id=media.document.id,
access_hash=media.document.access_hash,
file_reference=media.document.file_reference
- )
+ ),
+ spoiler=i.has_spoiler
)
elif isinstance(i, types.InputMediaAudio):
if isinstance(i.media, str):