Telethon icon indicating copy to clipboard operation
Telethon copied to clipboard

Please fix get_permissions method.

Open lorrod opened this issue 3 years ago • 3 comments

Please change input argument in file: /telethon/client/chats.py", line 1279

Code that causes the issue

    if helpers._entity_type(entity) == helpers._EntityType.CHANNEL:
        participant = await self(_tl.fn.channels.GetParticipant(
            entity,
            user
        ))
        return _custom.ParticipantPermissions(participant.participant, False)
    elif helpers._entity_type(entity) == helpers._EntityType.CHAT:
        chat = await self(_tl.fn.messages.GetFullChat(
            entity # required argument is chat_id -> entity.chat_id
        ))
...

Traceback

Traceback (most recent call last):
    File "/Users/pavel/Documents/telegram-chats-management/scripts/bot_access_provider.py", line 173, in execute
    user_permission = await is_group_member(client, dialog, search_username)
  File "/Users/pavel/Documents/telegram-chats-management/scripts/bot_access_provider.py", line 97, in is_group_member
    user_permission = await client.get_permissions(dialog, username)
  File "/opt/homebrew/lib/python3.9/site-packages/telethon/client/chats.py", line 1279, in get_permissions
    chat = await self(functions.messages.GetFullChatRequest(
  File "/opt/homebrew/lib/python3.9/site-packages/telethon/client/users.py", line 30, in __call__
    return await self._call(self._sender, request, ordered=ordered)
  File "/opt/homebrew/lib/python3.9/site-packages/telethon/client/users.py", line 63, in _call
    future = sender.send(request, ordered=ordered)
  File "/opt/homebrew/lib/python3.9/site-packages/telethon/network/mtprotosender.py", line 176, in send
    state = RequestState(request)
  File "/opt/homebrew/lib/python3.9/site-packages/telethon/network/requeststate.py", line 17, in __init__
    self.data = bytes(request)
  File "/opt/homebrew/lib/python3.9/site-packages/telethon/tl/tlobject.py", line 194, in __bytes__
    return self._bytes()
  File "/opt/homebrew/lib/python3.9/site-packages/telethon/tl/functions/messages.py", line 2065, in _bytes
    struct.pack('<q', self.chat_id),
struct.error: required argument is not an integer

lorrod avatar Apr 28 '22 09:04 lorrod

I can see from this error you passed in a dialog when the expected input is an entity.

ChoiHwaa avatar Jun 10 '22 19:06 ChoiHwaa

Hello!

I tried to pass input entity of the chat, it still raises the same error. Only fix which I described helps.

Thank you.

lorrod avatar Jul 07 '22 13:07 lorrod

Experienced same error but fix is as easy as changing entity to entity.chat_id

GirlBoomer avatar Aug 05 '22 18:08 GirlBoomer

Sorry that it took such a long time to resolve. This will be fixed in the next version.

Lonami avatar Sep 20 '22 14:09 Lonami