mirror of
https://github.com/TeamPGM/pyrogram.git
synced 2024-11-16 20:59:29 +00:00
Update download_media and util methods to work with new file_id formats
This commit is contained in:
parent
ad9f610a6a
commit
6bbd79db86
@ -1063,6 +1063,7 @@ class Client(Methods, BaseClient):
|
||||
access_hash=data.access_hash,
|
||||
thumb_size=data.thumb_size,
|
||||
peer_id=data.peer_id,
|
||||
peer_access_hash=data.peer_access_hash,
|
||||
volume_id=data.volume_id,
|
||||
local_id=data.local_id,
|
||||
file_size=data.file_size,
|
||||
@ -1702,6 +1703,7 @@ class Client(Methods, BaseClient):
|
||||
access_hash: int,
|
||||
thumb_size: str,
|
||||
peer_id: int,
|
||||
peer_access_hash: int,
|
||||
volume_id: int,
|
||||
local_id: int,
|
||||
file_size: int,
|
||||
@ -1741,7 +1743,10 @@ class Client(Methods, BaseClient):
|
||||
|
||||
if media_type == 1:
|
||||
location = types.InputPeerPhotoFileLocation(
|
||||
peer=self.resolve_peer(peer_id),
|
||||
peer=types.InputPeerUser(
|
||||
user_id=peer_id,
|
||||
access_hash=peer_access_hash
|
||||
),
|
||||
volume_id=volume_id,
|
||||
local_id=local_id,
|
||||
big=is_big or None
|
||||
|
@ -20,8 +20,9 @@
|
||||
class FileData:
|
||||
def __init__(
|
||||
self, *, media_type: int = None, dc_id: int = None, document_id: int = None, access_hash: int = None,
|
||||
thumb_size: str = None, peer_id: int = None, volume_id: int = None, local_id: int = None, is_big: bool = None,
|
||||
file_size: int = None, mime_type: str = None, file_name: str = None, date: int = None
|
||||
thumb_size: str = None, peer_id: int = None, peer_access_hash: int = None, volume_id: int = None,
|
||||
local_id: int = None, is_big: bool = None, file_size: int = None, mime_type: str = None, file_name: str = None,
|
||||
date: int = None
|
||||
):
|
||||
self.media_type = media_type
|
||||
self.dc_id = dc_id
|
||||
@ -29,6 +30,7 @@ class FileData:
|
||||
self.access_hash = access_hash
|
||||
self.thumb_size = thumb_size
|
||||
self.peer_id = peer_id
|
||||
self.peer_access_hash = peer_access_hash
|
||||
self.volume_id = volume_id
|
||||
self.local_id = local_id
|
||||
self.is_big = is_big
|
||||
|
@ -104,8 +104,8 @@ def get_input_media_from_file_id(
|
||||
raise ValueError("This file_id can only be used for download: {}".format(file_id_str))
|
||||
|
||||
if media_type == 2:
|
||||
unpacked = struct.unpack("<iiqqc", decoded)
|
||||
dc_id, file_id, access_hash, thumb_size = unpacked[1:]
|
||||
unpacked = struct.unpack("<iiqqqiiii", decoded)
|
||||
dc_id, file_id, access_hash, volume_id, _, _, type, local_id = unpacked[1:]
|
||||
|
||||
return types.InputMediaPhoto(
|
||||
id=types.InputPhoto(
|
||||
|
@ -138,21 +138,22 @@ class DownloadMedia(BaseClient):
|
||||
media_type = decoded[0]
|
||||
|
||||
if media_type == 1:
|
||||
unpacked = struct.unpack("<iiqqib", decoded)
|
||||
dc_id, peer_id, volume_id, local_id, is_big = unpacked[1:]
|
||||
unpacked = struct.unpack("<iiqqqiiiqi", decoded)
|
||||
dc_id, photo_id, _, volume_id, size_type, peer_id, _, peer_access_hash, local_id = unpacked[1:]
|
||||
|
||||
data = FileData(
|
||||
**get_existing_attributes(),
|
||||
media_type=media_type,
|
||||
dc_id=dc_id,
|
||||
peer_id=peer_id,
|
||||
peer_access_hash=peer_access_hash,
|
||||
volume_id=volume_id,
|
||||
local_id=local_id,
|
||||
is_big=bool(is_big)
|
||||
is_big=size_type == 3
|
||||
)
|
||||
elif media_type in (0, 2, 14):
|
||||
unpacked = struct.unpack("<iiqqc", decoded)
|
||||
dc_id, document_id, access_hash, thumb_size = unpacked[1:]
|
||||
unpacked = struct.unpack("<iiqqqiiii", decoded)
|
||||
dc_id, document_id, access_hash, volume_id, _, _, thumb_size, local_id = unpacked[1:]
|
||||
|
||||
data = FileData(
|
||||
**get_existing_attributes(),
|
||||
@ -160,7 +161,7 @@ class DownloadMedia(BaseClient):
|
||||
dc_id=dc_id,
|
||||
document_id=document_id,
|
||||
access_hash=access_hash,
|
||||
thumb_size=thumb_size.decode()
|
||||
thumb_size=chr(thumb_size)
|
||||
)
|
||||
elif media_type in (3, 4, 5, 8, 9, 10, 13):
|
||||
unpacked = struct.unpack("<iiqq", decoded)
|
||||
|
Loading…
Reference in New Issue
Block a user