Yann Leboulanger pushed to branch xep-0319 at gajim / gajim
Commits:
2eed7a63 by Yann Leboulanger at 2017-07-27T22:02:59+02:00
send idle info even when we manually set a non-online presence.
- - - - -
22903cac by Yann Leboulanger at 2017-07-27T23:17:43+02:00
use autoaway config option instead of send_idle_time to attache idle
element to presence
- - - - -
3 changed files:
- gajim/common/connection.py
- gajim/gui_interface.py
- gajim/roster_window.py
Changes:
=====================================
gajim/common/connection.py
=====================================
--- a/gajim/common/connection.py
+++ b/gajim/common/connection.py
@@ -635,7 +635,7 @@ class CommonConnection:
if auto:
global HAS_IDLE
if HAS_IDLE and gajim.config.get_per('accounts', self.name,
- 'send_idle_time'):
+ 'autoaway'):
idle_sec = int(self.sleeper.getIdleSec())
idle_time = time.strftime('%Y-%m-%dT%H:%M:%SZ',
time.gmtime(time.time() - idle_sec))
gajim.nec.push_incoming_event(BeforeChangeShowEvent(None,
=====================================
gajim/gui_interface.py
=====================================
--- a/gajim/gui_interface.py
+++ b/gajim/gui_interface.py
@@ -2247,33 +2247,43 @@ class Interface:
if account not in gajim.sleeper_state or \
not gajim.sleeper_state[account]:
continue
- if state == sleepy.STATE_AWAKE and \
- gajim.sleeper_state[account] in ('autoaway', 'autoxa'):
- # we go online
- self.roster.send_status(account, 'online',
+ if state == sleepy.STATE_AWAKE:
+ if gajim.sleeper_state[account] in ('autoaway', 'autoxa'):
+ # we go online
+ self.roster.send_status(account, 'online',
gajim.status_before_autoaway[account])
- gajim.status_before_autoaway[account] = ''
- gajim.sleeper_state[account] = 'online'
- elif state == sleepy.STATE_AWAY and \
- gajim.sleeper_state[account] == 'online' and \
- gajim.config.get('autoaway'):
+ gajim.status_before_autoaway[account] = ''
+ gajim.sleeper_state[account] = 'online'
+ if gajim.sleeper_state[account] == 'idle':
+ # we go to the previous state
+ connected = gajim.connections[account].connected
+ self.roster.send_status(account,
gajim.SHOW_LIST[connected],
+ gajim.status_before_autoaway[account])
+ gajim.status_before_autoaway[account] = ''
+ gajim.sleeper_state[account] = 'off'
+ elif state == sleepy.STATE_AWAY and gajim.config.get('autoaway'):
# we save out online status
gajim.status_before_autoaway[account] = \
- gajim.connections[account].status
- # we go away (no auto status) [we pass True to auto param]
- auto_message = gajim.config.get('autoaway_message')
- if not auto_message:
- auto_message = gajim.connections[account].status
- else:
- auto_message = auto_message.replace('$S', '%(status)s')
- auto_message = auto_message.replace('$T', '%(time)s')
- auto_message = auto_message % {
+ gajim.connections[account].status
+ if gajim.sleeper_state[account] == 'online':
+ # we go away (no auto status) [we pass True to auto param]
+ auto_message = gajim.config.get('autoaway_message')
+ if not auto_message:
+ auto_message = gajim.connections[account].status
+ else:
+ auto_message = auto_message.replace('$S', '%(status)s')
+ auto_message = auto_message.replace('$T', '%(time)s')
+ auto_message = auto_message % {
'status': gajim.status_before_autoaway[account],
'time': gajim.config.get('autoawaytime')
- }
- self.roster.send_status(account, 'away', auto_message,
- auto=True)
- gajim.sleeper_state[account] = 'autoaway'
+ }
+ self.roster.send_status(account, 'away', auto_message,
+ auto=True)
+ if gajim.sleeper_state[account] == 'off':
+ connected = gajim.connections[account].connected
+ self.roster.send_status(account,
gajim.SHOW_LIST[connected],
+ gajim.status_before_autoaway[account], auto=True)
+ gajim.sleeper_state[account] = 'idle'
elif state == sleepy.STATE_XA and \
gajim.sleeper_state[account] in ('online', 'autoaway',
'autoaway-forced') and gajim.config.get('autoxa'):
=====================================
gajim/roster_window.py
=====================================
--- a/gajim/roster_window.py
+++ b/gajim/roster_window.py
@@ -2117,9 +2117,6 @@ class RosterWindow:
def send_status(self, account, status, txt, auto=False, to=None):
if status != 'offline':
if to is None:
- if status == gajim.connections[account].get_status() and \
- txt == gajim.connections[account].status:
- return
gajim.config.set_per('accounts', account, 'last_status',
status)
gajim.config.set_per('accounts', account, 'last_status_msg',
helpers.to_one_line(txt))
View it on GitLab:
https://dev.gajim.org/gajim/gajim/compare/1ce3dcbff4c6e8327f6fbc714782e1964588952e...22903cacfa3a15272be300f6393ace5aa73bec59
_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits