make /status /away and /back commands apply to connected and synchronized accounts. Fixes #7070

This commit is contained in:
Yann Leboulanger 2012-01-05 20:09:33 +01:00
parent bae57a600a
commit d2c108d928
1 changed files with 14 additions and 3 deletions

View File

@ -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):