mirror of
https://github.com/pyrogram/pyrogram
synced 2025-08-29 13:27:47 +00:00
Refactor Animation, Video and VideoNote
This commit is contained in:
parent
905f4b8e62
commit
11ed26b318
@ -16,7 +16,12 @@
|
|||||||
# 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/>.
|
||||||
|
|
||||||
|
from struct import pack
|
||||||
|
|
||||||
|
from pyrogram.api import types
|
||||||
from pyrogram.api.core import Object
|
from pyrogram.api.core import Object
|
||||||
|
from .photo_size import PhotoSize
|
||||||
|
from ...ext.utils import encode
|
||||||
|
|
||||||
|
|
||||||
class Animation(Object):
|
class Animation(Object):
|
||||||
@ -53,18 +58,9 @@ class Animation(Object):
|
|||||||
|
|
||||||
ID = 0xb0700025
|
ID = 0xb0700025
|
||||||
|
|
||||||
def __init__(
|
def __init__(self, file_id: str, width: int, height: int, duration: int, *,
|
||||||
self,
|
thumb=None, file_name: str = None, mime_type: str = None, file_size: int = None, date: int = None,
|
||||||
file_id: str,
|
client=None, raw=None):
|
||||||
width: int,
|
|
||||||
height: int,
|
|
||||||
duration: int,
|
|
||||||
thumb=None,
|
|
||||||
file_name: str = None,
|
|
||||||
mime_type: str = None,
|
|
||||||
file_size: int = None,
|
|
||||||
date: int = None
|
|
||||||
):
|
|
||||||
self.file_id = file_id
|
self.file_id = file_id
|
||||||
self.thumb = thumb
|
self.thumb = thumb
|
||||||
self.file_name = file_name
|
self.file_name = file_name
|
||||||
@ -74,3 +70,31 @@ class Animation(Object):
|
|||||||
self.width = width
|
self.width = width
|
||||||
self.height = height
|
self.height = height
|
||||||
self.duration = duration
|
self.duration = duration
|
||||||
|
|
||||||
|
self._client = client
|
||||||
|
self._raw = raw
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def parse(client, animation: types.Document, video_attributes: types.DocumentAttributeVideo,
|
||||||
|
file_name: str) -> "Animation":
|
||||||
|
return Animation(
|
||||||
|
file_id=encode(
|
||||||
|
pack(
|
||||||
|
"<iiqq",
|
||||||
|
10,
|
||||||
|
animation.dc_id,
|
||||||
|
animation.id,
|
||||||
|
animation.access_hash
|
||||||
|
)
|
||||||
|
),
|
||||||
|
width=getattr(video_attributes, "w", 0),
|
||||||
|
height=getattr(video_attributes, "h", 0),
|
||||||
|
duration=getattr(video_attributes, "duration", 0),
|
||||||
|
thumb=PhotoSize.parse(client, animation.thumb),
|
||||||
|
mime_type=animation.mime_type,
|
||||||
|
file_size=animation.size,
|
||||||
|
file_name=file_name,
|
||||||
|
date=animation.date,
|
||||||
|
client=client,
|
||||||
|
raw=animation
|
||||||
|
)
|
||||||
|
@ -16,7 +16,12 @@
|
|||||||
# 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/>.
|
||||||
|
|
||||||
|
from struct import pack
|
||||||
|
|
||||||
|
from pyrogram.api import types
|
||||||
from pyrogram.api.core import Object
|
from pyrogram.api.core import Object
|
||||||
|
from .photo_size import PhotoSize
|
||||||
|
from ...ext.utils import encode
|
||||||
|
|
||||||
|
|
||||||
class Video(Object):
|
class Video(Object):
|
||||||
@ -53,18 +58,9 @@ class Video(Object):
|
|||||||
|
|
||||||
ID = 0xb0700008
|
ID = 0xb0700008
|
||||||
|
|
||||||
def __init__(
|
def __init__(self, file_id: str, width: int, height: int, duration: int, *,
|
||||||
self,
|
thumb=None, file_name: str = None, mime_type: str = None, file_size: int = None, date: int = None,
|
||||||
file_id: str,
|
client=None, raw=None):
|
||||||
width: int,
|
|
||||||
height: int,
|
|
||||||
duration: int,
|
|
||||||
thumb=None,
|
|
||||||
file_name: str = None,
|
|
||||||
mime_type: str = None,
|
|
||||||
file_size: int = None,
|
|
||||||
date: int = None
|
|
||||||
):
|
|
||||||
self.file_id = file_id
|
self.file_id = file_id
|
||||||
self.thumb = thumb
|
self.thumb = thumb
|
||||||
self.file_name = file_name
|
self.file_name = file_name
|
||||||
@ -74,3 +70,28 @@ class Video(Object):
|
|||||||
self.width = width
|
self.width = width
|
||||||
self.height = height
|
self.height = height
|
||||||
self.duration = duration
|
self.duration = duration
|
||||||
|
|
||||||
|
self._client = client
|
||||||
|
self._raw = raw
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def parse(client, video: types.Document, video_attributes: types.DocumentAttributeVideo, file_name: str) -> "Video":
|
||||||
|
return Video(
|
||||||
|
file_id=encode(
|
||||||
|
pack(
|
||||||
|
"<iiqq",
|
||||||
|
4,
|
||||||
|
video.dc_id,
|
||||||
|
video.id,
|
||||||
|
video.access_hash
|
||||||
|
)
|
||||||
|
),
|
||||||
|
width=video_attributes.w,
|
||||||
|
height=video_attributes.h,
|
||||||
|
duration=video_attributes.duration,
|
||||||
|
thumb=PhotoSize.parse(client, video.thumb),
|
||||||
|
mime_type=video.mime_type,
|
||||||
|
file_size=video.size,
|
||||||
|
file_name=file_name,
|
||||||
|
date=video.date
|
||||||
|
)
|
||||||
|
@ -16,7 +16,12 @@
|
|||||||
# 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/>.
|
||||||
|
|
||||||
|
from struct import pack
|
||||||
|
|
||||||
|
from pyrogram.api import types
|
||||||
from pyrogram.api.core import Object
|
from pyrogram.api.core import Object
|
||||||
|
from .photo_size import PhotoSize
|
||||||
|
from ...ext.utils import encode
|
||||||
|
|
||||||
|
|
||||||
class VideoNote(Object):
|
class VideoNote(Object):
|
||||||
@ -47,16 +52,9 @@ class VideoNote(Object):
|
|||||||
|
|
||||||
ID = 0xb0700010
|
ID = 0xb0700010
|
||||||
|
|
||||||
def __init__(
|
def __init__(self, file_id: str, length: int, duration: int, *,
|
||||||
self,
|
thumb=None, mime_type: str = None, file_size: int = None, date: int = None,
|
||||||
file_id: str,
|
client=None, raw=None):
|
||||||
length: int,
|
|
||||||
duration: int,
|
|
||||||
thumb=None,
|
|
||||||
mime_type: str = None,
|
|
||||||
file_size: int = None,
|
|
||||||
date: int = None
|
|
||||||
):
|
|
||||||
self.file_id = file_id
|
self.file_id = file_id
|
||||||
self.thumb = thumb
|
self.thumb = thumb
|
||||||
self.mime_type = mime_type
|
self.mime_type = mime_type
|
||||||
@ -64,3 +62,26 @@ class VideoNote(Object):
|
|||||||
self.date = date
|
self.date = date
|
||||||
self.length = length
|
self.length = length
|
||||||
self.duration = duration
|
self.duration = duration
|
||||||
|
|
||||||
|
self._client = client
|
||||||
|
self._raw = raw
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def parse(client, video_note: types.Document, video_attributes: types.DocumentAttributeVideo) -> "VideoNote":
|
||||||
|
return VideoNote(
|
||||||
|
file_id=encode(
|
||||||
|
pack(
|
||||||
|
"<iiqq",
|
||||||
|
13,
|
||||||
|
video_note.dc_id,
|
||||||
|
video_note.id,
|
||||||
|
video_note.access_hash
|
||||||
|
)
|
||||||
|
),
|
||||||
|
length=video_attributes.w,
|
||||||
|
duration=video_attributes.duration,
|
||||||
|
thumb=PhotoSize.parse(client, video_note.thumb),
|
||||||
|
file_size=video_note.size,
|
||||||
|
mime_type=video_note.mime_type,
|
||||||
|
date=video_note.date
|
||||||
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user