mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-02-13 18:11:06 +03:00
Add autocast for InputDocument and InputChatPhoto
This commit is contained in:
parent
aa3f26263c
commit
0fcc2e5e52
|
@ -270,9 +270,41 @@ def get_input_photo(photo):
|
||||||
if isinstance(photo, types.PhotoEmpty):
|
if isinstance(photo, types.PhotoEmpty):
|
||||||
return types.InputPhotoEmpty()
|
return types.InputPhotoEmpty()
|
||||||
|
|
||||||
|
if isinstance(photo, types.messages.ChatFull):
|
||||||
|
photo = photo.full_chat
|
||||||
|
if isinstance(photo, types.ChannelFull):
|
||||||
|
return get_input_photo(photo.chat_photo)
|
||||||
|
elif isinstance(photo, types.UserFull):
|
||||||
|
return get_input_photo(photo.profile_photo)
|
||||||
|
elif isinstance(photo, (types.Channel, types.Chat, types.User)):
|
||||||
|
return get_input_photo(photo.photo)
|
||||||
|
|
||||||
|
if isinstance(photo, (types.UserEmpty, types.ChatEmpty,
|
||||||
|
types.ChatForbidden, types.ChannelForbidden)):
|
||||||
|
return types.InputPhotoEmpty()
|
||||||
|
|
||||||
_raise_cast_fail(photo, 'InputPhoto')
|
_raise_cast_fail(photo, 'InputPhoto')
|
||||||
|
|
||||||
|
|
||||||
|
def get_input_chat_photo(photo):
|
||||||
|
"""Similar to :meth:`get_input_peer`, but for chat photos"""
|
||||||
|
try:
|
||||||
|
if photo.SUBCLASS_OF_ID == 0xd4eb2d74: # crc32(b'InputChatPhoto')
|
||||||
|
return photo
|
||||||
|
elif photo.SUBCLASS_OF_ID == 0xe7655f1f: # crc32(b'InputFile'):
|
||||||
|
return types.InputChatUploadedPhoto(photo)
|
||||||
|
except AttributeError:
|
||||||
|
_raise_cast_fail(photo, 'InputChatPhoto')
|
||||||
|
|
||||||
|
photo = get_input_photo(photo)
|
||||||
|
if isinstance(photo, types.InputPhoto):
|
||||||
|
return types.InputChatPhoto(photo)
|
||||||
|
elif isinstance(photo, types.InputPhotoEmpty):
|
||||||
|
return types.InputChatPhotoEmpty()
|
||||||
|
|
||||||
|
_raise_cast_fail(photo, 'InputChatPhoto')
|
||||||
|
|
||||||
|
|
||||||
def get_input_geo(geo):
|
def get_input_geo(geo):
|
||||||
"""Similar to :meth:`get_input_peer`, but for geo points"""
|
"""Similar to :meth:`get_input_peer`, but for geo points"""
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -25,7 +25,9 @@ AUTO_CASTS = {
|
||||||
'InputNotifyPeer': 'await client._get_input_notify({})',
|
'InputNotifyPeer': 'await client._get_input_notify({})',
|
||||||
'InputMedia': 'utils.get_input_media({})',
|
'InputMedia': 'utils.get_input_media({})',
|
||||||
'InputPhoto': 'utils.get_input_photo({})',
|
'InputPhoto': 'utils.get_input_photo({})',
|
||||||
'InputMessage': 'utils.get_input_message({})'
|
'InputMessage': 'utils.get_input_message({})',
|
||||||
|
'InputDocument': 'utils.get_input_document({})',
|
||||||
|
'InputChatPhoto': 'utils.get_input_chat_photo({})',
|
||||||
}
|
}
|
||||||
|
|
||||||
NAMED_AUTO_CASTS = {
|
NAMED_AUTO_CASTS = {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user