summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bookmark.py10
-rw-r--r--src/config.py5
-rw-r--r--src/connection.py50
-rw-r--r--src/core/commands.py12
-rw-r--r--src/core/completions.py6
-rw-r--r--src/core/core.py72
-rw-r--r--src/core/handlers.py48
-rw-r--r--src/logger.py2
-rw-r--r--src/plugin_manager.py4
-rw-r--r--src/roster.py6
-rw-r--r--src/tabs/basetabs.py10
-rw-r--r--src/tabs/muctab.py18
-rw-r--r--src/tabs/privatetab.py2
-rw-r--r--src/tabs/rostertab.py4
-rw-r--r--src/text_buffer.py4
-rwxr-xr-xsrc/theming.py4
-rw-r--r--src/windows/funcs.py2
-rw-r--r--src/windows/info_bar.py16
-rw-r--r--src/windows/inputs.py2
-rw-r--r--src/windows/muc.py10
-rw-r--r--src/windows/roster_win.py16
-rw-r--r--src/windows/text_win.py8
22 files changed, 153 insertions, 158 deletions
diff --git a/src/bookmark.py b/src/bookmark.py
index 1807c45e..672fb4a5 100644
--- a/src/bookmark.py
+++ b/src/bookmark.py
@@ -23,7 +23,7 @@ def xml_iter(xml, tag=''):
else:
return xml.getiterator(tag)
-preferred = config.get('use_bookmarks_method', 'pep').lower()
+preferred = config.get('use_bookmarks_method').lower()
if preferred not in ('pep', 'privatexml'):
preferred = 'privatexml'
not_preferred = 'privatexml' if preferred == 'pep' else 'privatexml'
@@ -155,8 +155,8 @@ def save_local():
def save(xmpp, core=None):
"""Save all the bookmarks."""
save_local()
- if config.get('use_remote_bookmarks', True):
- preferred = config.get('use_bookmarks_method', 'privatexml')
+ if config.get('use_remote_bookmarks'):
+ preferred = config.get('use_bookmarks_method')
if not save_remote(xmpp, method=preferred) and core:
core.information('Could not save bookmarks.', 'Error')
return False
@@ -192,7 +192,7 @@ def get_remote(xmpp):
"""Add the remotely stored bookmarks to the list."""
if xmpp.anon:
return
- method = config.get('use_bookmarks_method', '')
+ method = config.get('use_bookmarks_method')
if not method:
pep, privatexml = True, True
for method in methods[1:]:
@@ -214,7 +214,7 @@ def get_remote(xmpp):
def get_local():
"""Add the locally stored bookmarks to the list."""
- rooms = config.get('rooms', '')
+ rooms = config.get('rooms')
if not rooms:
return
rooms = rooms.split(':')
diff --git a/src/config.py b/src/config.py
index 533838e1..0504dbd5 100644
--- a/src/config.py
+++ b/src/config.py
@@ -133,7 +133,6 @@ DEFAULT_CONFIG = {
}
}
-
class Config(RawConfigParser):
"""
load/save the config to a file
@@ -539,7 +538,7 @@ def create_global_config():
def check_create_log_dir():
"Create the poezio logging directory if it doesn’t exist"
global LOG_DIR
- LOG_DIR = config.get('log_dir', '')
+ LOG_DIR = config.get('log_dir')
if not LOG_DIR:
@@ -559,7 +558,7 @@ def check_create_log_dir():
def setup_logging():
"Change the logging config according to the cmdline options and config"
- if config.get('log_errors', True):
+ if config.get('log_errors'):
LOGGING_CONFIG['root']['handlers'].append('error')
LOGGING_CONFIG['handlers']['error'] = {
'level': 'ERROR',
diff --git a/src/connection.py b/src/connection.py
index b5b7e12e..e6188e05 100644
--- a/src/connection.py
+++ b/src/connection.py
@@ -29,28 +29,28 @@ class Connection(sleekxmpp.ClientXMPP):
"""
__init = False
def __init__(self):
- resource = config.get('resource', '')
- if config.get('jid', ''):
+ resource = config.get('resource')
+ if config.get('jid'):
# Field used to know if we are anonymous or not.
# many features will be handled differently
# depending on this setting
self.anon = False
- jid = '%s' % config.get('jid', '')
+ jid = '%s' % config.get('jid')
if resource:
jid = '%s/%s'% (jid, resource)
- password = config.get('password', '') or getpass.getpass()
+ password = config.get('password') or getpass.getpass()
else: # anonymous auth
self.anon = True
- jid = config.get('server', 'anon.jeproteste.info')
+ jid = config.get('server')
if resource:
jid = '%s/%s' % (jid, resource)
password = None
jid = safeJID(jid)
# TODO: use the system language
sleekxmpp.ClientXMPP.__init__(self, jid, password,
- lang=config.get('lang', 'en'))
+ lang=config.get('lang'))
- force_encryption = config.get('force_encryption', True)
+ force_encryption = config.get('force_encryption')
if force_encryption:
self['feature_mechanisms'].unencrypted_plain = False
self['feature_mechanisms'].unencrypted_digest = False
@@ -58,7 +58,7 @@ class Connection(sleekxmpp.ClientXMPP):
self['feature_mechanisms'].unencrypted_scram = False
self.core = None
- self.auto_reconnect = config.get('auto_reconnect', False)
+ self.auto_reconnect = config.get('auto_reconnect')
self.reconnect_max_attempts = 0
self.auto_authorize = None
# prosody defaults, lowest is AES128-SHA, it should be a minimum
@@ -66,9 +66,9 @@ class Connection(sleekxmpp.ClientXMPP):
self.ciphers = config.get('ciphers',
'HIGH+kEDH:HIGH+kEECDH:HIGH:!PSK'
':!SRP:!3DES:!aNULL')
- self.ca_certs = config.get('ca_cert_path', '') or None
- interval = config.get('whitespace_interval', '300')
- if interval.isdecimal() and int(interval) > 0:
+ self.ca_certs = config.get('ca_cert_path') or None
+ interval = config.get('whitespace_interval')
+ if int(interval) > 0:
self.whitespace_keepalive_interval = int(interval)
else:
self.whitespace_keepalive_interval = 300
@@ -90,34 +90,32 @@ class Connection(sleekxmpp.ClientXMPP):
# without a body
XEP_0184._filter_add_receipt_request = fixes._filter_add_receipt_request
self.register_plugin('xep_0184')
- self.plugin['xep_0184'].auto_ack = config.get('ack_message_receipts',
- True)
- self.plugin['xep_0184'].auto_request = config.get(
- 'request_message_receipts', True)
+ self.plugin['xep_0184'].auto_ack = config.get('ack_message_receipts')
+ self.plugin['xep_0184'].auto_request = config.get('request_message_receipts')
self.register_plugin('xep_0191')
self.register_plugin('xep_0199')
self.set_keepalive_values()
- if config.get('enable_user_tune', True):
+ if config.get('enable_user_tune'):
self.register_plugin('xep_0118')
- if config.get('enable_user_nick', True):
+ if config.get('enable_user_nick'):
self.register_plugin('xep_0172')
- if config.get('enable_user_mood', True):
+ if config.get('enable_user_mood'):
self.register_plugin('xep_0107')
- if config.get('enable_user_activity', True):
+ if config.get('enable_user_activity'):
self.register_plugin('xep_0108')
- if config.get('enable_user_gaming', True):
+ if config.get('enable_user_gaming'):
self.register_plugin('xep_0196')
- if config.get('send_poezio_info', True):
+ if config.get('send_poezio_info'):
info = {'name':'poezio',
'version': options.version}
- if config.get('send_os_info', True):
+ if config.get('send_os_info'):
info['os'] = common.get_os_info()
self.plugin['xep_0030'].set_identities(
identities=set([('client', 'pc', None, 'Poezio')]))
@@ -126,7 +124,7 @@ class Connection(sleekxmpp.ClientXMPP):
self.plugin['xep_0030'].set_identities(
identities=set([('client', 'pc', None, '')]))
self.register_plugin('xep_0092', pconfig=info)
- if config.get('send_time', True):
+ if config.get('send_time'):
self.register_plugin('xep_0202')
self.register_plugin('xep_0224')
self.register_plugin('xep_0249')
@@ -141,8 +139,8 @@ class Connection(sleekxmpp.ClientXMPP):
is changed.
Unload and reload the ping plugin, with the new values.
"""
- ping_interval = config.get('connection_check_interval', 60)
- timeout_delay = config.get('connection_timeout_delay', 10)
+ ping_interval = config.get('connection_check_interval')
+ timeout_delay = config.get('connection_timeout_delay')
if timeout_delay <= 0:
# We help the stupid user (with a delay of 0, poezio will try to
# reconnect immediately because the timeout is immediately
@@ -161,7 +159,7 @@ class Connection(sleekxmpp.ClientXMPP):
TODO: try multiple servers with anon auth.
"""
- custom_host = config.get('custom_host', '')
+ custom_host = config.get('custom_host')
custom_port = config.get('custom_port', 5222)
if custom_port == -1:
custom_port = 5222
diff --git a/src/core/commands.py b/src/core/commands.py
index ab441ae9..daf420fb 100644
--- a/src/core/commands.py
+++ b/src/core/commands.py
@@ -369,7 +369,7 @@ def command_join(self, arg, histo_length=None):
room = room[1:]
current_status = self.get_status()
if not histo_length:
- histo_length = config.get('muc_history_length', 20)
+ histo_length = config.get('muc_history_length')
if histo_length == -1:
histo_length = None
if histo_length is not None:
@@ -473,7 +473,7 @@ def command_bookmark(self, arg=''):
/bookmark [room][/nick] [autojoin] [password]
"""
- if not config.get('use_remote_bookmarks', True):
+ if not config.get('use_remote_bookmarks'):
self.command_bookmark_local(arg)
return
args = common.shell_split(arg)
@@ -533,7 +533,7 @@ def command_bookmark(self, arg=''):
if not bm:
bm = bookmark.Bookmark(roomname)
bookmark.bookmarks.append(bm)
- bm.method = config.get('use_bookmarks_method', 'pep')
+ bm.method = config.get('use_bookmarks_method')
if nick:
bm.nick = nick
if password:
@@ -808,11 +808,11 @@ def command_quit(self, arg=''):
msg = arg
else:
msg = None
- if config.get('enable_user_mood', True):
+ if config.get('enable_user_mood'):
self.xmpp.plugin['xep_0107'].stop(block=False)
- if config.get('enable_user_activity', True):
+ if config.get('enable_user_activity'):
self.xmpp.plugin['xep_0108'].stop(block=False)
- if config.get('enable_user_gaming', True):
+ if config.get('enable_user_gaming'):
self.xmpp.plugin['xep_0196'].stop(block=False)
self.save_config()
self.plugin_manager.disable_plugins()
diff --git a/src/core/completions.py b/src/core/completions.py
index f8fb7fc8..ca0bb41e 100644
--- a/src/core/completions.py
+++ b/src/core/completions.py
@@ -46,7 +46,7 @@ def completion_presence(self, the_input):
def completion_theme(self, the_input):
""" Completion for /theme"""
- themes_dir = config.get('themes_dir', '')
+ themes_dir = config.get('themes_dir')
themes_dir = themes_dir or\
os.path.join(os.environ.get('XDG_DATA_HOME') or\
os.path.join(os.environ.get('HOME'), '.local', 'share'),
@@ -190,7 +190,7 @@ def completion_bookmark(self, the_input):
tab = self.get_tab_by_name(jid.bare, tabs.MucTab)
nicks = [tab.own_nick] if tab else []
default = os.environ.get('USER') if os.environ.get('USER') else 'poezio'
- nick = config.get('default_nick', '')
+ nick = config.get('default_nick')
if not nick:
if not default in nicks:
nicks.append(default)
@@ -371,7 +371,7 @@ def completion_bookmark_local(self, the_input):
tab = self.get_tab_by_name(jid.bare, tabs.MucTab)
nicks = [tab.own_nick] if tab else []
default = os.environ.get('USER') if os.environ.get('USER') else 'poezio'
- nick = config.get('default_nick', '')
+ nick = config.get('default_nick')
if not nick:
if not default in nicks:
nicks.append(default)
diff --git a/src/core/core.py b/src/core/core.py
index 985fb752..52199206 100644
--- a/src/core/core.py
+++ b/src/core/core.py
@@ -64,10 +64,10 @@ class Core(object):
sys.excepthook = self.on_exception
self.connection_time = time.time()
self.stdscr = None
- status = config.get('status', None)
+ status = config.get('status')
status = possible_show.get(status, None)
self.status = Status(show=status,
- message=config.get('status_message', ''))
+ message=config.get('status_message'))
self.running = True
self.xmpp = singleton.Singleton(connection.Connection)
self.xmpp.core = self
@@ -82,7 +82,7 @@ class Core(object):
# that are displayed in almost all tabs, in an
# information window.
self.information_buffer = TextBuffer()
- self.information_win_size = config.get('info_win_height', 2, 'var')
+ self.information_win_size = config.get('info_win_height', section='var')
self.information_win = windows.TextWin(300)
self.information_buffer.add_window(self.information_win)
self.left_tab_win = None
@@ -96,7 +96,7 @@ class Core(object):
self._current_tab_nb = 0
self.previous_tab_nb = 0
- own_nick = config.get('default_nick', '')
+ own_nick = config.get('default_nick')
own_nick = own_nick or self.xmpp.boundjid.user
own_nick = own_nick or os.environ.get('USER')
own_nick = own_nick or 'poezio'
@@ -119,7 +119,7 @@ class Core(object):
self.register_initial_commands()
# We are invisible
- if not config.get('send_initial_presence', True):
+ if not config.get('send_initial_presence'):
del self.commands['status']
del self.commands['show']
@@ -241,19 +241,19 @@ class Core(object):
connection.MatchAll(None),
self.incoming_stanza)
self.xmpp.register_handler(self.all_stanzas)
- if config.get('enable_user_tune', True):
+ if config.get('enable_user_tune'):
self.xmpp.add_event_handler("user_tune_publish",
self.on_tune_event)
- if config.get('enable_user_nick', True):
+ if config.get('enable_user_nick'):
self.xmpp.add_event_handler("user_nick_publish",
self.on_nick_received)
- if config.get('enable_user_mood', True):
+ if config.get('enable_user_mood'):
self.xmpp.add_event_handler("user_mood_publish",
self.on_mood_event)
- if config.get('enable_user_activity', True):
+ if config.get('enable_user_activity'):
self.xmpp.add_event_handler("user_activity_publish",
self.on_activity_event)
- if config.get('enable_user_gaming', True):
+ if config.get('enable_user_gaming'):
self.xmpp.add_event_handler("user_gaming_publish",
self.on_gaming_event)
@@ -342,13 +342,14 @@ class Core(object):
"""
Called when the request_message_receipts option changes
"""
- self.xmpp.plugin['xep_0184'].auto_request = config.get(option, True)
+ self.xmpp.plugin['xep_0184'].auto_request = config.get(option,
+ default=True)
def on_ack_receipts_config_change(self, option, value):
"""
Called when the ack_message_receipts option changes
"""
- self.xmpp.plugin['xep_0184'].auto_ack = config.get(option, True)
+ self.xmpp.plugin['xep_0184'].auto_ack = config.get(option, default=True)
def on_plugins_dir_config_change(self, option, value):
"""
@@ -398,7 +399,7 @@ class Core(object):
old_section = old_config.get(section, {})
for option in config.options(section):
old_value = old_section.get(option)
- new_value = config.get(option, "", section)
+ new_value = config.get(option, default="", section=section)
if new_value != old_value:
self.trigger_configuration_change(option, new_value)
log.debug("Config reloaded.")
@@ -420,11 +421,11 @@ class Core(object):
}
log.error("%s received. Exiting…", signals[sig])
- if config.get('enable_user_mood', True):
+ if config.get('enable_user_mood'):
self.xmpp.plugin['xep_0107'].stop(block=False)
- if config.get('enable_user_activity', True):
+ if config.get('enable_user_activity'):
self.xmpp.plugin['xep_0108'].stop(block=False)
- if config.get('enable_user_gaming', True):
+ if config.get('enable_user_gaming'):
self.xmpp.plugin['xep_0196'].stop(block=False)
self.plugin_manager.disable_plugins()
self.disconnect('')
@@ -439,7 +440,7 @@ class Core(object):
"""
Load the plugins on startup.
"""
- plugins = config.get('plugins_autoload', '')
+ plugins = config.get('plugins_autoload')
if ':' in plugins:
for plugin in plugins.split(':'):
self.plugin_manager.load(plugin)
@@ -659,9 +660,9 @@ class Core(object):
work. If you try to do anything else, your |, [, <<, etc will be
interpreted as normal command arguments, not shell special tokens.
"""
- if config.get('exec_remote', False):
+ if config.get('exec_remote'):
# We just write the command in the fifo
- fifo_path = config.get('remote_fifo_path', './')
+ fifo_path = config.get('remote_fifo_path')
if not self.remote_fifo:
try:
self.remote_fifo = Fifo(os.path.join(fifo_path,
@@ -755,7 +756,7 @@ class Core(object):
or to use it when joining a new muc)
"""
self.status = Status(show=pres, message=msg)
- if config.get('save_status', True):
+ if config.get('save_status'):
ok = config.silent_set('status', pres if pres else '')
msg = msg.replace('\n', '|') if msg else ''
ok = ok and config.silent_set('status_message', msg)
@@ -993,7 +994,7 @@ class Core(object):
return False
elif not self.tabs[old_pos]:
return False
- if config.get('create_gaps', False):
+ if config.get('create_gaps'):
return self.insert_tab_gaps(old_pos, new_pos)
return self.insert_tab_nogaps(old_pos, new_pos)
@@ -1237,7 +1238,7 @@ class Core(object):
if self.previous_tab_nb != nb:
self.current_tab_nb = self.previous_tab_nb
self.previous_tab_nb = 0
- if config.get('create_gaps', False):
+ if config.get('create_gaps'):
if nb >= len(self.tabs) - 1:
self.tabs.remove(tab)
nb -= 1
@@ -1288,7 +1289,7 @@ class Core(object):
"""
Displays an informational message in the "Info" buffer
"""
- filter_messages = config.get('filter_info_messages', '').split(':')
+ filter_messages = config.get('filter_info_messages').split(':')
for words in filter_messages:
if words and words in msg:
log.debug('Did not show the message:\n\t%s> %s', typ, msg)
@@ -1298,12 +1299,11 @@ class Core(object):
nb_lines = self.information_buffer.add_message(msg,
nickname=typ,
nick_color=color)
- popup_on = config.get('information_buffer_popup_on',
- 'error roster warning help info').split()
+ popup_on = config.get('information_buffer_popup_on').split()
if isinstance(self.current_tab(), tabs.RosterInfoTab):
self.refresh_window()
elif typ != '' and typ.lower() in popup_on:
- popup_time = config.get('popup_time', 4) + (nb_lines - 1) * 2
+ popup_time = config.get('popup_time') + (nb_lines - 1) * 2
self.pop_information_win_up(nb_lines, popup_time)
else:
if self.information_win_size != 0:
@@ -1496,7 +1496,7 @@ class Core(object):
"""
Enable/disable the left panel.
"""
- enabled = config.get('enable_vertical_tab_list', False)
+ enabled = config.get('enable_vertical_tab_list')
if not config.silent_set('enable_vertical_tab_list', str(not enabled)):
self.information(_('Unable to write in the config file'), 'Error')
self.call_for_resize()
@@ -1523,14 +1523,14 @@ class Core(object):
"""
with g_lock:
height, width = self.stdscr.getmaxyx()
- if config.get('enable_vertical_tab_list', False):
+ if config.get('enable_vertical_tab_list'):
if self.size.core_degrade_x:
return
try:
height, _ = self.stdscr.getmaxyx()
truncated_win = self.stdscr.subwin(height,
- config.get('vertical_tab_list_size', 20),
+ config.get('vertical_tab_list_size'),
0, 0)
except:
log.error('Curses error on infobar resize', exc_info=True)
@@ -1569,12 +1569,12 @@ class Core(object):
# on the left remaining space
with g_lock:
height, width = self.stdscr.getmaxyx()
- if (config.get('enable_vertical_tab_list', False) and
+ if (config.get('enable_vertical_tab_list') and
not self.size.core_degrade_x):
with g_lock:
try:
scr = self.stdscr.subwin(0,
- config.get('vertical_tab_list_size', 20))
+ config.get('vertical_tab_list_size'))
except:
log.error('Curses error on resize', exc_info=True)
return
@@ -1585,7 +1585,7 @@ class Core(object):
self.resize_global_information_win()
with g_lock:
for tab in self.tabs:
- if config.get('lazy_resize', True):
+ if config.get('lazy_resize'):
tab.need_resize = True
else:
tab.resize()
@@ -1818,7 +1818,7 @@ class Core(object):
usage='<jid>',
shortdesc=_('List available ad-hoc commands on the given jid'))
- if config.get('enable_user_activity', True):
+ if config.get('enable_user_activity'):
self.register_command('activity', self.command_activity,
usage='[<general> [specific] [text]]',
desc=_('Send your current activity to your contacts '
@@ -1826,7 +1826,7 @@ class Core(object):
'"stop broadcasting an activity".'),
shortdesc=_('Send your activity.'),
completion=self.completion_activity)
- if config.get('enable_user_mood', True):
+ if config.get('enable_user_mood'):
self.register_command('mood', self.command_mood,
usage='[<mood> [text]]',
desc=_('Send your current mood to your contacts '
@@ -1834,7 +1834,7 @@ class Core(object):
'"stop broadcasting a mood".'),
shortdesc=_('Send your mood.'),
completion=self.completion_mood)
- if config.get('enable_user_gaming', True):
+ if config.get('enable_user_gaming'):
self.register_command('gaming', self.command_gaming,
usage='[<game name> [server address]]',
desc=_('Send your current gaming activity to '
@@ -1977,7 +1977,7 @@ def replace_key_with_bound(key):
Replace an inputted key with the one defined as its replacement
in the config
"""
- bind = config.get(key, key, 'bindings')
+ bind = config.get(key, default=key, section='bindings')
if not bind:
bind = key
return bind
diff --git a/src/core/handlers.py b/src/core/handlers.py
index 4853c804..dfcb3223 100644
--- a/src/core/handlers.py
+++ b/src/core/handlers.py
@@ -44,7 +44,7 @@ def on_session_start_features(self, _):
features = iq['disco_info']['features']
rostertab = self.get_tab_by_name('Roster', tabs.RosterInfoTab)
rostertab.check_blocking(features)
- if (config.get('enable_carbons', True) and
+ if (config.get('enable_carbons') and
'urn:xmpp:carbons:2' in features):
self.xmpp.plugin['xep_0280'].enable()
self.xmpp.add_event_handler('carbon_received', self.on_carbon_received)
@@ -111,7 +111,7 @@ def on_groupchat_invitation(self, message):
if password:
msg += ". The password is \"%s\"." % password
self.information(msg, 'Info')
- if 'invite' in config.get('beep_on', 'invite').split():
+ if 'invite' in config.get('beep_on').split():
curses.beep()
logger.log_roster_change(inviter.full, 'invited you to %s' % jid.full)
self.pending_invites[jid.bare] = inviter.full
@@ -142,7 +142,7 @@ def on_groupchat_direct_invitation(self, message):
msg += "\nreason: %s" % reason
self.information(msg, 'Info')
- if 'invite' in config.get('beep_on', 'invite').split():
+ if 'invite' in config.get('beep_on').split():
curses.beep()
self.pending_invites[room.bare] = inviter.full
@@ -178,9 +178,9 @@ def on_normal_message(self, message):
elif message['type'] == 'headline' and message['body']:
return self.information('%s says: %s' % (message['from'], message['body']), 'Headline')
- use_xhtml = config.get('enable_xhtml_im', True)
- tmp_dir = config.get('tmp_image_dir', '') or path.join(CACHE_DIR, 'images')
- extract_images = config.get('extract_inline_images', True)
+ use_xhtml = config.get('enable_xhtml_im')
+ tmp_dir = config.get('tmp_image_dir') or path.join(CACHE_DIR, 'images')
+ extract_images = config.get('extract_inline_images')
body = xhtml.get_body_from_message_stanza(message, use_xhtml=use_xhtml,
tmp_dir=tmp_dir,
extract_images=extract_images)
@@ -197,7 +197,7 @@ def on_normal_message(self, message):
if conv_jid.bare in roster:
remote_nick = roster[conv_jid.bare].name
# check for a received nick
- if not remote_nick and config.get('enable_user_nick', True):
+ if not remote_nick and config.get('enable_user_nick'):
if message.xml.find('{http://jabber.org/protocol/nick}nick') is not None:
remote_nick = message['nick']['nick']
if not remote_nick:
@@ -259,7 +259,7 @@ def on_normal_message(self, message):
conversation.remote_wants_chatstates = True
else:
conversation.remote_wants_chatstates = False
- if 'private' in config.get('beep_on', 'highlight private').split():
+ if 'private' in config.get('beep_on').split():
if not config.get_by_tabname('disable_beep', conv_jid.bare):
curses.beep()
if self.current_tab() is not conversation:
@@ -447,9 +447,9 @@ def on_groupchat_message(self, message):
return
self.events.trigger('muc_msg', message, tab)
- use_xhtml = config.get('enable_xhtml_im', True)
- tmp_dir = config.get('tmp_image_dir', '') or path.join(CACHE_DIR, 'images')
- extract_images = config.get('extract_inline_images', True)
+ use_xhtml = config.get('enable_xhtml_im')
+ tmp_dir = config.get('tmp_image_dir') or path.join(CACHE_DIR, 'images')
+ extract_images = config.get('extract_inline_images')
body = xhtml.get_body_from_message_stanza(message, use_xhtml=use_xhtml,
tmp_dir=tmp_dir,
extract_images=extract_images)
@@ -487,7 +487,7 @@ def on_groupchat_message(self, message):
current.input.refresh()
self.doupdate()
- if 'message' in config.get('beep_on', 'highlight private').split():
+ if 'message' in config.get('beep_on').split():
if (not config.get_by_tabname('disable_beep', room_from)
and self.own_nick != message['from'].resource):
curses.beep()
@@ -508,9 +508,9 @@ def on_groupchat_private_message(self, message):
return self.on_groupchat_message(message)
room_from = jid.bare
- use_xhtml = config.get('enable_xhtml_im', True)
- tmp_dir = config.get('tmp_image_dir', '') or path.join(CACHE_DIR, 'images')
- extract_images = config.get('extract_inline_images', True)
+ use_xhtml = config.get('enable_xhtml_im')
+ tmp_dir = config.get('tmp_image_dir') or path.join(CACHE_DIR, 'images')
+ extract_images = config.get('extract_inline_images')
body = xhtml.get_body_from_message_stanza(message, use_xhtml=use_xhtml,
tmp_dir=tmp_dir,
extract_images=extract_images)
@@ -554,7 +554,7 @@ def on_groupchat_private_message(self, message):
tab.remote_wants_chatstates = True
else:
tab.remote_wants_chatstates = False
- if 'private' in config.get('beep_on', 'highlight private').split():
+ if 'private' in config.get('beep_on').split():
if not config.get_by_tabname('disable_beep', jid.full):
curses.beep()
if tab is self.current_tab():
@@ -876,23 +876,23 @@ def on_session_start(self, event):
# request the roster
self.xmpp.get_roster()
# send initial presence
- if config.get('send_initial_presence', True):
+ if config.get('send_initial_presence'):
pres = self.xmpp.make_presence()
pres['show'] = self.status.show
pres['status'] = self.status.message
self.events.trigger('send_normal_presence', pres)
pres.send()
bookmark.get_local()
- if not self.xmpp.anon and config.get('use_remote_bookmarks', True):
+ if not self.xmpp.anon and config.get('use_remote_bookmarks'):
bookmark.get_remote(self.xmpp)
for bm in bookmark.bookmarks:
- if bm.autojoin or config.get('open_all_bookmarks', False):
+ if bm.autojoin or config.get('open_all_bookmarks'):
tab = self.get_tab_by_name(bm.jid, tabs.MucTab)
nick = bm.nick if bm.nick else self.own_nick
if not tab:
self.open_new_room(bm.jid, nick, False)
self.initial_joins.append(bm.jid)
- histo_length = config.get('muc_history_length', 20)
+ histo_length = config.get('muc_history_length')
if histo_length == -1:
histo_length = None
if histo_length is not None:
@@ -906,7 +906,7 @@ def on_session_start(self, event):
status=self.status.message,
show=self.status.show)
- if config.get('enable_user_nick', True):
+ if config.get('enable_user_nick'):
self.xmpp.plugin['xep_0172'].publish_nick(nick=self.own_nick, callback=dumb_callback, block=False)
self.xmpp.plugin['xep_0115'].update_caps()
@@ -1081,9 +1081,9 @@ def validate_ssl(self, pem):
"""
Check the server certificate using the sleekxmpp ssl_cert event
"""
- if config.get('ignore_certificate', False):
+ if config.get('ignore_certificate'):
return
- cert = config.get('certificate', '')
+ cert = config.get('certificate')
# update the cert representation when it uses the old one
if cert and not ':' in cert:
cert = ':'.join(i + j for i, j in zip(cert[::2], cert[1::2])).upper()
@@ -1147,7 +1147,7 @@ def _composing_tab_state(tab, state):
else:
return # should not happen
- show = config.get('show_composing_tabs', 'direct')
+ show = config.get('show_composing_tabs')
show = show in values
if tab.state != 'composing' and state == 'composing':
diff --git a/src/logger.py b/src/logger.py
index 53ec4311..85c7a746 100644
--- a/src/logger.py
+++ b/src/logger.py
@@ -50,7 +50,7 @@ class Logger(object):
and also log the conversations to logfiles
"""
def __init__(self):
- self.logfile = config.get('logfile', 'logs')
+ self.logfile = config.get('logfile')
self.roster_logfile = None
# a dict of 'groupchatname': file-object (opened)
self.fds = dict()
diff --git a/src/plugin_manager.py b/src/plugin_manager.py
index af87a23b..d5cb9bc1 100644
--- a/src/plugin_manager.py
+++ b/src/plugin_manager.py
@@ -325,7 +325,7 @@ class PluginManager(object):
"""
Create the plugins_conf_dir
"""
- plugins_conf_dir = config.get('plugins_conf_dir', '')
+ plugins_conf_dir = config.get('plugins_conf_dir')
if not plugins_conf_dir:
config_home = os.environ.get('XDG_CONFIG_HOME')
if not config_home:
@@ -352,7 +352,7 @@ class PluginManager(object):
"""
Set the plugins_dir on start
"""
- plugins_dir = config.get('plugins_dir', '')
+ plugins_dir = config.get('plugins_dir')
plugins_dir = plugins_dir or\
os.path.join(os.environ.get('XDG_DATA_HOME') or\
os.path.join(os.environ.get('HOME'),
diff --git a/src/roster.py b/src/roster.py
index eb898e5e..d18a41c4 100644
--- a/src/roster.py
+++ b/src/roster.py
@@ -36,10 +36,8 @@ class Roster(object):
self.contact_filter = None # A tuple(function, *args)
# function to filter contacts,
# on search, for example
- self.folded_groups = set(config.get(
- 'folded_roster_groups',
- '',
- section='var').split(':'))
+ self.folded_groups = set(config.get('folded_roster_groups',
+ section='var').split(':'))
self.groups = {}
self.contacts = {}
diff --git a/src/tabs/basetabs.py b/src/tabs/basetabs.py
index 0fde624c..2f5db40a 100644
--- a/src/tabs/basetabs.py
+++ b/src/tabs/basetabs.py
@@ -139,7 +139,7 @@ class Tab(object):
Returns 1 or 0, depending on if we are using the vertical tab list
or not.
"""
- if config.get('enable_vertical_tab_list', False):
+ if config.get('enable_vertical_tab_list'):
return 0
return 1
@@ -298,7 +298,7 @@ class Tab(object):
return False
def refresh_tab_win(self):
- if config.get('enable_vertical_tab_list', False):
+ if config.get('enable_vertical_tab_list'):
if self.left_tab_win and not self.size.core_degrade_x:
self.left_tab_win.refresh()
elif not self.size.core_degrade_y:
@@ -476,7 +476,7 @@ class ChatTab(Tab):
self.update_keys()
# Get the logs
- log_nb = config.get('load_log', 10)
+ log_nb = config.get('load_log')
logs = self.load_logs(log_nb)
if logs:
@@ -537,7 +537,7 @@ class ChatTab(Tab):
for word in txt.split():
if len(word) >= 4 and word not in words:
words.append(word)
- words.extend([word for word in config.get('words', '').split(':') if word])
+ words.extend([word for word in config.get('words').split(':') if word])
self.input.auto_completion(words, ' ', quotify=False)
def on_enter(self):
@@ -825,7 +825,7 @@ class OneToOneTab(ChatTab):
if attention or empty:
features.append(_('attention requests (/attention)'))
if (receipts or empty) \
- and config.get('request_message_receipts', True):
+ and config.get('request_message_receipts'):
features.append(_('message delivery receipts'))
if len(features) > 1:
tail = features.pop()
diff --git a/src/tabs/muctab.py b/src/tabs/muctab.py
index bd8ed312..fb89b0fa 100644
--- a/src/tabs/muctab.py
+++ b/src/tabs/muctab.py
@@ -251,7 +251,7 @@ class MucTab(ChatTab):
def completion_nick(self, the_input):
"""Completion for /nick"""
nicks = [os.environ.get('USER'),
- config.get('default_nick', ''),
+ config.get('default_nick'),
self.core.get_bookmark_nickname(self.name)]
nicks = [i for i in nicks if i]
return the_input.auto_completion(nicks, '', quotify=False)
@@ -801,7 +801,7 @@ class MucTab(ChatTab):
Resize the whole window. i.e. all its sub-windows
"""
self.need_resize = False
- if config.get("hide_user_list", False) or self.size.tab_degrade_x:
+ if config.get('hide_user_list') or self.size.tab_degrade_x:
display_user_list = False
text_width = self.width
else:
@@ -842,7 +842,7 @@ class MucTab(ChatTab):
if self.need_resize:
self.resize()
log.debug(' TAB Refresh: %s', self.__class__.__name__)
- if config.get("hide_user_list", False) or self.size.tab_degrade_x:
+ if config.get('hide_user_list') or self.size.tab_degrade_x:
display_user_list = False
else:
display_user_list = True
@@ -885,7 +885,7 @@ class MucTab(ChatTab):
for user in sorted(self.users, key=compare_users, reverse=True):
if user.nick != self.own_nick:
word_list.append(user.nick)
- after = config.get('after_completion', ',') + ' '
+ after = config.get('after_completion') + ' '
input_pos = self.input.pos
if ' ' not in self.input.get_text()[:input_pos] or (
self.input.last_completion and
@@ -893,7 +893,7 @@ class MucTab(ChatTab):
self.input.last_completion + after):
add_after = after
else:
- if not config.get('add_space_after_completion', True):
+ if not config.get('add_space_after_completion'):
add_after = ''
else:
add_after = ' '
@@ -905,7 +905,7 @@ class MucTab(ChatTab):
self.send_composing_chat_state(empty_after)
def get_nick(self):
- if not config.get('show_muc_jid', True):
+ if not config.get('show_muc_jid'):
return safeJID(self.name).user
return self.name
@@ -930,7 +930,7 @@ class MucTab(ChatTab):
def on_gain_focus(self):
self.state = 'current'
if (self.text_win.built_lines and self.text_win.built_lines[-1] is None
- and not config.get('show_useless_separator', False)):
+ and not config.get('show_useless_separator')):
self.text_win.remove_line_separator()
curses.curs_set(1)
if self.joined and config.get_by_tabname('send_chat_states',
@@ -940,7 +940,7 @@ class MucTab(ChatTab):
def on_info_win_size_changed(self):
if self.core.information_win_size >= self.height-3:
return
- if config.get("hide_user_list", False):
+ if config.get("hide_user_list"):
text_width = self.width
else:
text_width = (self.width//10)*9
@@ -1476,7 +1476,7 @@ class MucTab(ChatTab):
highlighted = True
break
if highlighted:
- beep_on = config.get('beep_on', 'highlight private').split()
+ beep_on = config.get('beep_on').split()
if 'highlight' in beep_on and 'message' not in beep_on:
if not config.get_by_tabname('disable_beep', self.name):
curses.beep()
diff --git a/src/tabs/privatetab.py b/src/tabs/privatetab.py
index f4fa10cf..4c01cd70 100644
--- a/src/tabs/privatetab.py
+++ b/src/tabs/privatetab.py
@@ -109,7 +109,7 @@ class PrivateTab(OneToOneTab):
compare_users = lambda x: x.last_talked
word_list = [user.nick for user in sorted(self.parent_muc.users, key=compare_users, reverse=True)\
if user.nick != self.own_nick]
- after = config.get('after_completion', ',')+" "
+ after = config.get('after_completion') + ' '
input_pos = self.input.pos
if ' ' not in self.input.get_text()[:input_pos] or (self.input.last_completion and\
self.input.get_text()[:input_pos] == self.input.last_completion + after):
diff --git a/src/tabs/rostertab.py b/src/tabs/rostertab.py
index 3d01046b..26f429d0 100644
--- a/src/tabs/rostertab.py
+++ b/src/tabs/rostertab.py
@@ -349,7 +349,7 @@ class RosterInfoTab(Tab):
def callback(iq):
if iq['type'] == 'result':
self.core.information('Password updated', 'Account')
- if config.get('password', ''):
+ if config.get('password'):
config.silent_set('password', arg)
else:
self.core.information('Unable to change the password', 'Account')
@@ -763,7 +763,7 @@ class RosterInfoTab(Tab):
Show or hide offline contacts
"""
option = 'roster_show_offline'
- value = config.get(option, False)
+ value = config.get(option)
success = config.silent_set(option, str(not value))
roster.modified()
if not success:
diff --git a/src/text_buffer.py b/src/text_buffer.py
index 4a41fd97..59aa96e1 100644
--- a/src/text_buffer.py
+++ b/src/text_buffer.py
@@ -64,7 +64,7 @@ class TextBuffer(object):
def __init__(self, messages_nb_limit=None):
if messages_nb_limit is None:
- messages_nb_limit = config.get('max_messages_in_memory', 2048)
+ messages_nb_limit = config.get('max_messages_in_memory')
self.messages_nb_limit = messages_nb_limit
# Message objects
self.messages = []
@@ -138,7 +138,7 @@ class TextBuffer(object):
self.messages.pop(0)
ret_val = None
- show_timestamps = config.get('show_timestamps', True)
+ show_timestamps = config.get('show_timestamps')
for window in self.windows: # make the associated windows
# build the lines from the new message
nb = window.build_new_message(msg, history=history,
diff --git a/src/theming.py b/src/theming.py
index 9820addf..dc3052f0 100755
--- a/src/theming.py
+++ b/src/theming.py
@@ -455,7 +455,7 @@ def update_themes_dir(option=None, value=None):
# import from the user-defined prefs
themes_dir = path.expanduser(
value or
- config.get('themes_dir', '') or
+ config.get('themes_dir') or
path.join(os.environ.get('XDG_DATA_HOME') or
path.join(os.environ.get('HOME'), '.local', 'share'),
'poezio', 'themes')
@@ -482,7 +482,7 @@ def update_themes_dir(option=None, value=None):
log.debug('Theme load path: %s', load_path)
def reload_theme():
- theme_name = config.get('theme', 'default')
+ theme_name = config.get('theme')
global theme
if theme_name == 'default' or not theme_name.strip():
theme = Theme()
diff --git a/src/windows/funcs.py b/src/windows/funcs.py
index 47011faf..d58d4683 100644
--- a/src/windows/funcs.py
+++ b/src/windows/funcs.py
@@ -20,7 +20,7 @@ def find_first_format_char(text, chars=None):
return pos
def truncate_nick(nick, size=None):
- size = size or config.get('max_nick_length', 25)
+ size = size or config.get('max_nick_length')
if size < 1:
size = 1
if nick and len(nick) > size:
diff --git a/src/windows/info_bar.py b/src/windows/info_bar.py
index 9917fa6a..cea4702f 100644
--- a/src/windows/info_bar.py
+++ b/src/windows/info_bar.py
@@ -25,10 +25,10 @@ class GlobalInfoBar(Win):
self._win.erase()
self.addstr(0, 0, "[", to_curses_attr(get_theme().COLOR_INFORMATION_BAR))
- create_gaps = config.get('create_gaps', False)
- show_names = config.get('show_tab_names', False)
- show_nums = config.get('show_tab_numbers', True)
- use_nicks = config.get('use_tab_nicks', True)
+ create_gaps = config.get('create_gaps')
+ show_names = config.get('show_tab_names')
+ show_nums = config.get('show_tab_numbers')
+ use_nicks = config.get('use_tab_nicks')
# ignore any remaining gap tabs if the feature is not enabled
if create_gaps:
sorted_tabs = self.core.tabs[:]
@@ -38,7 +38,7 @@ class GlobalInfoBar(Win):
for nb, tab in enumerate(sorted_tabs):
if not tab: continue
color = tab.color
- if not config.get('show_inactive_tabs', True) and\
+ if not config.get('show_inactive_tabs') and\
color is get_theme().COLOR_TAB_NORMAL:
continue
try:
@@ -72,11 +72,11 @@ class VerticalGlobalInfoBar(Win):
height, width = self._win.getmaxyx()
self._win.erase()
sorted_tabs = [tab for tab in self.core.tabs if tab]
- if not config.get('show_inactive_tabs', True):
+ if not config.get('show_inactive_tabs'):
sorted_tabs = [tab for tab in sorted_tabs if\
tab.vertical_color != get_theme().COLOR_VERTICAL_TAB_NORMAL]
nb_tabs = len(sorted_tabs)
- use_nicks = config.get('use_tab_nicks', True)
+ use_nicks = config.get('use_tab_nicks')
if nb_tabs >= height:
for y, tab in enumerate(sorted_tabs):
if tab.vertical_color == get_theme().COLOR_VERTICAL_TAB_CURRENT:
@@ -92,7 +92,7 @@ class VerticalGlobalInfoBar(Win):
for y, tab in enumerate(sorted_tabs):
color = tab.vertical_color
- if not config.get('vertical_tab_list_sort', 'desc') != 'asc':
+ if not config.get('vertical_tab_list_sort') != 'asc':
y = height - y - 1
self.addstr(y, 0, "%2d" % tab.nb,
to_curses_attr(get_theme().COLOR_VERTICAL_TAB_NUMBER))
diff --git a/src/windows/inputs.py b/src/windows/inputs.py
index db339b77..8e1673e1 100644
--- a/src/windows/inputs.py
+++ b/src/windows/inputs.py
@@ -564,7 +564,7 @@ class HistoryInput(Input):
self.current_completed = ''
self.key_func['^R'] = self.toggle_search
self.search = False
- if config.get('separate_history', False):
+ if config.get('separate_history'):
self.history = list()
def toggle_search(self):
diff --git a/src/windows/muc.py b/src/windows/muc.py
index ce296e26..cd594c4c 100644
--- a/src/windows/muc.py
+++ b/src/windows/muc.py
@@ -34,11 +34,11 @@ class UserList(Win):
def refresh(self, users):
log.debug('Refresh: %s', self.__class__.__name__)
- if config.get("hide_user_list", False):
+ if config.get('hide_user_list'):
return # do not refresh if this win is hidden.
with g_lock:
self._win.erase()
- if config.get('user_list_sort', 'desc').lower() == 'asc':
+ if config.get('user_list_sort').lower() == 'asc':
y, x = self._win.getmaxyx()
y -= 1
users = sorted(users)
@@ -56,7 +56,7 @@ class UserList(Win):
self.addstr(y, 2,
poopt.cut_by_columns(user.nick, self.width - 2),
to_curses_attr(user.color))
- if config.get('user_list_sort', 'desc').lower() == 'asc':
+ if config.get('user_list_sort').lower() == 'asc':
y -= 1
else:
y += 1
@@ -64,12 +64,12 @@ class UserList(Win):
break
# draw indicators of position in the list
if self.pos > 0:
- if config.get('user_list_sort', 'desc').lower() == 'asc':
+ if config.get('user_list_sort').lower() == 'asc':
self.draw_plus(self.height-1)
else:
self.draw_plus(0)
if self.pos + self.height < len(users):
- if config.get('user_list_sort', 'desc').lower() == 'asc':
+ if config.get('user_list_sort').lower() == 'asc':
self.draw_plus(0)
else:
self.draw_plus(self.height-1)
diff --git a/src/windows/roster_win.py b/src/windows/roster_win.py
index d5f6d958..d98f27ce 100644
--- a/src/windows/roster_win.py
+++ b/src/windows/roster_win.py
@@ -95,13 +95,13 @@ class RosterWin(Win):
# This is a search
if roster.contact_filter:
self.roster_cache = []
- sort = config.get('roster_sort', 'jid:show') or 'jid:show'
+ sort = config.get('roster_sort') or 'jid:show'
for contact in roster.get_contacts_sorted_filtered(sort):
self.roster_cache.append(contact)
else:
- show_offline = config.get('roster_show_offline', False) or roster.contact_filter
- sort = config.get('roster_sort', 'jid:show') or 'jid:show'
- group_sort = config.get('roster_group_sort', 'name') or 'name'
+ show_offline = config.get('roster_show_offline') or roster.contact_filter
+ sort = config.get('roster_sort') or 'jid:show'
+ group_sort = config.get('roster_group_sort') or 'name'
self.roster_cache = []
# build the cache
for group in roster.get_groups(group_sort):
@@ -230,7 +230,7 @@ class RosterWin(Win):
self.addstr(y, 0, ' ')
self.addstr(theme.CHAR_STATUS, to_curses_attr(color))
- show_roster_sub = config.get('show_roster_subscriptions', '')
+ show_roster_sub = config.get('show_roster_subscriptions')
self.addstr(' ')
if resource:
@@ -238,7 +238,7 @@ class RosterWin(Win):
added += 4
if contact.ask:
added += len(get_theme().CHAR_ROSTER_ASKED)
- if config.get('show_s2s_errors', True) and contact.error:
+ if config.get('show_s2s_errors') and contact.error:
added += len(get_theme().CHAR_ROSTER_ERROR)
if contact.tune:
added += len(get_theme().CHAR_ROSTER_TUNE)
@@ -251,7 +251,7 @@ class RosterWin(Win):
if show_roster_sub in ('all', 'incomplete', 'to', 'from', 'both', 'none'):
added += len(theme.char_subscription(contact.subscription, keep=show_roster_sub))
- if not config.get('show_roster_jids', True) and contact.name:
+ if not config.get('show_roster_jids') and contact.name:
display_name = '%s' % contact.name
elif contact.name and contact.name != contact.bare_jid:
display_name = '%s (%s)' % (contact.name, contact.bare_jid)
@@ -269,7 +269,7 @@ class RosterWin(Win):
self.addstr(theme.char_subscription(contact.subscription, keep=show_roster_sub), to_curses_attr(theme.COLOR_ROSTER_SUBSCRIPTION))
if contact.ask:
self.addstr(get_theme().CHAR_ROSTER_ASKED, to_curses_attr(get_theme().COLOR_IMPORTANT_TEXT))
- if config.get('show_s2s_errors', True) and contact.error:
+ if config.get('show_s2s_errors') and contact.error:
self.addstr(get_theme().CHAR_ROSTER_ERROR, to_curses_attr(get_theme().COLOR_ROSTER_ERROR))
if contact.tune:
self.addstr(get_theme().CHAR_ROSTER_TUNE, to_curses_attr(get_theme().COLOR_ROSTER_TUNE))
diff --git a/src/windows/text_win.py b/src/windows/text_win.py
index de9b0625..4c6b9a18 100644
--- a/src/windows/text_win.py
+++ b/src/windows/text_win.py
@@ -19,7 +19,7 @@ from theming import to_curses_attr, get_theme, dump_tuple
class TextWin(Win):
- def __init__(self, lines_nb_limit=config.get('max_lines_in_memory', 2048)):
+ def __init__(self, lines_nb_limit=config.get('max_lines_in_memory')):
Win.__init__(self)
self.lines_nb_limit = lines_nb_limit
self.pos = 0
@@ -265,7 +265,7 @@ class TextWin(Win):
lines = self.built_lines[-self.height:]
else:
lines = self.built_lines[-self.height-self.pos:-self.pos]
- with_timestamps = config.get("show_timestamps", True)
+ with_timestamps = config.get("show_timestamps")
with g_lock:
self._win.move(0, 0)
self._win.erase()
@@ -405,7 +405,7 @@ class TextWin(Win):
def rebuild_everything(self, room):
self.built_lines = []
- with_timestamps = config.get("show_timestamps", True)
+ with_timestamps = config.get('show_timestamps')
for message in room.messages:
self.build_new_message(message, clean=False, timestamp=with_timestamps)
if self.separator_after is message:
@@ -418,7 +418,7 @@ class TextWin(Win):
Find a message, and replace it with a new one
(instead of rebuilding everything in order to correct a message)
"""
- with_timestamps = config.get("show_timestamps", True)
+ with_timestamps = config.get('show_timestamps')
for i in range(len(self.built_lines)-1, -1, -1):
if self.built_lines[i] and self.built_lines[i].msg.identifier == old_id:
index = i