Philipp Hörist pushed to branch master at gajim / python-nbxmpp
Commits: 0414d956 by lovetox at 2021-03-21T21:28:12+01:00 Add log_calls decorator
- - - - - d2e8aae7 by lovetox at 2021-03-21T21:29:05+01:00 Presence: Fix sending presence
- - - - - 98216410 by lovetox at 2021-03-21T21:29:23+01:00 Presence: Use log_calls decorator
- - - - -
2 changed files:
- nbxmpp/modules/presence.py - nbxmpp/modules/util.py
Changes:
===================================== nbxmpp/modules/presence.py ===================================== @@ -25,6 +25,7 @@ from nbxmpp.util import error_factory from nbxmpp.const import PresenceType from nbxmpp.const import PresenceShow from nbxmpp.modules.base import BaseModule +from nbxmpp.modules.util import log_calls
class BasePresence(BaseModule): @@ -93,15 +94,19 @@ class BasePresence(BaseModule): self._log.warning(stanza) return PresenceShow.ONLINE
+ @log_calls def unsubscribe(self, jid): self.send(jid=jid, typ='unsubscribe')
+ @log_calls def unsubscribed(self, jid): self.send(jid=jid, typ='unsubscribed')
+ @log_calls def subscribed(self, jid): self.send(jid=jid, typ='subscribed')
+ @log_calls def subscribe(self, jid, status=None, nick=None): self.send(jid=jid, typ='subscribe', status=status, nick=nick)
@@ -150,4 +155,4 @@ class BasePresence(BaseModule): for node in extend: presence.addChild(node=node)
- self._con.send_stanza(presence) + self._client.send_stanza(presence)
===================================== nbxmpp/modules/util.py ===================================== @@ -15,6 +15,8 @@ # You should have received a copy of the GNU General Public License # along with this program; If not, see http://www.gnu.org/licenses/.
+import logging +import functools import inspect from urllib.parse import urlparse from urllib.parse import unquote @@ -75,3 +77,12 @@ def make_func_arguments_string(func, self, args, kwargs): arg_string += f'{name}={arg}, ' arg_string = arg_string[:-2] return f'{func.__name__}({arg_string})' + + +def log_calls(func): + @functools.wraps(func) + def func_wrapper(self, *args, **kwargs): + if self._log.isEnabledFor(logging.INFO): + self._log.info(make_func_arguments_string(func, self, args, kwargs)) + return func(self, *args, **kwargs) + return func_wrapper
View it on GitLab: https://dev.gajim.org/gajim/python-nbxmpp/-/compare/0c0d9c205f4167273b850099...