mirror of
https://github.com/pyrogram/pyrogram
synced 2025-08-28 21:07:59 +00:00
Update send_* methods (for file_ids)
This commit is contained in:
parent
376909f356
commit
715ae14751
@ -16,14 +16,11 @@
|
|||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import binascii
|
|
||||||
import os
|
import os
|
||||||
import struct
|
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
import pyrogram
|
import pyrogram
|
||||||
from pyrogram.api import functions, types
|
from pyrogram.api import functions, types
|
||||||
from pyrogram.errors import FileIdInvalid
|
|
||||||
from pyrogram.client.ext import BaseClient, utils
|
from pyrogram.client.ext import BaseClient, utils
|
||||||
from pyrogram.client.types import (
|
from pyrogram.client.types import (
|
||||||
InputMediaPhoto, InputMediaVideo, InputMediaAudio,
|
InputMediaPhoto, InputMediaVideo, InputMediaAudio,
|
||||||
@ -94,28 +91,7 @@ class EditMessageMedia(BaseClient):
|
|||||||
url=media.media
|
url=media.media
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
try:
|
media = utils.get_input_media_from_file_id(media.media, 2)
|
||||||
decoded = utils.decode(media.media)
|
|
||||||
fmt = "<iiqqqqi" if len(decoded) > 24 else "<iiqq"
|
|
||||||
unpacked = struct.unpack(fmt, decoded)
|
|
||||||
except (AssertionError, binascii.Error, struct.error):
|
|
||||||
raise FileIdInvalid from None
|
|
||||||
else:
|
|
||||||
if unpacked[0] != 2:
|
|
||||||
media_type = BaseClient.MEDIA_TYPE_ID.get(unpacked[0], None)
|
|
||||||
|
|
||||||
if media_type:
|
|
||||||
raise FileIdInvalid("The file_id belongs to a {}".format(media_type))
|
|
||||||
else:
|
|
||||||
raise FileIdInvalid("Unknown media type: {}".format(unpacked[0]))
|
|
||||||
|
|
||||||
media = types.InputMediaPhoto(
|
|
||||||
id=types.InputPhoto(
|
|
||||||
id=unpacked[2],
|
|
||||||
access_hash=unpacked[3],
|
|
||||||
file_reference=b""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
if isinstance(media, InputMediaVideo):
|
if isinstance(media, InputMediaVideo):
|
||||||
if os.path.exists(media.media):
|
if os.path.exists(media.media):
|
||||||
@ -153,28 +129,7 @@ class EditMessageMedia(BaseClient):
|
|||||||
url=media.media
|
url=media.media
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
try:
|
media = utils.get_input_media_from_file_id(media.media, 4)
|
||||||
decoded = utils.decode(media.media)
|
|
||||||
fmt = "<iiqqqqi" if len(decoded) > 24 else "<iiqq"
|
|
||||||
unpacked = struct.unpack(fmt, decoded)
|
|
||||||
except (AssertionError, binascii.Error, struct.error):
|
|
||||||
raise FileIdInvalid from None
|
|
||||||
else:
|
|
||||||
if unpacked[0] != 4:
|
|
||||||
media_type = BaseClient.MEDIA_TYPE_ID.get(unpacked[0], None)
|
|
||||||
|
|
||||||
if media_type:
|
|
||||||
raise FileIdInvalid("The file_id belongs to a {}".format(media_type))
|
|
||||||
else:
|
|
||||||
raise FileIdInvalid("Unknown media type: {}".format(unpacked[0]))
|
|
||||||
|
|
||||||
media = types.InputMediaDocument(
|
|
||||||
id=types.InputDocument(
|
|
||||||
id=unpacked[2],
|
|
||||||
access_hash=unpacked[3],
|
|
||||||
file_reference=b""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
if isinstance(media, InputMediaAudio):
|
if isinstance(media, InputMediaAudio):
|
||||||
if os.path.exists(media.media):
|
if os.path.exists(media.media):
|
||||||
@ -211,28 +166,7 @@ class EditMessageMedia(BaseClient):
|
|||||||
url=media.media
|
url=media.media
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
try:
|
media = utils.get_input_media_from_file_id(media.media, 9)
|
||||||
decoded = utils.decode(media.media)
|
|
||||||
fmt = "<iiqqqqi" if len(decoded) > 24 else "<iiqq"
|
|
||||||
unpacked = struct.unpack(fmt, decoded)
|
|
||||||
except (AssertionError, binascii.Error, struct.error):
|
|
||||||
raise FileIdInvalid from None
|
|
||||||
else:
|
|
||||||
if unpacked[0] != 9:
|
|
||||||
media_type = BaseClient.MEDIA_TYPE_ID.get(unpacked[0], None)
|
|
||||||
|
|
||||||
if media_type:
|
|
||||||
raise FileIdInvalid("The file_id belongs to a {}".format(media_type))
|
|
||||||
else:
|
|
||||||
raise FileIdInvalid("Unknown media type: {}".format(unpacked[0]))
|
|
||||||
|
|
||||||
media = types.InputMediaDocument(
|
|
||||||
id=types.InputDocument(
|
|
||||||
id=unpacked[2],
|
|
||||||
access_hash=unpacked[3],
|
|
||||||
file_reference=b""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
if isinstance(media, InputMediaAnimation):
|
if isinstance(media, InputMediaAnimation):
|
||||||
if os.path.exists(media.media):
|
if os.path.exists(media.media):
|
||||||
@ -271,28 +205,7 @@ class EditMessageMedia(BaseClient):
|
|||||||
url=media.media
|
url=media.media
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
try:
|
media = utils.get_input_media_from_file_id(media.media, 10)
|
||||||
decoded = utils.decode(media.media)
|
|
||||||
fmt = "<iiqqqqi" if len(decoded) > 24 else "<iiqq"
|
|
||||||
unpacked = struct.unpack(fmt, decoded)
|
|
||||||
except (AssertionError, binascii.Error, struct.error):
|
|
||||||
raise FileIdInvalid from None
|
|
||||||
else:
|
|
||||||
if unpacked[0] != 10:
|
|
||||||
media_type = BaseClient.MEDIA_TYPE_ID.get(unpacked[0], None)
|
|
||||||
|
|
||||||
if media_type:
|
|
||||||
raise FileIdInvalid("The file_id belongs to a {}".format(media_type))
|
|
||||||
else:
|
|
||||||
raise FileIdInvalid("Unknown media type: {}".format(unpacked[0]))
|
|
||||||
|
|
||||||
media = types.InputMediaDocument(
|
|
||||||
id=types.InputDocument(
|
|
||||||
id=unpacked[2],
|
|
||||||
access_hash=unpacked[3],
|
|
||||||
file_reference=b""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
if isinstance(media, InputMediaDocument):
|
if isinstance(media, InputMediaDocument):
|
||||||
if os.path.exists(media.media):
|
if os.path.exists(media.media):
|
||||||
@ -324,28 +237,7 @@ class EditMessageMedia(BaseClient):
|
|||||||
url=media.media
|
url=media.media
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
try:
|
media = utils.get_input_media_from_file_id(media.media, 5)
|
||||||
decoded = utils.decode(media.media)
|
|
||||||
fmt = "<iiqqqqi" if len(decoded) > 24 else "<iiqq"
|
|
||||||
unpacked = struct.unpack(fmt, decoded)
|
|
||||||
except (AssertionError, binascii.Error, struct.error):
|
|
||||||
raise FileIdInvalid from None
|
|
||||||
else:
|
|
||||||
if unpacked[0] not in (5, 10):
|
|
||||||
media_type = BaseClient.MEDIA_TYPE_ID.get(unpacked[0], None)
|
|
||||||
|
|
||||||
if media_type:
|
|
||||||
raise FileIdInvalid("The file_id belongs to a {}".format(media_type))
|
|
||||||
else:
|
|
||||||
raise FileIdInvalid("Unknown media type: {}".format(unpacked[0]))
|
|
||||||
|
|
||||||
media = types.InputMediaDocument(
|
|
||||||
id=types.InputDocument(
|
|
||||||
id=unpacked[2],
|
|
||||||
access_hash=unpacked[3],
|
|
||||||
file_reference=b""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
r = self.send(
|
r = self.send(
|
||||||
functions.messages.EditMessage(
|
functions.messages.EditMessage(
|
||||||
|
@ -16,15 +16,13 @@
|
|||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import binascii
|
|
||||||
import os
|
import os
|
||||||
import struct
|
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
import pyrogram
|
import pyrogram
|
||||||
from pyrogram.api import functions, types
|
from pyrogram.api import functions, types
|
||||||
from pyrogram.errors import FileIdInvalid, FilePartMissing
|
|
||||||
from pyrogram.client.ext import BaseClient, utils
|
from pyrogram.client.ext import BaseClient, utils
|
||||||
|
from pyrogram.errors import FilePartMissing
|
||||||
|
|
||||||
|
|
||||||
class SendAnimation(BaseClient):
|
class SendAnimation(BaseClient):
|
||||||
@ -153,28 +151,7 @@ class SendAnimation(BaseClient):
|
|||||||
url=animation
|
url=animation
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
try:
|
media = utils.get_input_media_from_file_id(animation, 10)
|
||||||
decoded = utils.decode(animation)
|
|
||||||
fmt = "<iiqqqqi" if len(decoded) > 24 else "<iiqq"
|
|
||||||
unpacked = struct.unpack(fmt, decoded)
|
|
||||||
except (AssertionError, binascii.Error, struct.error):
|
|
||||||
raise FileIdInvalid from None
|
|
||||||
else:
|
|
||||||
if unpacked[0] != 10:
|
|
||||||
media_type = BaseClient.MEDIA_TYPE_ID.get(unpacked[0], None)
|
|
||||||
|
|
||||||
if media_type:
|
|
||||||
raise FileIdInvalid("The file_id belongs to a {}".format(media_type))
|
|
||||||
else:
|
|
||||||
raise FileIdInvalid("Unknown media type: {}".format(unpacked[0]))
|
|
||||||
|
|
||||||
media = types.InputMediaDocument(
|
|
||||||
id=types.InputDocument(
|
|
||||||
id=unpacked[2],
|
|
||||||
access_hash=unpacked[3],
|
|
||||||
file_reference=b""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
|
@ -16,15 +16,13 @@
|
|||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import binascii
|
|
||||||
import os
|
import os
|
||||||
import struct
|
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
import pyrogram
|
import pyrogram
|
||||||
from pyrogram.api import functions, types
|
from pyrogram.api import functions, types
|
||||||
from pyrogram.errors import FileIdInvalid, FilePartMissing
|
|
||||||
from pyrogram.client.ext import BaseClient, utils
|
from pyrogram.client.ext import BaseClient, utils
|
||||||
|
from pyrogram.errors import FilePartMissing
|
||||||
|
|
||||||
|
|
||||||
class SendAudio(BaseClient):
|
class SendAudio(BaseClient):
|
||||||
@ -153,28 +151,7 @@ class SendAudio(BaseClient):
|
|||||||
url=audio
|
url=audio
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
try:
|
media = utils.get_input_media_from_file_id(audio, 9)
|
||||||
decoded = utils.decode(audio)
|
|
||||||
fmt = "<iiqqqqi" if len(decoded) > 24 else "<iiqq"
|
|
||||||
unpacked = struct.unpack(fmt, decoded)
|
|
||||||
except (AssertionError, binascii.Error, struct.error):
|
|
||||||
raise FileIdInvalid from None
|
|
||||||
else:
|
|
||||||
if unpacked[0] != 9:
|
|
||||||
media_type = BaseClient.MEDIA_TYPE_ID.get(unpacked[0], None)
|
|
||||||
|
|
||||||
if media_type:
|
|
||||||
raise FileIdInvalid("The file_id belongs to a {}".format(media_type))
|
|
||||||
else:
|
|
||||||
raise FileIdInvalid("Unknown media type: {}".format(unpacked[0]))
|
|
||||||
|
|
||||||
media = types.InputMediaDocument(
|
|
||||||
id=types.InputDocument(
|
|
||||||
id=unpacked[2],
|
|
||||||
access_hash=unpacked[3],
|
|
||||||
file_reference=b""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
|
@ -16,13 +16,10 @@
|
|||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import binascii
|
|
||||||
import struct
|
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
import pyrogram
|
import pyrogram
|
||||||
from pyrogram.api import functions, types
|
from pyrogram.api import functions, types
|
||||||
from pyrogram.errors import FileIdInvalid
|
|
||||||
from pyrogram.client.ext import BaseClient, utils
|
from pyrogram.client.ext import BaseClient, utils
|
||||||
|
|
||||||
|
|
||||||
@ -84,39 +81,10 @@ class SendCachedMedia(BaseClient):
|
|||||||
"""
|
"""
|
||||||
style = self.html if parse_mode.lower() == "html" else self.markdown
|
style = self.html if parse_mode.lower() == "html" else self.markdown
|
||||||
|
|
||||||
try:
|
|
||||||
decoded = utils.decode(file_id)
|
|
||||||
fmt = "<iiqqqqi" if len(decoded) > 24 else "<iiqq"
|
|
||||||
unpacked = struct.unpack(fmt, decoded)
|
|
||||||
except (AssertionError, binascii.Error, struct.error):
|
|
||||||
raise FileIdInvalid from None
|
|
||||||
else:
|
|
||||||
media_type = BaseClient.MEDIA_TYPE_ID.get(unpacked[0], None)
|
|
||||||
|
|
||||||
if not media_type:
|
|
||||||
raise FileIdInvalid("Unknown media type: {}".format(unpacked[0]))
|
|
||||||
|
|
||||||
if media_type == "photo":
|
|
||||||
media = types.InputMediaPhoto(
|
|
||||||
id=types.InputPhoto(
|
|
||||||
id=unpacked[2],
|
|
||||||
access_hash=unpacked[3],
|
|
||||||
file_reference=b""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
media = types.InputMediaDocument(
|
|
||||||
id=types.InputDocument(
|
|
||||||
id=unpacked[2],
|
|
||||||
access_hash=unpacked[3],
|
|
||||||
file_reference=b""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
r = self.send(
|
r = self.send(
|
||||||
functions.messages.SendMedia(
|
functions.messages.SendMedia(
|
||||||
peer=self.resolve_peer(chat_id),
|
peer=self.resolve_peer(chat_id),
|
||||||
media=media,
|
media=utils.get_input_media_from_file_id(file_id),
|
||||||
silent=disable_notification or None,
|
silent=disable_notification or None,
|
||||||
reply_to_msg_id=reply_to_message_id,
|
reply_to_msg_id=reply_to_message_id,
|
||||||
random_id=self.rnd_id(),
|
random_id=self.rnd_id(),
|
||||||
|
@ -16,11 +16,11 @@
|
|||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
import json
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
from pyrogram.api import functions, types
|
from pyrogram.api import functions, types
|
||||||
from pyrogram.client.ext import BaseClient
|
from pyrogram.client.ext import BaseClient
|
||||||
import json
|
|
||||||
|
|
||||||
|
|
||||||
class ChatAction:
|
class ChatAction:
|
||||||
|
@ -16,15 +16,13 @@
|
|||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import binascii
|
|
||||||
import os
|
import os
|
||||||
import struct
|
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
import pyrogram
|
import pyrogram
|
||||||
from pyrogram.api import functions, types
|
from pyrogram.api import functions, types
|
||||||
from pyrogram.errors import FileIdInvalid, FilePartMissing
|
|
||||||
from pyrogram.client.ext import BaseClient, utils
|
from pyrogram.client.ext import BaseClient, utils
|
||||||
|
from pyrogram.errors import FilePartMissing
|
||||||
|
|
||||||
|
|
||||||
class SendDocument(BaseClient):
|
class SendDocument(BaseClient):
|
||||||
@ -134,28 +132,7 @@ class SendDocument(BaseClient):
|
|||||||
url=document
|
url=document
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
try:
|
media = utils.get_input_media_from_file_id(document, 5)
|
||||||
decoded = utils.decode(document)
|
|
||||||
fmt = "<iiqqqqi" if len(decoded) > 24 else "<iiqq"
|
|
||||||
unpacked = struct.unpack(fmt, decoded)
|
|
||||||
except (AssertionError, binascii.Error, struct.error):
|
|
||||||
raise FileIdInvalid from None
|
|
||||||
else:
|
|
||||||
if unpacked[0] not in (5, 10):
|
|
||||||
media_type = BaseClient.MEDIA_TYPE_ID.get(unpacked[0], None)
|
|
||||||
|
|
||||||
if media_type:
|
|
||||||
raise FileIdInvalid("The file_id belongs to a {}".format(media_type))
|
|
||||||
else:
|
|
||||||
raise FileIdInvalid("Unknown media type: {}".format(unpacked[0]))
|
|
||||||
|
|
||||||
media = types.InputMediaDocument(
|
|
||||||
id=types.InputDocument(
|
|
||||||
id=unpacked[2],
|
|
||||||
access_hash=unpacked[3],
|
|
||||||
file_reference=b""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
|
@ -16,17 +16,15 @@
|
|||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import binascii
|
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import struct
|
|
||||||
import time
|
import time
|
||||||
from typing import Union, List
|
from typing import Union, List
|
||||||
|
|
||||||
import pyrogram
|
import pyrogram
|
||||||
from pyrogram.api import functions, types
|
from pyrogram.api import functions, types
|
||||||
from pyrogram.errors import FileIdInvalid, FloodWait
|
|
||||||
from pyrogram.client.ext import BaseClient, utils
|
from pyrogram.client.ext import BaseClient, utils
|
||||||
|
from pyrogram.errors import FloodWait
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -96,28 +94,7 @@ class SendMediaGroup(BaseClient):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
try:
|
media = utils.get_input_media_from_file_id(i.media, 2)
|
||||||
decoded = utils.decode(i.media)
|
|
||||||
fmt = "<iiqqqqi" if len(decoded) > 24 else "<iiqq"
|
|
||||||
unpacked = struct.unpack(fmt, decoded)
|
|
||||||
except (AssertionError, binascii.Error, struct.error):
|
|
||||||
raise FileIdInvalid from None
|
|
||||||
else:
|
|
||||||
if unpacked[0] != 2:
|
|
||||||
media_type = BaseClient.MEDIA_TYPE_ID.get(unpacked[0], None)
|
|
||||||
|
|
||||||
if media_type:
|
|
||||||
raise FileIdInvalid("The file_id belongs to a {}".format(media_type))
|
|
||||||
else:
|
|
||||||
raise FileIdInvalid("Unknown media type: {}".format(unpacked[0]))
|
|
||||||
|
|
||||||
media = types.InputMediaPhoto(
|
|
||||||
id=types.InputPhoto(
|
|
||||||
id=unpacked[2],
|
|
||||||
access_hash=unpacked[3],
|
|
||||||
file_reference=b""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
elif isinstance(i, pyrogram.InputMediaVideo):
|
elif isinstance(i, pyrogram.InputMediaVideo):
|
||||||
if os.path.exists(i.media):
|
if os.path.exists(i.media):
|
||||||
while True:
|
while True:
|
||||||
@ -155,28 +132,7 @@ class SendMediaGroup(BaseClient):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
try:
|
media = utils.get_input_media_from_file_id(i.media, 4)
|
||||||
decoded = utils.decode(i.media)
|
|
||||||
fmt = "<iiqqqqi" if len(decoded) > 24 else "<iiqq"
|
|
||||||
unpacked = struct.unpack(fmt, decoded)
|
|
||||||
except (AssertionError, binascii.Error, struct.error):
|
|
||||||
raise FileIdInvalid from None
|
|
||||||
else:
|
|
||||||
if unpacked[0] != 4:
|
|
||||||
media_type = BaseClient.MEDIA_TYPE_ID.get(unpacked[0], None)
|
|
||||||
|
|
||||||
if media_type:
|
|
||||||
raise FileIdInvalid("The file_id belongs to a {}".format(media_type))
|
|
||||||
else:
|
|
||||||
raise FileIdInvalid("Unknown media type: {}".format(unpacked[0]))
|
|
||||||
|
|
||||||
media = types.InputMediaDocument(
|
|
||||||
id=types.InputDocument(
|
|
||||||
id=unpacked[2],
|
|
||||||
access_hash=unpacked[3],
|
|
||||||
file_reference=b""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
multi_media.append(
|
multi_media.append(
|
||||||
types.InputSingleMedia(
|
types.InputSingleMedia(
|
||||||
|
@ -16,15 +16,13 @@
|
|||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import binascii
|
|
||||||
import os
|
import os
|
||||||
import struct
|
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
import pyrogram
|
import pyrogram
|
||||||
from pyrogram.api import functions, types
|
from pyrogram.api import functions, types
|
||||||
from pyrogram.errors import FileIdInvalid, FilePartMissing
|
|
||||||
from pyrogram.client.ext import BaseClient, utils
|
from pyrogram.client.ext import BaseClient, utils
|
||||||
|
from pyrogram.errors import FilePartMissing
|
||||||
|
|
||||||
|
|
||||||
class SendPhoto(BaseClient):
|
class SendPhoto(BaseClient):
|
||||||
@ -129,29 +127,7 @@ class SendPhoto(BaseClient):
|
|||||||
ttl_seconds=ttl_seconds
|
ttl_seconds=ttl_seconds
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
try:
|
media = utils.get_input_media_from_file_id(photo, 2)
|
||||||
decoded = utils.decode(photo)
|
|
||||||
fmt = "<iiqqqqi" if len(decoded) > 24 else "<iiqq"
|
|
||||||
unpacked = struct.unpack(fmt, decoded)
|
|
||||||
except (AssertionError, binascii.Error, struct.error):
|
|
||||||
raise FileIdInvalid from None
|
|
||||||
else:
|
|
||||||
if unpacked[0] != 2:
|
|
||||||
media_type = BaseClient.MEDIA_TYPE_ID.get(unpacked[0], None)
|
|
||||||
|
|
||||||
if media_type:
|
|
||||||
raise FileIdInvalid("The file_id belongs to a {}".format(media_type))
|
|
||||||
else:
|
|
||||||
raise FileIdInvalid("Unknown media type: {}".format(unpacked[0]))
|
|
||||||
|
|
||||||
media = types.InputMediaPhoto(
|
|
||||||
id=types.InputPhoto(
|
|
||||||
id=unpacked[2],
|
|
||||||
access_hash=unpacked[3],
|
|
||||||
file_reference=b""
|
|
||||||
),
|
|
||||||
ttl_seconds=ttl_seconds
|
|
||||||
)
|
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
|
@ -16,15 +16,13 @@
|
|||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import binascii
|
|
||||||
import os
|
import os
|
||||||
import struct
|
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
import pyrogram
|
import pyrogram
|
||||||
from pyrogram.api import functions, types
|
from pyrogram.api import functions, types
|
||||||
from pyrogram.errors import FileIdInvalid, FilePartMissing
|
|
||||||
from pyrogram.client.ext import BaseClient, utils
|
from pyrogram.client.ext import BaseClient, utils
|
||||||
|
from pyrogram.errors import FilePartMissing
|
||||||
|
|
||||||
|
|
||||||
class SendSticker(BaseClient):
|
class SendSticker(BaseClient):
|
||||||
@ -114,28 +112,7 @@ class SendSticker(BaseClient):
|
|||||||
url=sticker
|
url=sticker
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
try:
|
media = utils.get_input_media_from_file_id(sticker, 8)
|
||||||
decoded = utils.decode(sticker)
|
|
||||||
fmt = "<iiqqqqi" if len(decoded) > 24 else "<iiqq"
|
|
||||||
unpacked = struct.unpack(fmt, decoded)
|
|
||||||
except (AssertionError, binascii.Error, struct.error):
|
|
||||||
raise FileIdInvalid from None
|
|
||||||
else:
|
|
||||||
if unpacked[0] != 8:
|
|
||||||
media_type = BaseClient.MEDIA_TYPE_ID.get(unpacked[0], None)
|
|
||||||
|
|
||||||
if media_type:
|
|
||||||
raise FileIdInvalid("The file_id belongs to a {}".format(media_type))
|
|
||||||
else:
|
|
||||||
raise FileIdInvalid("Unknown media type: {}".format(unpacked[0]))
|
|
||||||
|
|
||||||
media = types.InputMediaDocument(
|
|
||||||
id=types.InputDocument(
|
|
||||||
id=unpacked[2],
|
|
||||||
access_hash=unpacked[3],
|
|
||||||
file_reference=b""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
|
@ -16,15 +16,13 @@
|
|||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import binascii
|
|
||||||
import os
|
import os
|
||||||
import struct
|
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
import pyrogram
|
import pyrogram
|
||||||
from pyrogram.api import functions, types
|
from pyrogram.api import functions, types
|
||||||
from pyrogram.errors import FileIdInvalid, FilePartMissing
|
|
||||||
from pyrogram.client.ext import BaseClient, utils
|
from pyrogram.client.ext import BaseClient, utils
|
||||||
|
from pyrogram.errors import FilePartMissing
|
||||||
|
|
||||||
|
|
||||||
class SendVideo(BaseClient):
|
class SendVideo(BaseClient):
|
||||||
@ -156,28 +154,7 @@ class SendVideo(BaseClient):
|
|||||||
url=video
|
url=video
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
try:
|
media = utils.get_input_media_from_file_id(video, 4)
|
||||||
decoded = utils.decode(video)
|
|
||||||
fmt = "<iiqqqqi" if len(decoded) > 24 else "<iiqq"
|
|
||||||
unpacked = struct.unpack(fmt, decoded)
|
|
||||||
except (AssertionError, binascii.Error, struct.error):
|
|
||||||
raise FileIdInvalid from None
|
|
||||||
else:
|
|
||||||
if unpacked[0] != 4:
|
|
||||||
media_type = BaseClient.MEDIA_TYPE_ID.get(unpacked[0], None)
|
|
||||||
|
|
||||||
if media_type:
|
|
||||||
raise FileIdInvalid("The file_id belongs to a {}".format(media_type))
|
|
||||||
else:
|
|
||||||
raise FileIdInvalid("Unknown media type: {}".format(unpacked[0]))
|
|
||||||
|
|
||||||
media = types.InputMediaDocument(
|
|
||||||
id=types.InputDocument(
|
|
||||||
id=unpacked[2],
|
|
||||||
access_hash=unpacked[3],
|
|
||||||
file_reference=b""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
|
@ -16,15 +16,13 @@
|
|||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import binascii
|
|
||||||
import os
|
import os
|
||||||
import struct
|
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
import pyrogram
|
import pyrogram
|
||||||
from pyrogram.api import functions, types
|
from pyrogram.api import functions, types
|
||||||
from pyrogram.errors import FileIdInvalid, FilePartMissing
|
|
||||||
from pyrogram.client.ext import BaseClient, utils
|
from pyrogram.client.ext import BaseClient, utils
|
||||||
|
from pyrogram.errors import FilePartMissing
|
||||||
|
|
||||||
|
|
||||||
class SendVideoNote(BaseClient):
|
class SendVideoNote(BaseClient):
|
||||||
@ -133,28 +131,7 @@ class SendVideoNote(BaseClient):
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
try:
|
media = utils.get_input_media_from_file_id(video_note, 13)
|
||||||
decoded = utils.decode(video_note)
|
|
||||||
fmt = "<iiqqqqi" if len(decoded) > 24 else "<iiqq"
|
|
||||||
unpacked = struct.unpack(fmt, decoded)
|
|
||||||
except (AssertionError, binascii.Error, struct.error):
|
|
||||||
raise FileIdInvalid from None
|
|
||||||
else:
|
|
||||||
if unpacked[0] != 13:
|
|
||||||
media_type = BaseClient.MEDIA_TYPE_ID.get(unpacked[0], None)
|
|
||||||
|
|
||||||
if media_type:
|
|
||||||
raise FileIdInvalid("The file_id belongs to a {}".format(media_type))
|
|
||||||
else:
|
|
||||||
raise FileIdInvalid("Unknown media type: {}".format(unpacked[0]))
|
|
||||||
|
|
||||||
media = types.InputMediaDocument(
|
|
||||||
id=types.InputDocument(
|
|
||||||
id=unpacked[2],
|
|
||||||
access_hash=unpacked[3],
|
|
||||||
file_reference=b""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
|
@ -16,15 +16,13 @@
|
|||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import binascii
|
|
||||||
import os
|
import os
|
||||||
import struct
|
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
import pyrogram
|
import pyrogram
|
||||||
from pyrogram.api import functions, types
|
from pyrogram.api import functions, types
|
||||||
from pyrogram.errors import FileIdInvalid, FilePartMissing
|
|
||||||
from pyrogram.client.ext import BaseClient, utils
|
from pyrogram.client.ext import BaseClient, utils
|
||||||
|
from pyrogram.errors import FilePartMissing
|
||||||
|
|
||||||
|
|
||||||
class SendVoice(BaseClient):
|
class SendVoice(BaseClient):
|
||||||
@ -132,28 +130,7 @@ class SendVoice(BaseClient):
|
|||||||
url=voice
|
url=voice
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
try:
|
media = utils.get_input_media_from_file_id(voice, 3)
|
||||||
decoded = utils.decode(voice)
|
|
||||||
fmt = "<iiqqqqi" if len(decoded) > 24 else "<iiqq"
|
|
||||||
unpacked = struct.unpack(fmt, decoded)
|
|
||||||
except (AssertionError, binascii.Error, struct.error):
|
|
||||||
raise FileIdInvalid from None
|
|
||||||
else:
|
|
||||||
if unpacked[0] != 3:
|
|
||||||
media_type = BaseClient.MEDIA_TYPE_ID.get(unpacked[0], None)
|
|
||||||
|
|
||||||
if media_type:
|
|
||||||
raise FileIdInvalid("The file_id belongs to a {}".format(media_type))
|
|
||||||
else:
|
|
||||||
raise FileIdInvalid("Unknown media type: {}".format(unpacked[0]))
|
|
||||||
|
|
||||||
media = types.InputMediaDocument(
|
|
||||||
id=types.InputDocument(
|
|
||||||
id=unpacked[2],
|
|
||||||
access_hash=unpacked[3],
|
|
||||||
file_reference=b""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user