Yann Leboulanger pushed to branch xep-0319 at gajim / gajim
Commits:
-
2eed7a63
by Yann Leboulanger at 2017-07-27T22:02:59+02:00
-
22903cac
by Yann Leboulanger at 2017-07-27T23:17:43+02:00
3 changed files:
Changes:
| ... | ... | @@ -635,7 +635,7 @@ class CommonConnection: |
| 635 | 635 |
if auto:
|
| 636 | 636 |
global HAS_IDLE
|
| 637 | 637 |
if HAS_IDLE and gajim.config.get_per('accounts', self.name,
|
| 638 |
- 'send_idle_time'):
|
|
| 638 |
+ 'autoaway'):
|
|
| 639 | 639 |
idle_sec = int(self.sleeper.getIdleSec())
|
| 640 | 640 |
idle_time = time.strftime('%Y-%m-%dT%H:%M:%SZ', time.gmtime(time.time() - idle_sec))
|
| 641 | 641 |
gajim.nec.push_incoming_event(BeforeChangeShowEvent(None,
|
| ... | ... | @@ -2247,33 +2247,43 @@ class Interface: |
| 2247 | 2247 |
if account not in gajim.sleeper_state or \
|
| 2248 | 2248 |
not gajim.sleeper_state[account]:
|
| 2249 | 2249 |
continue
|
| 2250 |
- if state == sleepy.STATE_AWAKE and \
|
|
| 2251 |
- gajim.sleeper_state[account] in ('autoaway', 'autoxa'):
|
|
| 2252 |
- # we go online
|
|
| 2253 |
- self.roster.send_status(account, 'online',
|
|
| 2250 |
+ if state == sleepy.STATE_AWAKE:
|
|
| 2251 |
+ if gajim.sleeper_state[account] in ('autoaway', 'autoxa'):
|
|
| 2252 |
+ # we go online
|
|
| 2253 |
+ self.roster.send_status(account, 'online',
|
|
| 2254 | 2254 |
gajim.status_before_autoaway[account])
|
| 2255 |
- gajim.status_before_autoaway[account] = ''
|
|
| 2256 |
- gajim.sleeper_state[account] = 'online'
|
|
| 2257 |
- elif state == sleepy.STATE_AWAY and \
|
|
| 2258 |
- gajim.sleeper_state[account] == 'online' and \
|
|
| 2259 |
- gajim.config.get('autoaway'):
|
|
| 2255 |
+ gajim.status_before_autoaway[account] = ''
|
|
| 2256 |
+ gajim.sleeper_state[account] = 'online'
|
|
| 2257 |
+ if gajim.sleeper_state[account] == 'idle':
|
|
| 2258 |
+ # we go to the previous state
|
|
| 2259 |
+ connected = gajim.connections[account].connected
|
|
| 2260 |
+ self.roster.send_status(account, gajim.SHOW_LIST[connected],
|
|
| 2261 |
+ gajim.status_before_autoaway[account])
|
|
| 2262 |
+ gajim.status_before_autoaway[account] = ''
|
|
| 2263 |
+ gajim.sleeper_state[account] = 'off'
|
|
| 2264 |
+ elif state == sleepy.STATE_AWAY and gajim.config.get('autoaway'):
|
|
| 2260 | 2265 |
# we save out online status
|
| 2261 | 2266 |
gajim.status_before_autoaway[account] = \
|
| 2262 |
- gajim.connections[account].status
|
|
| 2263 |
- # we go away (no auto status) [we pass True to auto param]
|
|
| 2264 |
- auto_message = gajim.config.get('autoaway_message')
|
|
| 2265 |
- if not auto_message:
|
|
| 2266 |
- auto_message = gajim.connections[account].status
|
|
| 2267 |
- else:
|
|
| 2268 |
- auto_message = auto_message.replace('$S', '%(status)s')
|
|
| 2269 |
- auto_message = auto_message.replace('$T', '%(time)s')
|
|
| 2270 |
- auto_message = auto_message % {
|
|
| 2267 |
+ gajim.connections[account].status
|
|
| 2268 |
+ if gajim.sleeper_state[account] == 'online':
|
|
| 2269 |
+ # we go away (no auto status) [we pass True to auto param]
|
|
| 2270 |
+ auto_message = gajim.config.get('autoaway_message')
|
|
| 2271 |
+ if not auto_message:
|
|
| 2272 |
+ auto_message = gajim.connections[account].status
|
|
| 2273 |
+ else:
|
|
| 2274 |
+ auto_message = auto_message.replace('$S', '%(status)s')
|
|
| 2275 |
+ auto_message = auto_message.replace('$T', '%(time)s')
|
|
| 2276 |
+ auto_message = auto_message % {
|
|
| 2271 | 2277 |
'status': gajim.status_before_autoaway[account],
|
| 2272 | 2278 |
'time': gajim.config.get('autoawaytime')
|
| 2273 |
- }
|
|
| 2274 |
- self.roster.send_status(account, 'away', auto_message,
|
|
| 2275 |
- auto=True)
|
|
| 2276 |
- gajim.sleeper_state[account] = 'autoaway'
|
|
| 2279 |
+ }
|
|
| 2280 |
+ self.roster.send_status(account, 'away', auto_message,
|
|
| 2281 |
+ auto=True)
|
|
| 2282 |
+ if gajim.sleeper_state[account] == 'off':
|
|
| 2283 |
+ connected = gajim.connections[account].connected
|
|
| 2284 |
+ self.roster.send_status(account, gajim.SHOW_LIST[connected],
|
|
| 2285 |
+ gajim.status_before_autoaway[account], auto=True)
|
|
| 2286 |
+ gajim.sleeper_state[account] = 'idle'
|
|
| 2277 | 2287 |
elif state == sleepy.STATE_XA and \
|
| 2278 | 2288 |
gajim.sleeper_state[account] in ('online', 'autoaway',
|
| 2279 | 2289 |
'autoaway-forced') and gajim.config.get('autoxa'):
|
| ... | ... | @@ -2117,9 +2117,6 @@ class RosterWindow: |
| 2117 | 2117 |
def send_status(self, account, status, txt, auto=False, to=None):
|
| 2118 | 2118 |
if status != 'offline':
|
| 2119 | 2119 |
if to is None:
|
| 2120 |
- if status == gajim.connections[account].get_status() and \
|
|
| 2121 |
- txt == gajim.connections[account].status:
|
|
| 2122 |
- return
|
|
| 2123 | 2120 |
gajim.config.set_per('accounts', account, 'last_status', status)
|
| 2124 | 2121 |
gajim.config.set_per('accounts', account, 'last_status_msg',
|
| 2125 | 2122 |
helpers.to_one_line(txt))
|