From d2c108d928d66130dc02bc9384d997ae4451ace8 Mon Sep 17 00:00:00 2001 From: Yann Leboulanger Date: Thu, 5 Jan 2012 20:09:33 +0100 Subject: [PATCH] make /status /away and /back commands apply to connected and synchronized accounts. Fixes #7070 --- src/command_system/implementation/standard.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/command_system/implementation/standard.py b/src/command_system/implementation/standard.py index 8f39e939a..670c6200e 100644 --- a/src/command_system/implementation/standard.py +++ b/src/command_system/implementation/standard.py @@ -125,6 +125,17 @@ class StandardCommonCommands(CommandContainer): self.echo(formatted) + def _get_connected_accounts(self): + conns = [] + for conn in gajim.connections.itervalues(): + if not gajim.config.get_per('accounts', conn.name, + 'sync_with_global_status'): + continue + if conn.connected <= 2: + continue + conns.append(conn) + return conns + @command(raw=True, empty=True) @doc(_(""" Set current the status @@ -135,7 +146,7 @@ class StandardCommonCommands(CommandContainer): def status(self, status, message): if status not in ('online', 'away', 'chat', 'xa', 'dnd'): raise CommandError("Invalid status given") - for connection in gajim.connections.itervalues(): + for connection in self._get_connected_accounts(): connection.change_status(status, message) @command(raw=True, empty=True) @@ -143,7 +154,7 @@ class StandardCommonCommands(CommandContainer): def away(self, message): if not message: message = _("Away") - for connection in gajim.connections.itervalues(): + for connection in self._get_connected_accounts(): connection.change_status('away', message) @command('back', raw=True, empty=True) @@ -151,7 +162,7 @@ class StandardCommonCommands(CommandContainer): def online(self, message): if not message: message = _("Available") - for connection in gajim.connections.itervalues(): + for connection in self._get_connected_accounts(): connection.change_status('online', message) class StandardCommonChatCommands(CommandContainer):