diff --git a/telethon/tl/custom/messagebutton.py b/telethon/tl/custom/messagebutton.py index 6ec17fbd..359730e7 100644 --- a/telethon/tl/custom/messagebutton.py +++ b/telethon/tl/custom/messagebutton.py @@ -65,7 +65,7 @@ class MessageButton: if isinstance(self.button, types.KeyboardButtonUrl): return self.button.url - async def click(self, share_phone=None, share_geo=None, *, password=None): + async def click(self, share_phone=None, share_geo=None, *, password=None, open_url=None): """ Emulates the behaviour of clicking this button. @@ -79,7 +79,8 @@ class MessageButton: :tl:`StartBotRequest` will be invoked and the resulting updates returned. - If it's a :tl:`KeyboardButtonUrl`, the URL of the button will + If it's a :tl:`KeyboardButtonUrl`, the ``URL`` of the button will + be returned. If you pass ``open_url=True`` the URL of the button will be passed to ``webbrowser.open`` and return `True` on success. If it's a :tl:`KeyboardButtonRequestPhone`, you must indicate that you @@ -116,8 +117,10 @@ class MessageButton: bot=self._bot, peer=self._chat, start_param=self.button.query )) elif isinstance(self.button, types.KeyboardButtonUrl): - if "webbrowser" in sys.modules: - return webbrowser.open(self.button.url) + if open_url: + if "webbrowser" in sys.modules: + return webbrowser.open(self.button.url) + return self.button.url elif isinstance(self.button, types.KeyboardButtonGame): req = functions.messages.GetBotCallbackAnswerRequest( peer=self._chat, msg_id=self._msg_id, game=True