Add pm_oneside parameter in pin_message (#3095)

This commit is contained in:
Shrimadhav U K 2021-07-09 23:20:47 +05:30 committed by GitHub
parent 7763939e7d
commit ecfc6ae87d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 14 additions and 6 deletions

View File

@ -1322,7 +1322,8 @@ class MessageMethods:
entity: 'hints.EntityLike', entity: 'hints.EntityLike',
message: 'typing.Optional[hints.MessageIDLike]', message: 'typing.Optional[hints.MessageIDLike]',
*, *,
notify: bool = False notify: bool = False,
pm_oneside: bool = False
): ):
""" """
Pins a message in a chat. Pins a message in a chat.
@ -1342,6 +1343,11 @@ class MessageMethods:
notify (`bool`, optional): notify (`bool`, optional):
Whether the pin should notify people or not. Whether the pin should notify people or not.
pm_oneside (`bool`, optional):
Whether the message should be pinned for everyone or not.
By default it has the opposite behaviour of official clients,
and it will pin the message for both sides, in private chats.
Example Example
.. code-block:: python .. code-block:: python
@ -1350,7 +1356,7 @@ class MessageMethods:
message = await client.send_message(chat, 'Pinotifying is fun!') message = await client.send_message(chat, 'Pinotifying is fun!')
await client.pin_message(chat, message, notify=True) await client.pin_message(chat, message, notify=True)
""" """
return await self._pin(entity, message, unpin=False, notify=notify) return await self._pin(entity, message, unpin=False, notify=notify, pm_oneside=pm_oneside)
async def unpin_message( async def unpin_message(
self: 'TelegramClient', self: 'TelegramClient',
@ -1382,7 +1388,7 @@ class MessageMethods:
""" """
return await self._pin(entity, message, unpin=True, notify=notify) return await self._pin(entity, message, unpin=True, notify=notify)
async def _pin(self, entity, message, *, unpin, notify=False): async def _pin(self, entity, message, *, unpin, notify=False, pm_oneside=False):
message = utils.get_message_id(message) or 0 message = utils.get_message_id(message) or 0
entity = await self.get_input_entity(entity) entity = await self.get_input_entity(entity)
if message <= 0: # old behaviour accepted negative IDs to unpin if message <= 0: # old behaviour accepted negative IDs to unpin
@ -1394,6 +1400,7 @@ class MessageMethods:
id=message, id=message,
silent=not notify, silent=not notify,
unpin=unpin, unpin=unpin,
pm_oneside=pm_oneside
) )
result = await self(request) result = await self(request)

View File

@ -1038,7 +1038,7 @@ class Message(ChatGetter, SenderGetter, TLObject):
await self._client.send_read_acknowledge( await self._client.send_read_acknowledge(
await self.get_input_chat(), max_id=self.id) await self.get_input_chat(), max_id=self.id)
async def pin(self, *, notify=False): async def pin(self, *, notify=False, pm_oneside=False):
""" """
Pins the message. Shorthand for Pins the message. Shorthand for
`telethon.client.messages.MessageMethods.pin_message` `telethon.client.messages.MessageMethods.pin_message`
@ -1049,7 +1049,7 @@ class Message(ChatGetter, SenderGetter, TLObject):
# That or figure out a way to always set it directly. # That or figure out a way to always set it directly.
if self._client: if self._client:
return await self._client.pin_message( return await self._client.pin_message(
await self.get_input_chat(), self.id, notify=notify) await self.get_input_chat(), self.id, notify=notify, pm_oneside=pm_oneside)
async def unpin(self): async def unpin(self):
""" """

View File

@ -27,6 +27,7 @@ BANK_CARD_NUMBER_INVALID,400,Incorrect credit card number
BASE_PORT_LOC_INVALID,400,Base port location invalid BASE_PORT_LOC_INVALID,400,Base port location invalid
BANNED_RIGHTS_INVALID,400,"You cannot use that set of permissions in this request, i.e. restricting view_messages as a default" BANNED_RIGHTS_INVALID,400,"You cannot use that set of permissions in this request, i.e. restricting view_messages as a default"
BOTS_TOO_MUCH,400,There are too many bots in this chat/channel BOTS_TOO_MUCH,400,There are too many bots in this chat/channel
BOT_ONESIDE_NOT_AVAIL,400,
BOT_CHANNELS_NA,400,Bots can't edit admin privileges BOT_CHANNELS_NA,400,Bots can't edit admin privileges
BOT_COMMAND_DESCRIPTION_INVALID,400,"The command description was empty, too long or had invalid characters used" BOT_COMMAND_DESCRIPTION_INVALID,400,"The command description was empty, too long or had invalid characters used"
BOT_COMMAND_INVALID,400, BOT_COMMAND_INVALID,400,

1 name codes description
27 BASE_PORT_LOC_INVALID 400 Base port location invalid
28 BANNED_RIGHTS_INVALID 400 You cannot use that set of permissions in this request, i.e. restricting view_messages as a default
29 BOTS_TOO_MUCH 400 There are too many bots in this chat/channel
30 BOT_ONESIDE_NOT_AVAIL 400
31 BOT_CHANNELS_NA 400 Bots can't edit admin privileges
32 BOT_COMMAND_DESCRIPTION_INVALID 400 The command description was empty, too long or had invalid characters used
33 BOT_COMMAND_INVALID 400

View File

@ -296,7 +296,7 @@ messages.toggleStickerSets,user,
messages.uninstallStickerSet,user,STICKERSET_INVALID messages.uninstallStickerSet,user,STICKERSET_INVALID
messages.updateDialogFilter,user, messages.updateDialogFilter,user,
messages.updateDialogFiltersOrder,user, messages.updateDialogFiltersOrder,user,
messages.updatePinnedMessage,both, messages.updatePinnedMessage,both,BOT_ONESIDE_NOT_AVAIL
messages.uploadEncryptedFile,user, messages.uploadEncryptedFile,user,
messages.uploadMedia,both,BOT_MISSING MEDIA_INVALID PEER_ID_INVALID messages.uploadMedia,both,BOT_MISSING MEDIA_INVALID PEER_ID_INVALID
payments.clearSavedInfo,user, payments.clearSavedInfo,user,

1 method usability errors
296 messages.uninstallStickerSet user STICKERSET_INVALID
297 messages.updateDialogFilter user
298 messages.updateDialogFiltersOrder user
299 messages.updatePinnedMessage both BOT_ONESIDE_NOT_AVAIL
300 messages.uploadEncryptedFile user
301 messages.uploadMedia both BOT_MISSING MEDIA_INVALID PEER_ID_INVALID
302 payments.clearSavedInfo user