From 17c5cf00596c176808ef2e4baecc00c674bc1347 Mon Sep 17 00:00:00 2001 From: matteo Date: Wed, 29 Apr 2020 22:18:47 +0200 Subject: [PATCH] add new attribute user object https://tree.taiga.io/project/matteob99-botogram/us/64 --- botogram/objects/chats.py | 41 +++++++++++++++++++++++++++++++++++++++ docs/api/telegram.rst | 19 ++++++++++++++++++ docs/changelog/0.7.rst | 6 ++++++ 3 files changed, 66 insertions(+) diff --git a/botogram/objects/chats.py b/botogram/objects/chats.py index 60ebcbf..ab70f73 100644 --- a/botogram/objects/chats.py +++ b/botogram/objects/chats.py @@ -41,9 +41,16 @@ class User(BaseObject, mixins.ChatMixin): "username": str, "language_code": str, "is_bot": bool, + "can_join_groups": bool, + "can_read_all_group_messages": bool, + "supports_inline_queries": bool } replace_keys = { "language_code": "lang", + "can_join_groups": "_can_join_groups", + "can_read_all_group_messages": "_can_read_all_group_messages", + "supports_inline_queries": "_supports_inline_queries" + } _check_equality_ = "id" @@ -56,6 +63,40 @@ def name(self): return result + + @property + @mixins._require_api + def can_join_groups(self): + if self._can_join_groups is None: + user = self._api.call("getMe", expect=User) + self._can_join_groups = user._can_join_groups + self._can_read_all_group_messages = user._can_read_all_group_messages + self._supports_inline_queries = user._supports_inline_queries + return self._can_join_groups + + + @property + @mixins._require_api + def can_read_all_group_messages(self): + if self._can_read_all_group_messages is None: + user = self._api.call("getMe", expect=User) + self._can_join_groups = user._can_join_groups + self._can_read_all_group_messages = user._can_read_all_group_messages + self._supports_inline_queries = user._supports_inline_queries + return self._can_read_all_group_messages + + + @property + @mixins._require_api + def supports_inline_queries(self): + if self._supports_inline_queries is None: + user = self._api.call("getMe", expect=User) + self._can_join_groups = user._can_join_groups + self._can_read_all_group_messages = user._can_read_all_group_messages + self._supports_inline_queries = user._supports_inline_queries + return self._supports_inline_queries + + @property @mixins._require_api def avatar(self): diff --git a/docs/api/telegram.rst b/docs/api/telegram.rst index d561a3c..ea151d3 100644 --- a/docs/api/telegram.rst +++ b/docs/api/telegram.rst @@ -88,6 +88,25 @@ about its business. .. versionadded:: 0.2 + .. py:attribute:: can_join_group + + True, if the bot can be invited to groups. + + .. versionadded:: 0.7 + + .. py:attribute:: can_read_all_group_messages + + True, if privacy mode is disabled for the bot. + + .. versionadded:: 0.7 + + + .. py:attribute:: supports_inline_queries + + True, if the bot supports inline queries. + + .. versionadded:: 0.7 + .. py:attribute:: avatar This attribute contains the user's avatar, represented as a diff --git a/docs/changelog/0.7.rst b/docs/changelog/0.7.rst index 7555957..cc9f86f 100644 --- a/docs/changelog/0.7.rst +++ b/docs/changelog/0.7.rst @@ -77,6 +77,12 @@ New features * New argument ``vcard`` in :py:meth:`botogram.Message.reply_with_contact` * New attribute :py:attr:`Contact.vcard` + New class :py:class:`botogram.User` attributes + + * New attribute :py:attr:`~botogram.User.can_join_groups` + * New attribute :py:attr:`~botogram.User.can_join_groups` + * New attribute :py:attr:`~botogram.User.supports_inline_queries` + Bug fixes ---------