# Hydrogram - Telegram MTProto API Client Library for Python# Copyright (C) 2023-present Hydrogram <https://hydrogram.org>## This file is part of Hydrogram.## Hydrogram is free software: you can redistribute it and/or modify# it under the terms of the GNU Lesser General Public License as published# by the Free Software Foundation, either version 3 of the License, or# (at your option) any later version.## Hydrogram is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU Lesser General Public License for more details.## You should have received a copy of the GNU Lesser General Public License# along with Hydrogram. If not, see <http://www.gnu.org/licenses/>.fromioimportBytesIOfromhydrogram.raw.core.primitivesimportInt,Long,Int128,Int256,Bool,Bytes,String,Double,Vectorfromhydrogram.raw.coreimportTLObjectfromhydrogramimportrawfromtypingimportList,Optional,Any# # # # # # # # # # # # # # # # # # # # # # # ## !!! WARNING !!! ## This is a generated file! ## All changes made in this file will be lost! ## # # # # # # # # # # # # # # # # # # # # # # #
[docs]classPhoto(TLObject):# type: ignore"""Photo Constructor of :obj:`~hydrogram.raw.base.Photo`. Details: - Layer: ``181`` - ID: ``FB197A65`` Parameters: id (``int`` ``64-bit``): ID access_hash (``int`` ``64-bit``): Access hash file_reference (``bytes``): file reference date (``int`` ``32-bit``): Date of upload sizes (List of :obj:`PhotoSize <hydrogram.raw.base.PhotoSize>`): Available sizes for download dc_id (``int`` ``32-bit``): DC ID to use for download has_stickers (``bool``, *optional*): Whether the photo has mask stickers attached to it video_sizes (List of :obj:`VideoSize <hydrogram.raw.base.VideoSize>`, *optional*): For animated profiles, the MPEG4 videos """__slots__:List[str]=["id","access_hash","file_reference","date","sizes","dc_id","has_stickers","video_sizes"]ID=0xfb197a65QUALNAME="types.Photo"def__init__(self,*,id:int,access_hash:int,file_reference:bytes,date:int,sizes:List["raw.base.PhotoSize"],dc_id:int,has_stickers:Optional[bool]=None,video_sizes:Optional[List["raw.base.VideoSize"]]=None)->None:self.id=id# longself.access_hash=access_hash# longself.file_reference=file_reference# bytesself.date=date# intself.sizes=sizes# Vector<PhotoSize>self.dc_id=dc_id# intself.has_stickers=has_stickers# flags.0?trueself.video_sizes=video_sizes# flags.1?Vector<VideoSize>@staticmethoddefread(b:BytesIO,*args:Any)->"Photo":flags=Int.read(b)has_stickers=Trueifflags&(1<<0)elseFalseid=Long.read(b)access_hash=Long.read(b)file_reference=Bytes.read(b)date=Int.read(b)sizes=TLObject.read(b)video_sizes=TLObject.read(b)ifflags&(1<<1)else[]dc_id=Int.read(b)returnPhoto(id=id,access_hash=access_hash,file_reference=file_reference,date=date,sizes=sizes,dc_id=dc_id,has_stickers=has_stickers,video_sizes=video_sizes)defwrite(self,*args)->bytes:b=BytesIO()b.write(Int(self.ID,False))flags=0flags|=(1<<0)ifself.has_stickerselse0flags|=(1<<1)ifself.video_sizeselse0b.write(Int(flags))b.write(Long(self.id))b.write(Long(self.access_hash))b.write(Bytes(self.file_reference))b.write(Int(self.date))b.write(Vector(self.sizes))ifself.video_sizesisnotNone:b.write(Vector(self.video_sizes))b.write(Int(self.dc_id))returnb.getvalue()