summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/default_config.cfg6
-rw-r--r--doc/en/configure.txt8
-rw-r--r--src/tabs.py13
3 files changed, 20 insertions, 7 deletions
diff --git a/data/default_config.cfg b/data/default_config.cfg
index 677da719..d674e098 100644
--- a/data/default_config.cfg
+++ b/data/default_config.cfg
@@ -144,11 +144,11 @@ popup_time = 4
# Set to 'true' if you want to automatically rejoin the
-# rooms when you're kicked
+# rooms when you're kicked or banned
autorejoin = false
-# Set to the delay you want to reconnect when you are kicked
-# no value, 0, or a negative value means you will be reconnected
+# Set to the number of seconds before reconnecting when you are kicked
+# or banned. No value, 0, or a negative value means you will be reconnected
# instantly. Only effective if autorejoin is set to true.
autorejoin_delay = 5
diff --git a/doc/en/configure.txt b/doc/en/configure.txt
index 5e2f1053..f72d1627 100644
--- a/doc/en/configure.txt
+++ b/doc/en/configure.txt
@@ -478,12 +478,12 @@ foo = true
*autorejoin*:: false
- set to 'true' if you want to automatically rejoin the
- room when you're kicked.
+ Set to 'true' if you want to automatically rejoin the
+ room when you're kicked or banned.
*autorejoin_delay*:: 5
- Set to the number of seconds before reconnecting after getting kicked.
- 0, a negative value, or no value means you instant reconnection.
+ Set to the number of seconds before reconnecting after getting kicked or
+ banned. 0, a negative value, or no value means instant reconnection.
This option only works if autorejoin is enabled.
diff --git a/src/tabs.py b/src/tabs.py
index d6369a9d..4d52a285 100644
--- a/src/tabs.py
+++ b/src/tabs.py
@@ -1320,6 +1320,19 @@ class MucTab(ChatTab):
self.refresh_tab_win()
self.core.current_tab().input.refresh()
self.core.doupdate()
+ if config.get_by_tabname('autorejoin', 'false', self.general_jid, True) == 'true':
+ delay = config.get_by_tabname('autorejoin_delay', "5", self.general_jid, True)
+ delay = common.parse_str_to_secs(delay)
+ if delay <= 0:
+ muc.join_groupchat(self.core.xmpp, self.name, self.own_nick)
+ else:
+ self.core.add_timed_event(timed_events.DelayedEvent(
+ delay,
+ muc.join_groupchat,
+ self.core.xmpp,
+ self.name,
+ self.own_nick))
+
else:
color = user.color[0] if config.get_by_tabname('display_user_color_in_join_part', '', self.general_jid, True) == 'true' else 3
if by: