diff --git a/botogram/objects/chats.py b/botogram/objects/chats.py index 25063eb..873c8c4 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 a83dcc0..14c11a2 100644 --- a/docs/api/telegram.rst +++ b/docs/api/telegram.rst @@ -91,6 +91,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 6160a66..e51fa16 100644 --- a/docs/changelog/0.7.rst +++ b/docs/changelog/0.7.rst @@ -97,8 +97,15 @@ 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` + * Added automatic type conversion for command arguments + Bug fixes ---------