Exemplo n.º 1
0
def policy_create_option_cb(data, config_file, section, name, value):
    """Callback for creating a new policy option when the user sets one
    that doesn't exist."""
    weechat.config_new_option(config_file, section, name, 'boolean', '', '', 0,
                              0, value, value, 0, '', '', '', '', '', '')

    return weechat.WEECHAT_CONFIG_OPTION_SET_OK_CHANGED
Exemplo n.º 2
0
def init_own_config_file():
    # set up configuration options and load config file
    global CONFIG_FILE, CONFIG_SECTIONS
    CONFIG_FILE = weechat.config_new(SCRIPT_NAME, '', '')
    CONFIG_SECTIONS = {}
    CONFIG_SECTIONS['section_name'] = weechat.config_new_section(
        CONFIG_FILE, 'section_name', 0, 0, '', '', '', '', '', '', '', '', '', '')

    for option, typ, desc, default in [
            ('option_name',
             'boolean',
             'option description',
             'off'),
            ('option_name2',
             'boolean',
             'option name2 description ',
             'on'),
            ('option_name3',
             'string',
             'option name3 description',
             ''),
            ('option_name4',
             'string',
             'option name4 description',
             'set an default string here'),
        ]:
        weechat.config_new_option(
            CONFIG_FILE, CONFIG_SECTIONS['section_name'], option, typ, desc, '', 0,
            0, default, default, 0, '', '', '', '', '', '')

    weechat.config_read(CONFIG_FILE)
Exemplo n.º 3
0
	def __init__(self, filename):
		''' Initialize the configuration. '''

		self.filename         = filename
		self.config_file      = weechat.config_new(self.filename, '', '')
		self.sorting_section  = None

		self.case_sensitive   = False
		self.group_irc        = True
		self.rules            = []
		self.highest          = 0

		self.__case_sensitive = None
		self.__group_irc      = None
		self.__rules          = None

		if not self.config_file:
			log('Failed to initialize configuration file "{}".'.format(self.filename))
			return

		self.sorting_section = weechat.config_new_section(self.config_file, 'sorting', False, False, '', '', '', '', '', '', '', '', '', '')

		if not self.sorting_section:
			log('Failed to initialize section "sorting" of configuration file.')
			weechat.config_free(self.config_file)
			return

		self.__case_sensitive = weechat.config_new_option(
			self.config_file, self.sorting_section,
			'case_sensitive', 'boolean',
			'If this option is on, sorting is case sensitive.',
			'', 0, 0, 'off', 'off', 0,
			'', '', '', '', '', ''
		)

		self.__group_irc = weechat.config_new_option(
			self.config_file, self.sorting_section,
			'group_irc', 'boolean',
			'If this option is on, the script pretends that IRC channel/private buffers are renamed to "irc.server.{network}.{channel}" rather than "irc.{network}.{channel}".' +
			'This ensures that thsee buffers are grouped with their respective server buffer.',
			'', 0, 0, 'on', 'on', 0,
			'', '', '', '', '', ''
		)

		self.__rules = weechat.config_new_option(
			self.config_file, self.sorting_section,
			'rules', 'string',
			'An ordered list of sorting rules encoded as JSON. See /help autosort for commands to manipulate these rules.',
			'', 0, 0, Config.default_rules, Config.default_rules, 0,
			'', '', '', '', '', ''
		)

		if weechat.config_read(self.config_file) != weechat.WEECHAT_RC_OK:
			log('Failed to load configuration file.')

		if weechat.config_write(self.config_file) != weechat.WEECHAT_RC_OK:
			log('Failed to write configuration file.')

		self.reload()
Exemplo n.º 4
0
def policy_create_option_cb(data, config_file, section, name, value):
    """Callback for creating a new policy option when the user sets one
    that doesn't exist."""
    weechat.config_new_option(
        config_file, section, name, 'boolean', '', '', 0, 0, value, value, 0,
        '', '', '', '', '', '')

    return weechat.WEECHAT_CONFIG_OPTION_SET_OK_CHANGED
Exemplo n.º 5
0
    def __init__(self, filename):
        ''' Initialize the configuration. '''

        self.filename = filename
        self.config_file = weechat.config_new(self.filename, '', '')
        self.sorting_section = None

        self.case_sensitive = False
        self.group_irc = True
        self.rules = []
        self.highest = 0

        self.__case_sensitive = None
        self.__group_irc = None
        self.__rules = None

        if not self.config_file:
            log('Failed to initialize configuration file "{}".'.format(
                self.filename))
            return

        self.sorting_section = weechat.config_new_section(
            self.config_file, 'sorting', False, False, '', '', '', '', '', '',
            '', '', '', '')

        if not self.sorting_section:
            log('Failed to initialize section "sorting" of configuration file.'
                )
            weechat.config_free(config_file)
            return

        self.__case_sensitive = weechat.config_new_option(
            self.config_file, self.sorting_section, 'case_sensitive',
            'boolean', 'If this option is on, sorting is case sensitive.', '',
            0, 0, 'off', 'off', 0, '', '', '', '', '', '')

        self.__group_irc = weechat.config_new_option(
            self.config_file, self.sorting_section, 'group_irc', 'boolean',
            'If this option is on, the script pretends that IRC channel/private buffers are renamed to "irc.server.{network}.{channel}" rather than "irc.{network}.{channel}".'
            +
            'This ensures that thsee buffers are grouped with their respective server buffer.',
            '', 0, 0, 'on', 'on', 0, '', '', '', '', '', '')

        self.__rules = weechat.config_new_option(
            self.config_file, self.sorting_section, 'rules', 'string',
            'An ordered list of sorting rules encoded as JSON. See /help autosort for commands to manipulate these rules.',
            '', 0, 0, Config.default_rules, Config.default_rules, 0, '', '',
            '', '', '', '')

        if weechat.config_read(self.config_file) != weechat.WEECHAT_RC_OK:
            log('Failed to load configuration file.')

        if weechat.config_write(self.config_file) != weechat.WEECHAT_RC_OK:
            log('Failed to write configuration file.')

        self.reload()
Exemplo n.º 6
0
def webex_config_init():
    """ Initialize config file: create sections and options in memory. """
    global webex_config_file, webex_config_section, webex_config_option

    # This will create webex.conf file
    webex_config_file = weechat.config_new(SCRIPT_NAME,
                                           "webex_config_reload_cb", "")
    if not webex_config_file:
        return

    # server section
    webex_config_section["server"] = weechat.config_new_section(
        webex_config_file, "server", 0, 0, "", "", "", "", "", "", "", "", "",
        "")

    webex_config_option["access_token"] = weechat.config_new_option(
        webex_config_file, webex_config_section["server"], "access_token",
        "string", "Access Token", "", 0, 0, "token", "token", 0, "", "", "",
        "", "", "")
    webex_config_option["autojoin"] = weechat.config_new_option(
        webex_config_file, webex_config_section["server"], "autojoin",
        "string", "Autojoin rooms when a new message comes in (yes/no)", "", 0,
        0, "no", "no", 0, "", "", "", "", "", "")
    webex_config_option["autojoin_last"] = weechat.config_new_option(
        webex_config_file, webex_config_section["server"], "autojoin_last",
        "integer", "Autojoin this number of rooms/chats (0 to disable)", "", 0,
        100, "0", "0", 0, "", "", "", "", "", "")
    webex_config_option["autojoin_rooms"] = weechat.config_new_option(
        webex_config_file, webex_config_section["server"], "autojoin_rooms",
        "string", "Rooms to join on startup", "", 0, 0, "", "", 0, "", "", "",
        "", "", "")
    webex_config_option["autojoin_directs"] = weechat.config_new_option(
        webex_config_file, webex_config_section["server"], "autojoin_directs",
        "string", "1:1 chats to open on startup", "", 0, 0, "", "", 0, "", "",
        "", "", "", "")
    webex_config_option["default_domain"] = weechat.config_new_option(
        webex_config_file, webex_config_section["server"], "default_domain",
        "string", "Default domain for emails.", "", 0, 0, "", "", 0, "", "",
        "", "", "", "")
    webex_config_option["node_bin_path"] = weechat.config_new_option(
        webex_config_file, webex_config_section["server"], "node_bin_path",
        "string", "The path to 'node' binary", "", 0, 0, "/usr/local/bin/node",
        "/usr/local/bin/node", 0, "", "", "", "", "", "")
    webex_config_option["websocket_proxy_app"] = weechat.config_new_option(
        webex_config_file, webex_config_section["server"],
        "websocket_proxy_app", "string",
        "The path to websocket proxy application 'app.js'", "", 0, 0,
        "/opt/hookbuster/app.js", "/opt/hookbuster/app.js", 0, "", "", "", "",
        "", "")
    webex_config_option["port"] = weechat.config_new_option(
        webex_config_file, webex_config_section["server"], "port", "integer",
        "The port used to create the socket (for incoming message using websocket)",
        "", 1, 65535, "8080", "8080", 0, "", "", "", "", "", "")
    webex_config_option["debug"] = weechat.config_new_option(
        webex_config_file, webex_config_section["server"], "debug", "string",
        "debug mode (yes/no)", "", 0, 0, "no", "no", 0, "", "", "", "", "", "")
Exemplo n.º 7
0
def fish_config_init():
    global fish_config_file, fish_config_section, fish_config_option

    fish_config_file = weechat.config_new(CONFIG_FILE_NAME,
                                          "fish_config_reload_cb", "")
    if not fish_config_file:
        return

    # look
    fish_config_section["look"] = weechat.config_new_section(
        fish_config_file, "look", 0, 0, "", "", "", "", "", "", "", "", "", "")
    if not fish_config_section["look"]:
        weechat.config_free(fish_config_file)
        return

    fish_config_option["announce"] = weechat.config_new_option(
        fish_config_file, fish_config_section["look"], "announce", "boolean",
        "annouce if messages are being encrypted or not", "", 0, 0, "on", "on",
        0, "", "", "", "", "", "")
    fish_config_option["marker"] = weechat.config_new_option(
        fish_config_file, fish_config_section["look"], "marker", "string",
        "marker for important FiSH messages", "", 0, 0, "O<", "O<", 0, "", "",
        "", "", "", "")

    fish_config_option["mark_position"] = weechat.config_new_option(
        fish_config_file, fish_config_section["look"], "mark_position",
        "integer",
        "put marker for encrypted INCOMING messages at start or end",
        "off|begin|end", 0, 2, "off", "off", 0, "", "", "", "", "", "")

    fish_config_option["mark_encrypted"] = weechat.config_new_option(
        fish_config_file, fish_config_section["look"], "mark_encrypted",
        "string", "marker for encrypted INCOMING messages", "", 0, 0, "*", "*",
        0, "", "", "", "", "", "")

    # color
    fish_config_section["color"] = weechat.config_new_section(
        fish_config_file, "color", 0, 0, "", "", "", "", "", "", "", "", "",
        "")
    if not fish_config_section["color"]:
        weechat.config_free(fish_config_file)
        return

    fish_config_option["alert"] = weechat.config_new_option(
        fish_config_file, fish_config_section["color"], "alert", "color",
        "color for important FiSH message markers", "", 0, 0, "lightblue",
        "lightblue", 0, "", "", "", "", "", "")

    # keys
    fish_config_section["keys"] = weechat.config_new_section(
        fish_config_file, "keys", 0, 0, "fish_config_keys_read_cb", "",
        "fish_config_keys_write_cb", "", "", "", "", "", "", "")
    if not fish_config_section["keys"]:
        weechat.config_free(fish_config_file)
        return
Exemplo n.º 8
0
def fish_config_init():
    global fish_config_file, fish_config_section, fish_config_option

    fish_config_file = weechat.config_new(CONFIG_FILE_NAME,
            "fish_config_reload_cb", "")
    if not fish_config_file:
        return

    # look
    fish_config_section["look"] = weechat.config_new_section(fish_config_file,
            "look", 0, 0, "", "", "", "", "", "", "", "", "", "")
    if not fish_config_section["look"]:
        weechat.config_free(fish_config_file)
        return

    fish_config_option["announce"] = weechat.config_new_option(
            fish_config_file, fish_config_section["look"], "announce",
            "boolean", "annouce if messages are being encrypted or not", "", 0,
            0, "on", "on", 0, "", "", "", "", "", "")
    fish_config_option["marker"] = weechat.config_new_option(
            fish_config_file, fish_config_section["look"], "marker",
            "string", "marker for important FiSH messages", "", 0, 0,
            "O<", "O<", 0, "", "", "", "", "", "")

    fish_config_option["mark_position"] = weechat.config_new_option(
            fish_config_file, fish_config_section["look"], "mark_position",
            "integer", "put marker for encrypted INCOMING messages at start or end", "off|begin|end",
            0,2, "off", "off", 0, "", "", "", "", "", "")

    fish_config_option["mark_encrypted"] = weechat.config_new_option(
            fish_config_file, fish_config_section["look"], "mark_encrypted",
            "string", "marker for encrypted INCOMING messages", "", 0, 0,
            "*", "*", 0, "", "", "", "", "", "")

    # color
    fish_config_section["color"] = weechat.config_new_section(fish_config_file,
            "color", 0, 0, "", "", "", "", "", "", "", "", "", "")
    if not fish_config_section["color"]:
        weechat.config_free(fish_config_file)
        return

    fish_config_option["alert"] = weechat.config_new_option(
            fish_config_file, fish_config_section["color"], "alert",
            "color", "color for important FiSH message markers", "", 0, 0,
            "lightblue", "lightblue", 0, "", "", "", "", "", "")

    # keys
    fish_config_section["keys"] = weechat.config_new_section(fish_config_file,
            "keys", 0, 0,
            "fish_config_keys_read_cb", "",
            "fish_config_keys_write_cb", "", "",
            "", "", "", "", "")
    if not fish_config_section["keys"]:
        weechat.config_free(fish_config_file)
        return
Exemplo n.º 9
0
def theme_config_init():
    """Initialization of configuration file. Sections: ???."""
    global theme_config_file, theme_config_option
    theme_config_file = weechat.config_new(THEME_CONFIG_FILE_NAME,
                                           'theme_config_reload_cb', '')
    if not theme_config_file:
        return
    
    # section "color"
    section_color = weechat.config_new_section(
        theme_config_file, 'color', 0, 0, '', '', '', '', '', '', '', '', '', '')
    if not section_color:
        weechat.config_free(theme_config_file)
        return
    theme_config_option['color_script'] = weechat.config_new_option(
        theme_config_file, section_color,
        'script', 'color', 'Color for script names', '', 0, 0,
        'cyan', 'cyan', 0, '', '', '', '', '', '')
    theme_config_option['color_installed'] = weechat.config_new_option(
        theme_config_file, section_color,
        'installed', 'color', 'Color for "installed" indicator', '', 0, 0,
        'yellow', 'yellow', 0, '', '', '', '', '', '')
    theme_config_option['color_running'] = weechat.config_new_option(
        theme_config_file, section_color,
        'running', 'color', 'Color for "running" indicator', '', 0, 0,
        'lightgreen', 'lightgreen', 0, '', '', '', '', '', '')
    theme_config_option['color_obsolete'] = weechat.config_new_option(
        theme_config_file, section_color,
        'obsolete', 'color', 'Color for "obsolete" indicator', '', 0, 0,
        'lightmagenta', 'lightmagenta', 0, '', '', '', '', '', '')
    theme_config_option['color_unknown'] = weechat.config_new_option(
        theme_config_file, section_color,
        'unknown', 'color', 'Color for "unknown status" indicator', '', 0, 0,
        'lightred', 'lightred', 0, '', '', '', '', '', '')
    theme_config_option['color_language'] = weechat.config_new_option(
        theme_config_file, section_color,
        'language', 'color', 'Color for language names', '', 0, 0,
        'lightblue', 'lightblue', 0, '', '', '', '', '', '')
    
    # section "themes"
    section_themes = weechat.config_new_section(
        theme_config_file, 'themes', 0, 0, '', '', '', '', '', '', '', '', '', '')
    if not section_themes:
        weechat.config_free(theme_config_file)
        return
    theme_config_option['themes_url'] = weechat.config_new_option(
        theme_config_file, section_themes,
        'url', 'string', 'URL for file with list of themes', '', 0, 0,
        'http://www.weechat.org/files/themes.json.gz',
        'http://www.weechat.org/files/themes.json.gz', 0, '', '', '', '', '', '')
    theme_config_option['themes_cache_expire'] = weechat.config_new_option(
        theme_config_file, section_themes,
        'cache_expire', 'integer', 'Local cache expiration time, in minutes '
        '(-1 = never expires, 0 = always expires)', '',
        -1, 60*24*365, '60', '60', 0, '', '', '', '', '', '')
    theme_config_option['themes_dir'] = weechat.config_new_option(
        theme_config_file, section_themes,
        'dir', 'string', 'Local directory for themes', '', 0, 0,
        '%h/themes', '%h/themes', 0, '', '', '', '', '', '')
Exemplo n.º 10
0
def initialize_config(name):
    global config
    config = {}
    global config_file
    config_file = weechat.config_new(name, 'my_config_reload_cb', '')
    global config_values
    config_values = {}
    global config_keys
    config_keys = {
            'strings' : ['url', 'streams', 'stream_options', 'format']
            #'integers' : ['time_delay']
            }
    # Available colors
    global colors
    colors = ['white' , 'black', 'blue', 'green', 'lighred', 'red',
            'magenta', 'brown', 'yellow', 'lightgreen', 'cyan',
            'lightcyan', 'lightblue', 'lightmagenta', 'darkgray', 'gray']

    if not config_file:
        return
    section = weechat.config_new_section(config_file, 'config', 0,0, '', '', '', '', '', '', '', '', '', '')
    config['url'] = weechat.config_new_option(config_file, section,
            'icecast_json_url', 'string', 'http directory for /status-json.xsl',
            '', 0, 0,
            'http://icecast.nashgul.com.es/status-json.xsl', 'http://icecast.nashgul.com.es/status-json.xsl', 1,
            '', '',
            'load_str_vars_cb', '',
            '', '')
    config['streams'] = weechat.config_new_option(config_file, section,
            'streams', 'string', 'mounts to show (without slash and separated by commas)',
            '', 0, 0,
            'nashgul', 'nashgul', 1,
            'check_mounts_cb', '',
            'load_str_vars_cb', '',
            '', '')
    config['stream_options'] = weechat.config_new_option(config_file, section,
            'stream_options', 'string', 'stream options to show',
            '', 0, 0,
            'url,artist,title,listeners', 'url,artist,title,listeners', 1,
            '', '',
            'load_str_vars_cb', '',
            '', '')
    config['format'] = weechat.config_new_option(config_file, section,
            'output_format', 'string', 'Output string format (%s: attribute, %\'color\'; i.e.: Now playing on %red%s: %blue%s - %s - %s)',
            '', 0, 0,
            '%redAhora suena en %cyan%s%yellow: %lightblue%s %yellow- %lightblue%s %yellow( %magentaOyentes%yellow: %lightblue%s %yellow)', '%lightredAhora suena en %cyan%s%yellow: %lightblue%s %yellow- %lightblue%s %yellow( %magentaOyentes%yellow: %lightblue%s %yellow)', 1,
            '', '',
            'load_str_vars_cb', '',
            '', '')
Exemplo n.º 11
0
def bas_config_init():
    """
    Initialization of configuration file.
    Sections: buffer.
    """
    global bas_config_file, bas_options
    bas_config_file = weechat.config_new(CONFIG_FILE_NAME,
                                         "bas_config_reload_cb", "")
    if bas_config_file == "":
        return

    # section "look"
    section_look = weechat.config_new_section(
        bas_config_file, "look", 0, 0, "", "", "", "", "", "", "", "", "", "")
    if not section_look:
        weechat.config_free(bas_config_file)
        return

    # options in section "look"
    bas_options["look_timer"] = weechat.config_new_option(
        bas_config_file, section_look, "timer", "integer",
        "Timer used to delay the set of properties (in milliseconds, "
        "0 = don't use a timer)",
        "", 0, 2147483647, "1", "1", 0, "", "", "", "", "", "")

    # section "buffer"
    section_buffer = weechat.config_new_section(
        bas_config_file, "buffer", 1, 1, "", "", "", "", "", "",
        "bas_config_buffer_create_option_cb", "", "", "")
    if not section_buffer:
        weechat.config_free(bas_config_file)
        return
Exemplo n.º 12
0
def bas_config_init():
    """
    Initialization of configuration file.
    Sections: buffer.
    """
    global bas_config_file, bas_options
    bas_config_file = weechat.config_new(CONFIG_FILE_NAME,
                                         "bas_config_reload_cb", "")
    if bas_config_file == "":
        return

    # section "look"
    section_look = weechat.config_new_section(bas_config_file, "look", 0, 0,
                                              "", "", "", "", "", "", "", "",
                                              "", "")
    if not section_look:
        weechat.config_free(bas_config_file)
        return

    # options in section "look"
    bas_options["look_timer"] = weechat.config_new_option(
        bas_config_file, section_look, "timer", "integer",
        "Timer used to delay the set of properties (in milliseconds, "
        "0 = don't use a timer)", "", 0, 2147483647, "1", "1", 0, "", "", "",
        "", "", "")

    # section "buffer"
    section_buffer = weechat.config_new_section(
        bas_config_file, "buffer", 1, 1, "", "", "", "", "", "",
        "bas_config_buffer_create_option_cb", "", "", "")
    if not section_buffer:
        weechat.config_free(bas_config_file)
        return
Exemplo n.º 13
0
def keys_create_option_cb(data, config_file, section, option, value):
    if not keys_check_option_cb('', option, value):
        weechat.prnt('',
                     "WeeSodium keys must be stored using WeeChat's secured "
                     "data storage. See /help secure for info on this.")
        return weechat.WEECHAT_CONFIG_OPTION_SET_ERROR

    option_split = option.split('.')
    if len(option_split) != 2:
        weechat.prnt('',
                     "Both a server and a channel are required to be entered "
                     "as the key for the config option. For example: "
                     "/set weesodium.keys.example.#weesodium "
                     "${sec.data.wskey}")
        return weechat.WEECHAT_CONFIG_OPTION_SET_ERROR

    weeopt = weechat.config_new_option(config_file, section, option, 'string',
                                       'key', '', 0, 0, '', value, 0,
                                       'keys_check_option_cb', '', '', '',
                                       '', '')
    if not weeopt:
        return weechat.WEECHAT_CONFIG_OPTION_SET_ERROR

    option_split = option.split('.')
    if len(option_split) == 2 and value.startswith('${sec.data.'):
        channel_key = weechat.string_eval_expression(value, {}, {}, {})
        channel_data[option] = WeeSodiumChannel(channel_key)

    return weechat.WEECHAT_CONFIG_OPTION_SET_OK_CHANGED
Exemplo n.º 14
0
def fish_config_keys_read_cb(data, config_file, section_name, option_name,
                             value):
    global fish_keys

    option = weechat.config_new_option(
        config_file,
        section_name,
        option_name,
        "string",
        "key",
        "",
        0,
        0,
        "",
        value,
        0,
        "",
        "",
        "",
        "",
        "",
        "",
    )
    if not option:
        return weechat.WEECHAT_CONFIG_OPTION_SET_ERROR

    fish_keys[option_name] = value

    return weechat.WEECHAT_CONFIG_OPTION_SET_OK_CHANGED
Exemplo n.º 15
0
def theme_config_init():
    """Initialization of configuration file. Sections: color, themes."""
    global theme_cfg_file, theme_cfg
    theme_cfg_file = weechat.config_new(THEME_CONFIG_FILENAME,
                                        'theme_config_reload_cb', '')

    # section "color"
    section = weechat.config_new_section(
        theme_cfg_file, 'color', 0, 0,
        '', '', '', '', '', '', '', '', '', '')
    theme_cfg['color_script'] = weechat.config_new_option(
        theme_cfg_file, section, 'script', 'color',
        'Color for script names', '', 0, 0,
        'cyan', 'cyan', 0, '', '', '', '', '', '')
    theme_cfg['color_installed'] = weechat.config_new_option(
        theme_cfg_file, section, 'installed', 'color',
        'Color for "installed" indicator', '', 0, 0,
        'yellow', 'yellow', 0, '', '', '', '', '', '')
    theme_cfg['color_running'] = weechat.config_new_option(
        theme_cfg_file, section, 'running', 'color',
        'Color for "running" indicator', '', 0, 0,
        'lightgreen', 'lightgreen', 0, '', '', '', '', '', '')
    theme_cfg['color_obsolete'] = weechat.config_new_option(
        theme_cfg_file, section, 'obsolete', 'color',
        'Color for "obsolete" indicator', '', 0, 0,
        'lightmagenta', 'lightmagenta', 0, '', '', '', '', '', '')
    theme_cfg['color_unknown'] = weechat.config_new_option(
        theme_cfg_file, section, 'unknown', 'color',
        'Color for "unknown status" indicator', '', 0, 0,
        'lightred', 'lightred', 0, '', '', '', '', '', '')
    theme_cfg['color_language'] = weechat.config_new_option(
        theme_cfg_file, section, 'language', 'color',
        'Color for language names', '', 0, 0,
        'lightblue', 'lightblue', 0, '', '', '', '', '', '')

    # section "themes"
    section = weechat.config_new_section(
        theme_cfg_file, 'themes', 0, 0,
        '', '', '', '', '', '', '', '', '', '')
    theme_cfg['themes_url'] = weechat.config_new_option(
        theme_cfg_file, section,
        'url', 'string', 'URL for file with themes (.tar.bz2 file)', '', 0, 0,
        THEME_URL, THEME_URL, 0, '', '', '', '', '', '')
    theme_cfg['themes_cache_expire'] = weechat.config_new_option(
        theme_cfg_file, section,
        'cache_expire', 'integer', 'Local cache expiration time, in minutes '
        '(-1 = never expires, 0 = always expires)', '',
        -1, 60 * 24 * 365, '60', '60', 0, '', '', '', '', '', '')
    theme_cfg['themes_dir'] = weechat.config_new_option(
        theme_cfg_file, section,
        'dir', 'string', 'Local directory for themes', '', 0, 0,
        '%h/themes', '%h/themes', 0, '', '', '', '', '', '')
Exemplo n.º 16
0
def initialize_config(name):
    global config
    config = {}
    global config_file
    config_file = weechat.config_new(name, 'my_config_reload_cb', '')
    global config_values
    config_values = {}
    global config_keys
    config_keys = {
        'strings': ['url', 'streams', 'stream_options', 'format']
        #'integers' : ['time_delay']
    }
    # Available colors
    global colors
    colors = [
        'white', 'black', 'blue', 'green', 'lighred', 'red', 'magenta',
        'brown', 'yellow', 'lightgreen', 'cyan', 'lightcyan', 'lightblue',
        'lightmagenta', 'darkgray', 'gray'
    ]

    if not config_file:
        return
    section = weechat.config_new_section(config_file, 'config', 0, 0, '', '',
                                         '', '', '', '', '', '', '', '')
    config['url'] = weechat.config_new_option(
        config_file, section, 'icecast_json_url', 'string',
        'http directory for /status-json.xsl', '', 0, 0,
        'http://icecast.nashgul.com.es/status-json.xsl',
        'http://icecast.nashgul.com.es/status-json.xsl', 1, '', '',
        'load_str_vars_cb', '', '', '')
    config['streams'] = weechat.config_new_option(
        config_file, section, 'streams', 'string',
        'mounts to show (without slash and separated by commas)', '', 0, 0,
        'nashgul', 'nashgul', 1, 'check_mounts_cb', '', 'load_str_vars_cb', '',
        '', '')
    config['stream_options'] = weechat.config_new_option(
        config_file, section, 'stream_options', 'string',
        'stream options to show', '', 0, 0, 'url,artist,title,listeners',
        'url,artist,title,listeners', 1, '', '', 'load_str_vars_cb', '', '',
        '')
    config['format'] = weechat.config_new_option(
        config_file, section, 'output_format', 'string',
        'Output string format (%s: attribute, %\'color\'; i.e.: Now playing on %red%s: %blue%s - %s - %s)',
        '', 0, 0,
        '%redAhora suena en %cyan%s%yellow: %lightblue%s %yellow- %lightblue%s %yellow( %magentaOyentes%yellow: %lightblue%s %yellow)',
        '%lightredAhora suena en %cyan%s%yellow: %lightblue%s %yellow- %lightblue%s %yellow( %magentaOyentes%yellow: %lightblue%s %yellow)',
        1, '', '', 'load_str_vars_cb', '', '', '')
Exemplo n.º 17
0
 def __init__(self) :
     global weeNS_server_opt, weeNS_config_file, weeNS_config_server_section
     self.buffer = None
     self.hook_fd = None
     self.socket = None
     self.netbuffer = ''
     self.chats = []
     self.contacts = {}
     self.options = {
         'host'     : weechat.config_new_option(weeNS_config_file, weeNS_config_server_section,
                                                'host', 'string', 'Server Host (default: ns-server.epita.fr)', '', 0, 0,
                                                'ns-server.epita.fr', 'ns-server.epita.fr', 0, '', '', '', '', '', ''),
         'port'     : weechat.config_new_option(weeNS_config_file, weeNS_config_server_section,
                                                'port', 'string', 'Server Port (default: 4242)', '', 0, 0,
                                                '4242', '4242', 0, '', '', '', '', '', ''),
         'login'    : weechat.config_new_option(weeNS_config_file, weeNS_config_server_section,
                                                'login', 'string', 'User login (ie: login_x)', '', 0, 0,
                                                'login_x', 'login_x', 0, '', '', '', '', '', ''),
         'password' : weechat.config_new_option(weeNS_config_file, weeNS_config_server_section,
                                                'password', 'string', 'User password (ie: your SOCKS password)', '', 0, 0,
                                                'xxxxxx', 'xxxxxx', 0, '', '', '', '', '', ''),
         'location' : weechat.config_new_option(weeNS_config_file, weeNS_config_server_section,
                                                'location', 'string', 'User location (ie: at home)', '', 0, 0,
                                                '-', '-', 0, '', '', '', '', '', ''),
         'data'     : weechat.config_new_option(weeNS_config_file, weeNS_config_server_section,
                                                'data', 'string', 'User data (ie: j\'aime les chips)', '', 0, 0,
                                                '-', '-', 0, '', '', '', '', '', ''),
         'contacts' : weechat.config_new_option(weeNS_config_file, weeNS_config_server_section,
                                                'contacts', 'string', 'Comma separated login list (ie: sb,rn)', '', 0, 0,
                                                '', '', 0, '', '', '', '', '', '')}
Exemplo n.º 18
0
    def setup_config_file(self):
        """Initialize the configuration."""
        config_file = weechat.config_new(
            self._config_name,
            self._reload_cb,
            self._reload_cb_data)

        if not config_file:
            return None

        for section in SCRIPT_CONFIG:
            config_section = weechat.config_new_section(
                config_file,
                section,
                0, 0, "", "", "", "", "", "", "", "", "", ""
            )

            if not config_section:
                weechat.config_free(config_file)
                return None

            for option_name, props in SCRIPT_CONFIG[section].items():
                weechat.config_new_option(
                    config_file,
                    config_section,
                    option_name,
                    props['type'],
                    props['desc'],
                    props['string_values'],
                    props['min'],
                    props['max'],
                    props['default'],
                    props['default'],
                    0,
                    props['check_cb'],
                    "",
                    props['change_cb'],
                    props['change_data'],
                    props['delete_cb'],
                    ""
                )

        return config_file
Exemplo n.º 19
0
def theme_config_init():
    """Initialization of configuration file. Sections: color, themes."""
    global theme_cfg_file, theme_cfg
    theme_cfg_file = weechat.config_new(THEME_CONFIG_FILENAME,
                                        'theme_config_reload_cb', '')

    # section "color"
    section = weechat.config_new_section(theme_cfg_file, 'color', 0, 0, '', '',
                                         '', '', '', '', '', '', '', '')
    theme_cfg['color_script'] = weechat.config_new_option(
        theme_cfg_file, section, 'script', 'color', 'Color for script names',
        '', 0, 0, 'cyan', 'cyan', 0, '', '', '', '', '', '')
    theme_cfg['color_installed'] = weechat.config_new_option(
        theme_cfg_file, section, 'installed', 'color',
        'Color for "installed" indicator', '', 0, 0, 'yellow', 'yellow', 0, '',
        '', '', '', '', '')
    theme_cfg['color_running'] = weechat.config_new_option(
        theme_cfg_file, section, 'running', 'color',
        'Color for "running" indicator', '', 0, 0, 'lightgreen', 'lightgreen',
        0, '', '', '', '', '', '')
    theme_cfg['color_obsolete'] = weechat.config_new_option(
        theme_cfg_file, section, 'obsolete', 'color',
        'Color for "obsolete" indicator', '', 0, 0, 'lightmagenta',
        'lightmagenta', 0, '', '', '', '', '', '')
    theme_cfg['color_unknown'] = weechat.config_new_option(
        theme_cfg_file, section, 'unknown', 'color',
        'Color for "unknown status" indicator', '', 0, 0, 'lightred',
        'lightred', 0, '', '', '', '', '', '')
    theme_cfg['color_language'] = weechat.config_new_option(
        theme_cfg_file, section, 'language', 'color',
        'Color for language names', '', 0, 0, 'lightblue', 'lightblue', 0, '',
        '', '', '', '', '')

    # section "themes"
    section = weechat.config_new_section(theme_cfg_file, 'themes', 0, 0, '',
                                         '', '', '', '', '', '', '', '', '')
    theme_cfg['themes_url'] = weechat.config_new_option(
        theme_cfg_file, section, 'url', 'string',
        'URL for file with themes (.tar.bz2 file)', '', 0, 0, THEME_URL,
        THEME_URL, 0, '', '', '', '', '', '')
    theme_cfg['themes_cache_expire'] = weechat.config_new_option(
        theme_cfg_file, section, 'cache_expire', 'integer',
        'Local cache expiration time, in minutes '
        '(-1 = never expires, 0 = always expires)', '', -1, 60 * 24 * 365,
        '60', '60', 0, '', '', '', '', '', '')
    theme_cfg['themes_dir'] = weechat.config_new_option(
        theme_cfg_file, section, 'dir', 'string', 'Local directory for themes',
        '', 0, 0, '%h/themes', '%h/themes', 0, '', '', '', '', '', '')
Exemplo n.º 20
0
def multirpg_config_init():
    global multirpg_config_file, multirpg_config_option
    multirpg_config_file = weechat.config_new(CONFIG_FILE_NAME, "", "")
    if multirpg_config_file == "":
        return
    section_multirpg = weechat.config_new_section(multirpg_config_file,
                                                  "multirpg", 0, 0, "", "", "",
                                                  "", "", "", "", "", "", "")
    if section_multirpg == "":
        weechat.config_free(multirpg_config_file)
        return
    multirpg_config_option["mynick"] = weechat.config_new_option(
        multirpg_config_file, section_multirpg, "mynick", "string",
        "multirpg nickname", "", 0, 0, "", "", 0, "", "", "", "", "", "")
    multirpg_config_option["myclass"] = weechat.config_new_option(
        multirpg_config_file, section_multirpg, "myclass", "string",
        "multirpg class", "", 0, 0, "", "", 0, "", "", "", "", "", "")
    multirpg_config_option["ircserver"] = weechat.config_new_option(
        multirpg_config_file, section_multirpg, "ircserver", "string",
        "multirpg ircserver", "", 0, 0, "", "", 0, "", "", "", "", "", "")
Exemplo n.º 21
0
def bas_config_buffer_create_option_cb(data, config_file, section, option_name, value):
    option = weechat.config_search_option(config_file, section, option_name)
    if option:
        return weechat.config_option_set (option, value, 1)
    else:
        option = weechat.config_new_option (config_file, section, option_name, "string",
                                            "", "", 0, 0, "", value, 0,
                                            "", "", "", "", "", "")
        if not option:
            return weechat.WEECHAT_CONFIG_OPTION_SET_ERROR
        return weechat.WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE
Exemplo n.º 22
0
def bas_config_buffer_create_option_cb(data, config_file, section, option_name, value):
    option = weechat.config_search_option(config_file, section, option_name)
    if option:
        return weechat.config_option_set(option, value, 1)
    else:
        option = weechat.config_new_option(
            config_file, section, option_name, "string", "", "", 0, 0, "", value, 0, "", "", "", "", "", ""
        )
        if not option:
            return weechat.WEECHAT_CONFIG_OPTION_SET_ERROR
        return weechat.WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE
Exemplo n.º 23
0
def fish_config_keys_read_cb(data, config_file, section_name, option_name,
        value):
    global fish_keys

    option = weechat.config_new_option(config_file, section_name, option_name,
            "string", "key", "", 0, 0, "", value, 0, "", "", "", "", "", "")
    if not option:
        return weechat.WEECHAT_CONFIG_OPTION_SET_ERROR

    fish_keys[option_name] = value

    return weechat.WEECHAT_CONFIG_OPTION_SET_OK_CHANGED
Exemplo n.º 24
0
def init_own_config_file():
    # set up configuration options and load config file
    global CONFIG_FILE, CONFIG_SECTIONS
    CONFIG_FILE = weechat.config_new(SCRIPT_NAME, '', '')
    CONFIG_SECTIONS = {}
    CONFIG_SECTIONS['section_name'] = weechat.config_new_section(
        CONFIG_FILE, 'section_name', 0, 0, '', '', '', '', '', '', '', '', '',
        '')

    for option, typ, desc, default in [
        ('option_name', 'boolean', 'option description', 'off'),
        ('option_name2', 'boolean', 'option name2 description ', 'on'),
        ('option_name3', 'string', 'option name3 description', ''),
        ('option_name4', 'string', 'option name4 description',
         'set an default string here'),
    ]:
        weechat.config_new_option(CONFIG_FILE, CONFIG_SECTIONS['section_name'],
                                  option, typ, desc, '', 0, 0, default,
                                  default, 0, '', '', '', '', '', '')

    weechat.config_read(CONFIG_FILE)
Exemplo n.º 25
0
def colorize_config_init():
    '''
    Initialization of configuration file.
    Sections: look.
    '''
    global colorize_config_file, colorize_config_option
    colorize_config_file = weechat.config_new(CONFIG_FILE_NAME,
                                              "", "")
    if colorize_config_file == "":
        return

    # section "look"
    section_look = weechat.config_new_section(
        colorize_config_file, "look", 0, 0, "", "", "", "", "", "", "", "", "", "")
    if section_look == "":
        weechat.config_free(colorize_config_file)
        return
    colorize_config_option["blacklist_channels"] = weechat.config_new_option(
        colorize_config_file, section_look, "blacklist_channels",
        "string", "Comma separated list of channels", "", 0, 0,
        "", "", 0, "", "", "", "", "", "")
    colorize_config_option["blacklist_nicks"] = weechat.config_new_option(
        colorize_config_file, section_look, "blacklist_nicks",
        "string", "Comma separated list of nicks", "", 0, 0,
        "so,root", "so,root", 0, "", "", "", "", "", "")
    colorize_config_option["min_nick_length"] = weechat.config_new_option(
        colorize_config_file, section_look, "min_nick_length",
        "integer", "Minimum length nick to colorize", "",
        2, 20, "", "", 0, "", "", "", "", "", "")
    colorize_config_option["colorize_input"] = weechat.config_new_option(
        colorize_config_file, section_look, "colorize_input",
        "boolean", "Whether to colorize input", "", 0,
        0, "off", "off", 0, "", "", "", "", "", "")
    colorize_config_option["ignore_tags"] = weechat.config_new_option(
        colorize_config_file, section_look, "ignore_tags",
        "string", "Comma separated list of tags to ignore; i.e. irc_join,irc_part,irc_quit", "", 0, 0,
        "", "", 0, "", "", "", "", "", "")
    colorize_config_option["greedy_matching"] = weechat.config_new_option(
        colorize_config_file, section_look, "greedy_matching",
        "boolean", "If off, then use lazy matching instead", "", 0,
        0, "on", "on", 0, "", "", "", "", "", "")
    colorize_config_option["match_limit"] = weechat.config_new_option(
        colorize_config_file, section_look, "match_limit",
        "integer", "Fall back to lazy matching if greedy matches exceeds this number", "",
        20, 1000, "", "", 0, "", "", "", "", "", "")
    colorize_config_option["ignore_nicks_in_urls"] = weechat.config_new_option(
        colorize_config_file, section_look, "ignore_nicks_in_urls",
        "boolean", "If on, don't colorize nicks inside URLs", "", 0,
        0, "off", "off", 0, "", "", "", "", "", "")
Exemplo n.º 26
0
def jmh_config_init():
    """ Initialize config file: create sections and options in memory. """
    global jmh_config_file, jmh_config_section
    jmh_config_file = weechat.config_new("jabber_message_handler",
            "jmh_config_reload_cb", "")
    if not jmh_config_file:
        return
    # options
    jmh_config_section["options"] = weechat.config_new_section(
        jmh_config_file, "options", 0, 0, "", "", "", "", "",
        "", "", "", "", "")
    if not jmh_config_section["options"]:
        weechat.config_free(jmh_config_file)
        return
    # prototype option = weechat.config_new_option(
    #    config_file, section,
    #    name, type, description,
    #    string_values, min, max, default_value, value, null_value_allowed,
    #    callback_check_value, callback_check_value_data,
    #    callback_change, callback_change_data,
    #    callback_delete, callback_delete_data)
    jmh_config_option["enabled"] = weechat.config_new_option(
        jmh_config_file, jmh_config_section["options"],
        "enabled", "boolean", "jabber_message_handler service enabled",
        "", 0, 0, "off", "off", 0,
        "", "", "", "", "", "")
    jmh_config_option["log"] = weechat.config_new_option(
        jmh_config_file, jmh_config_section["options"],
        "log", "string", "jabber_message_handler events log file",
        "", 0, 0, "~/.weechat/logs/events", "~/.weechat/logs/events", 0,
        "", "", "", "", "", "")
    jmh_config_option["verbose"] = weechat.config_new_option(
        jmh_config_file, jmh_config_section["options"],
        "verbose", "boolean", "set verbose on/off",
        "", 0, 0, "off", "off", 0,
        "", "", "", "", "", "")
Exemplo n.º 27
0
def keys_read_option_cb(data, config_file, section, option, value):
    """Read option callback: load keys from config options"""

    weeopt = weechat.config_new_option(config_file, section, option, 'string',
                                       'key', '', 0, 0, '', value, 0,
                                       'keys_check_option_cb', '', '', '',
                                       '', '')
    if not weeopt:
        return weechat.WEECHAT_CONFIG_OPTION_SET_ERROR

    option_split = option.split('.')
    if len(option_split) == 2 and value.startswith('${sec.data.'):
        channel_key = weechat.string_eval_expression(value, {}, {}, {})
        channel_data[option] = WeeSodiumChannel(channel_key)

    return weechat.WEECHAT_CONFIG_OPTION_SET_OK_CHANGED
Exemplo n.º 28
0
def colorize_config_init():
    '''
    Initialization of configuration file.
    Sections: look.
    '''
    global colorize_config_file, colorize_config_option
    colorize_config_file = weechat.config_new(CONFIG_FILE_NAME,
                                              "colorize_config_reload_cb", "")
    if colorize_config_file == "":
        return

    # section "look"
    section_look = weechat.config_new_section(
        colorize_config_file, "look", 0, 0, "", "", "", "", "", "", "", "", "", "")
    if section_look == "":
        weechat.config_free(colorize_config_file)
        return
    colorize_config_option["blacklist_channels"] = weechat.config_new_option(
        colorize_config_file, section_look, "blacklist_channels",
        "string", "Comma separated list of channels", "", 0, 0,
        "", "", 0, "", "", "", "", "", "")
    colorize_config_option["blacklist_nicks"] = weechat.config_new_option(
        colorize_config_file, section_look, "blacklist_nicks",
        "string", "Comma separated list of nicks", "", 0, 0,
        "so,root", "so,root", 0, "", "", "", "", "", "")
    colorize_config_option["min_nick_length"] = weechat.config_new_option(
        colorize_config_file, section_look, "min_nick_length",
        "integer", "Minimum length nick to colorize", "",
        2, 20, "", "", 0, "", "", "", "", "", "")
    colorize_config_option["colorize_input"] = weechat.config_new_option(
        colorize_config_file, section_look, "colorize_input",
        "boolean", "Whether to colorize input", "", 0,
        0, "off", "off", 0, "", "", "", "", "", "")
    colorize_config_option["ignore_tags"] = weechat.config_new_option(
        colorize_config_file, section_look, "ignore_tags",
        "string", "Comma separated list of tags to ignore; i.e. irc_join,irc_part,irc_quit", "", 0, 0,
        "", "", 0, "", "", "", "", "", "")
    colorize_config_option["greedy_matching"] = weechat.config_new_option(
        colorize_config_file, section_look, "greedy_matching",
        "boolean", "If off, then use lazy matching instead", "", 0,
        0, "on", "on", 0, "", "", "", "", "", "")
    colorize_config_option["ignore_nicks_in_urls"] = weechat.config_new_option(
        colorize_config_file, section_look, "ignore_nicks_in_urls",
        "boolean", "If on, don't colorize nicks inside URLs", "", 0,
        0, "off", "off", 0, "", "", "", "", "", "")
Exemplo n.º 29
0
def config_init():
    """
    Initialization of configuration file.
    Sections: buffer.
    """
    global config_file, options
    config_file = weechat.config_new(CONFIG_FILE_NAME, "config_reload_cb", "")
    if config_file == "":
        return

    # section "buffer"
    section_buffer = weechat.config_new_section(
        config_file, "buffer", 1, 1, "", "", "", "", "", "",
        "config_buffer_create_option_cb", "", "", "")
    if not section_buffer:
        weechat.config_free(config_file)
        return
    options["favorites"] = weechat.config_new_option(
        config_file, section_buffer, "favorites", "string",
        "comma-delimited list of favorite rooms", "", 0, 0, "", "", 0, "", "",
        "", "", "", "")
Exemplo n.º 30
0
	def __init__(self, filename):
		''' Initialize the configuration. '''

		self.filename         = filename
		self.config_file      = weechat.config_new(self.filename, '', '')
		self.sorting_section  = None

		self.case_sensitive   = False
		self.group_irc        = True
		self.rules            = []
		self.replacements     = []
		self.signals          = []
		self.sort_on_config   = True

		self.__case_sensitive = None
		self.__group_irc      = None
		self.__rules          = None
		self.__replacements   = None
		self.__signals        = None
		self.__sort_on_config = None

		if not self.config_file:
			log('Failed to initialize configuration file "{0}".'.format(self.filename))
			return

		self.sorting_section = weechat.config_new_section(self.config_file, 'sorting', False, False, '', '', '', '', '', '', '', '', '', '')

		if not self.sorting_section:
			log('Failed to initialize section "sorting" of configuration file.')
			weechat.config_free(self.config_file)
			return

		self.__case_sensitive = weechat.config_new_option(
			self.config_file, self.sorting_section,
			'case_sensitive', 'boolean',
			'If this option is on, sorting is case sensitive.',
			'', 0, 0, 'off', 'off', 0,
			'', '', '', '', '', ''
		)

		self.__group_irc = weechat.config_new_option(
			self.config_file, self.sorting_section,
			'group_irc', 'boolean',
			'If this option is on, the script pretends that IRC channel/private buffers are renamed to "irc.server.{network}.{channel}" rather than "irc.{network}.{channel}".' +
			'This ensures that these buffers are grouped with their respective server buffer.',
			'', 0, 0, 'on', 'on', 0,
			'', '', '', '', '', ''
		)

		self.__rules = weechat.config_new_option(
			self.config_file, self.sorting_section,
			'rules', 'string',
			'An ordered list of sorting rules encoded as JSON. See /help autosort for commands to manipulate these rules.',
			'', 0, 0, Config.default_rules, Config.default_rules, 0,
			'', '', '', '', '', ''
		)

		self.__replacements = weechat.config_new_option(
			self.config_file, self.sorting_section,
			'replacements', 'string',
			'An ordered list of replacement patterns to use on buffer name components, encoded as JSON. See /help autosort for commands to manipulate these replacements.',
			'', 0, 0, Config.default_replacements, Config.default_replacements, 0,
			'', '', '', '', '', ''
		)

		self.__signals = weechat.config_new_option(
			self.config_file, self.sorting_section,
			'signals', 'string',
			'The signals that will cause autosort to resort your buffer list. Seperate signals with spaces.',
			'', 0, 0, Config.default_signals, Config.default_signals, 0,
			'', '', '', '', '', ''
		)

		self.__sort_on_config = weechat.config_new_option(
			self.config_file, self.sorting_section,
			'sort_on_config_change', 'boolean',
			'Decides if the buffer list should be sorted when autosort configuration changes.',
			'', 0, 0, 'on', 'on', 0,
			'', '', '', '', '', ''
		)

		if weechat.config_read(self.config_file) != weechat.WEECHAT_RC_OK:
			log('Failed to load configuration file.')

		if weechat.config_write(self.config_file) != weechat.WEECHAT_RC_OK:
			log('Failed to write configuration file.')

		self.reload()
Exemplo n.º 31
0
	def __init__(self, filename):
		''' Initialize the configuration. '''

		self.filename         = filename
		self.config_file      = weechat.config_new(self.filename, '', '')
		self.sorting_section  = None

		self.case_sensitive   = False
		self.group_irc        = True
		self.rules            = []
		self.replacements     = []
		self.signals          = []
		self.sort_on_config   = True

		self.__case_sensitive = None
		self.__group_irc      = None
		self.__rules          = None
		self.__replacements   = None
		self.__signals        = None
		self.__sort_on_config = None

		if not self.config_file:
			log('Failed to initialize configuration file "{0}".'.format(self.filename))
			return

		self.sorting_section = weechat.config_new_section(self.config_file, 'sorting', False, False, '', '', '', '', '', '', '', '', '', '')

		if not self.sorting_section:
			log('Failed to initialize section "sorting" of configuration file.')
			weechat.config_free(self.config_file)
			return

		self.__case_sensitive = weechat.config_new_option(
			self.config_file, self.sorting_section,
			'case_sensitive', 'boolean',
			'If this option is on, sorting is case sensitive.',
			'', 0, 0, 'off', 'off', 0,
			'', '', '', '', '', ''
		)

		self.__group_irc = weechat.config_new_option(
			self.config_file, self.sorting_section,
			'group_irc', 'boolean',
			'If this option is on, the script pretends that IRC channel/private buffers are renamed to "irc.server.{network}.{channel}" rather than "irc.{network}.{channel}".' +
			'This ensures that these buffers are grouped with their respective server buffer.',
			'', 0, 0, 'on', 'on', 0,
			'', '', '', '', '', ''
		)

		self.__rules = weechat.config_new_option(
			self.config_file, self.sorting_section,
			'rules', 'string',
			'An ordered list of sorting rules encoded as JSON. See /help autosort for commands to manipulate these rules.',
			'', 0, 0, Config.default_rules, Config.default_rules, 0,
			'', '', '', '', '', ''
		)

		self.__replacements = weechat.config_new_option(
			self.config_file, self.sorting_section,
			'replacements', 'string',
			'An ordered list of replacement patterns to use on buffer name components, encoded as JSON. See /help autosort for commands to manipulate these replacements.',
			'', 0, 0, Config.default_replacements, Config.default_replacements, 0,
			'', '', '', '', '', ''
		)

		self.__signals = weechat.config_new_option(
			self.config_file, self.sorting_section,
			'signals', 'string',
			'The signals that will cause autosort to resort your buffer list. Seperate signals with spaces.',
			'', 0, 0, Config.default_signals, Config.default_signals, 0,
			'', '', '', '', '', ''
		)

		self.__sort_on_config = weechat.config_new_option(
			self.config_file, self.sorting_section,
			'sort_on_config_change', 'boolean',
			'Decides if the buffer list should be sorted when autosort configuration changes.',
			'', 0, 0, 'on', 'on', 0,
			'', '', '', '', '', ''
		)

		if weechat.config_read(self.config_file) != weechat.WEECHAT_RC_OK:
			log('Failed to load configuration file.')

		if weechat.config_write(self.config_file) != weechat.WEECHAT_RC_OK:
			log('Failed to write configuration file.')

		self.reload()
Exemplo n.º 32
0
def init_config():
    """Set up configuration options and load config file."""
    global CONFIG_FILE
    CONFIG_FILE = weechat.config_new(SCRIPT_NAME, 'config_reload_cb', '')

    global CONFIG_SECTIONS
    CONFIG_SECTIONS = {}

    CONFIG_SECTIONS['general'] = weechat.config_new_section(
        CONFIG_FILE, 'general', 0, 0, '', '', '', '', '', '', '', '', '', '')

    for option, typ, desc, default in [
        ('debug', 'boolean', 'OTR script debugging', 'off'),
    ]:
        weechat.config_new_option(CONFIG_FILE, CONFIG_SECTIONS['general'],
                                  option, typ, desc, '', 0, 0, default,
                                  default, 0, '', '', '', '', '', '')

    CONFIG_SECTIONS['color'] = weechat.config_new_section(
        CONFIG_FILE, 'color', 0, 0, '', '', '', '', '', '', '', '', '', '')

    for option, desc, default, update_cb in [
        ('status.default', 'status bar default color', 'default',
         'bar_config_update_cb'),
        ('status.encrypted', 'status bar encrypted indicator color', 'green',
         'bar_config_update_cb'),
        ('status.unencrypted', 'status bar unencrypted indicator color',
         'lightred', 'bar_config_update_cb'),
        ('status.authenticated', 'status bar authenticated indicator color',
         'green', 'bar_config_update_cb'),
        ('status.unauthenticated',
         'status bar unauthenticated indicator color', 'lightred',
         'bar_config_update_cb'),
        ('status.logged', 'status bar logged indicator color', 'lightred',
         'bar_config_update_cb'),
        ('status.notlogged', 'status bar not logged indicator color', 'green',
         'bar_config_update_cb'),
    ]:
        weechat.config_new_option(CONFIG_FILE, CONFIG_SECTIONS['color'],
                                  option, 'color', desc, '', 0, 0, default,
                                  default, 0, '', '', update_cb, '', '', '')

    CONFIG_SECTIONS['look'] = weechat.config_new_section(
        CONFIG_FILE, 'look', 0, 0, '', '', '', '', '', '', '', '', '', '')

    for option, desc, default, update_cb in [
        ('bar.prefix', 'prefix for OTR status bar item', 'OTR:',
         'bar_config_update_cb'),
        ('bar.state.encrypted',
         'shown in status bar when conversation is encrypted', 'SEC',
         'bar_config_update_cb'),
        ('bar.state.unencrypted',
         'shown in status bar when conversation is not encrypted', '!SEC',
         'bar_config_update_cb'),
        ('bar.state.authenticated',
         'shown in status bar when peer is authenticated', 'AUTH',
         'bar_config_update_cb'),
        ('bar.state.unauthenticated',
         'shown in status bar when peer is not authenticated', '!AUTH',
         'bar_config_update_cb'),
        ('bar.state.logged',
         'shown in status bar when peer conversation is being logged to disk',
         'LOG', 'bar_config_update_cb'),
        ('bar.state.notlogged',
         'shown in status bar when peer conversation is not being logged to disk',
         '!LOG', 'bar_config_update_cb'),
        ('bar.state.separator', 'separator for states in the status bar', ',',
         'bar_config_update_cb'),
    ]:
        weechat.config_new_option(CONFIG_FILE, CONFIG_SECTIONS['look'], option,
                                  'string', desc, '', 0, 0, default, default,
                                  0, '', '', update_cb, '', '', '')

    CONFIG_SECTIONS['policy'] = weechat.config_new_section(
        CONFIG_FILE, 'policy', 1, 1, '', '', '', '', '', '',
        'policy_create_option_cb', '', '', '')

    for option, desc, default in [
        ('default.allow_v2', 'default allow OTR v2 policy', 'on'),
        ('default.require_encryption', 'default require encryption policy',
         'off'),
        ('default.send_tag', 'default send tag policy', 'off'),
    ]:
        weechat.config_new_option(CONFIG_FILE, CONFIG_SECTIONS['policy'],
                                  option, 'boolean', desc, '', 0, 0, default,
                                  default, 0, '', '', '', '', '', '')

    weechat.config_read(CONFIG_FILE)
Exemplo n.º 33
0
    def __init__(
            self,
            filename=CONFIG_FILE_NAME,
            mailpath=str(pathlib.Path().home().joinpath("mail", "inbox")),
    ):

        self._config_file = None
        self._section_conf = None
        self._is_read = False
        self._mail_dir = None
        self._bar_text = None
        self._log_to_weechat = None
        self._interval = None

        self._config_file = weechat.config_new(filename, "", "")
        if self._config_file == "":
            weechat.prnt(
                "",
                f"{weechat.prefix('error')} Error reading check_mail config")
            return

        self._section_conf = weechat.config_new_section(
            self._config_file, "conf", 0, 0, "", "", "", "", "", "", "", "",
            "", "")

        if self._section_conf == "":
            weechat.config_free(self._config_file)
            weechat.prnt(
                "", f"{weechat.prefix('error')} Error check_mail conf section")
            return

        # No keyword argument support =(
        self._mail_dir = weechat.config_new_option(
            self._config_file,
            self._section_conf,
            "maildir_path",
            "string",
            "Path of mail directory",
            "",
            0,
            0,
            mailpath,
            mailpath,
            0,
            "",
            "",
            "",
            "",
            "",
            "",
        )

        self._interval = weechat.config_new_option(
            self._config_file,
            self._section_conf,
            "interval",
            "integer",
            "Interval in seconds for triggering check mail",
            "",
            0,
            9999999,
            "1",
            "1",
            0,
            "",
            "",
            "",
            "",
            "",
            "",
        )

        self._bar_text = weechat.config_new_option(
            self._config_file,
            self._section_conf,
            "bar_text",
            "string",
            "Text to display",
            "",
            0,
            0,
            "MI",
            "MI",
            0,
            "",
            "",
            "",
            "",
            "",
            "",
        )

        self._log_to_weechat = weechat.config_new_option(
            self._config_file,
            self._section_conf,
            "log_to_weechat_buffer",
            "boolean",
            "Log new mails to weechat buffer",
            "",
            0,
            0,
            "on",
            "on",
            0,
            "",
            "",
            "",
            "",
            "",
            "",
        )
        self.reload()
Exemplo n.º 34
0
def wg_config_init():
    """
    Initialization of configuration file.
    Sections: color, scripts.
    """
    global wg_config_file, wg_config_option
    wg_config_file = weechat.config_new(CONFIG_FILE_NAME,
                                        "wg_config_reload_cb", "")
    if wg_config_file == "":
        return

    # section "color"
    section_color = weechat.config_new_section(
        wg_config_file, "color", 0, 0, "", "", "", "", "", "", "", "", "", "")
    if section_color == "":
        weechat.config_free(wg_config_file)
        return
    wg_config_option["color_script"] = weechat.config_new_option(
        wg_config_file, section_color,
        "script", "color", "Color for script names", "", 0, 0,
        "cyan", "cyan", 0, "", "", "", "", "", "")
    wg_config_option["color_installed"] = weechat.config_new_option(
        wg_config_file, section_color,
        "installed", "color", "Color for \"installed\" indicator", "", 0, 0,
        "yellow", "yellow", 0, "", "", "", "", "", "")
    wg_config_option["color_running"] = weechat.config_new_option(
        wg_config_file, section_color,
        "running", "color", "Color for \"running\" indicator", "", 0, 0,
        "lightgreen", "lightgreen", 0, "", "", "", "", "", "")
    wg_config_option["color_obsolete"] = weechat.config_new_option(
        wg_config_file, section_color,
        "obsolete", "color", "Color for \"obsolete\" indicator", "", 0, 0,
        "lightmagenta", "lightmagenta", 0, "", "", "", "", "", "")
    wg_config_option["color_unknown"] = weechat.config_new_option(
        wg_config_file, section_color,
        "unknown", "color", "Color for \"unknown status\" indicator", "", 0, 0,
        "lightred", "lightred", 0, "", "", "", "", "", "")
    wg_config_option["color_language"] = weechat.config_new_option(
        wg_config_file, section_color,
        "language", "color", "Color for language names", "", 0, 0,
        "lightblue", "lightblue", 0, "", "", "", "", "", "")

    # section "scripts"
    section_scripts = weechat.config_new_section(
        wg_config_file, "scripts", 0, 0, "", "", "", "", "", "", "", "", "", "")
    if section_scripts == "":
        weechat.config_free(wg_config_file)
        return
    wg_config_option["scripts_url"] = weechat.config_new_option(
        wg_config_file, section_scripts,
        "url", "string", "URL for file with list of plugins", "", 0, 0,
        "http://www.weechat.org/files/plugins.xml.gz",
        "http://www.weechat.org/files/plugins.xml.gz", 0, "", "", "", "", "", "")
    wg_config_option["scripts_dir"] = weechat.config_new_option(
        wg_config_file, section_scripts,
        "dir", "string", "Local cache directory for" + SCRIPT_NAME, "", 0, 0,
        "%h/" + SCRIPT_NAME, "%h/" + SCRIPT_NAME, 0, "", "", "", "", "", "")
    wg_config_option["scripts_cache_expire"] = weechat.config_new_option(
        wg_config_file, section_scripts,
        "cache_expire", "integer", "Local cache expiration time, in minutes "
        "(-1 = never expires, 0 = always expires)", "",
        -1, 60*24*365, "60", "60", 0, "", "", "", "", "", "")
Exemplo n.º 35
0
 def __init__(self):
     self.buffer = None
     self.hook_fd = None
     self.socket = None
     self.netbuffer = ''
     self.chats = []
     self.contacts = {}
     lastfields = (0, '', '', '', '', '', '')
     self.options = {
         'host': weechat.config_new_option(wee_ns_config_file,
                                           wee_ns_conf_serv_sect,
                                           'host', 'string',
                                           'Server host', '', 0, 0,
                                           'ns-server.epita.fr',
                                           'ns-server.epita.fr',
                                           *lastfields),
         'port': weechat.config_new_option(wee_ns_config_file,
                                           wee_ns_conf_serv_sect,
                                           'port', 'string',
                                           'Server port', '', 0, 0,
                                           '4242', '4242',
                                           *lastfields),
         'login': weechat.config_new_option(wee_ns_config_file,
                                            wee_ns_conf_serv_sect,
                                            'login', 'string',
                                            'User login (ie: login_x)',
                                            '', 0, 0, 'login_x', 'login_x',
                                            *lastfields),
         'password': weechat.config_new_option(wee_ns_config_file,
                                               wee_ns_conf_serv_sect,
                                               'password', 'string',
                                               ('User password (ie: '
                                                'your SOCKS password)'),
                                               '', 0, 0, 'xxxxxx', 'xxxxxx',
                                               *lastfields),
         'location': weechat.config_new_option(wee_ns_config_file,
                                               wee_ns_conf_serv_sect,
                                               'location', 'string',
                                               ('User location (ie: '
                                                'at home)'),
                                               '', 0, 0, '-', '-',
                                               *lastfields),
         'data': weechat.config_new_option(wee_ns_config_file,
                                           wee_ns_conf_serv_sect,
                                           'data', 'string',
                                           ('User data (ie: '
                                            'j\'aime les chips)'),
                                           '', 0, 0, '-', '-',
                                           *lastfields),
         'state': weechat.config_new_option(wee_ns_config_file,
                                            wee_ns_conf_serv_sect,
                                            'state', 'string',
                                            'User state (ie: actif)',
                                            '', 0, 0, 'actif', 'actif',
                                            *lastfields),
         'contacts': weechat.config_new_option(wee_ns_config_file,
                                               wee_ns_conf_serv_sect,
                                               'contacts', 'string',
                                               ('Comma separated login '
                                                'list (ie: sb,rn)'),
                                               '', 0, 0, '', '',
                                               *lastfields),
         'display_name': weechat.config_new_option(wee_ns_config_file,
                                                   wee_ns_conf_serv_sect,
                                                   'display_name', 'string',
                                                   ('Server display name '
                                                    'in buffer list '
                                                    '("" = host value)'),
                                                   '', 0, 0,
                                                   'Netsoul', 'Netsoul',
                                                   *lastfields),
         'reconnect_time': weechat.config_new_option(wee_ns_config_file,
                                                     wee_ns_conf_serv_sect,
                                                     'reconnect_time',
                                                     'string',
                                                     ('Time in seconds '
                                                      'between two '
                                                      'reconnection '
                                                      'attempts '
                                                      '(0 = no '
                                                      'reconnection)'),
                                                     '', 0, 0, '30', '30',
                                                     *lastfields),
     }
     self.commands_hooks = {
         'salut': self._ns_parse_salut,
         'ping': self._ns_parse_ping,
         'user_cmd': self._ns_parse_user_cmd,
     }
     self.user_cmd_hooks = {
         'msg': self._ns_parse_user_cmd_msg,
         'who': self._ns_parse_user_cmd_who,
         'login': self._ns_parse_user_cmd_login,
         'logout': self._ns_parse_user_cmd_logout,
         'state': self._ns_parse_user_cmd_state,
     }
Exemplo n.º 36
0
	def __init__(self, filename):
		''' Initialize the configuration. '''

		self.filename         = filename
		self.config_file      = weechat.config_new(self.filename, '', '')
		self.sorting_section  = None
		self.v3_section       = None

		self.case_sensitive   = False
		self.rules            = []
		self.helpers          = {}
		self.signals          = []
		self.signal_delay     = Config.default_signal_delay,
		self.sort_on_config   = True

		self.__case_sensitive = None
		self.__rules          = None
		self.__helpers        = None
		self.__signals        = None
		self.__signal_delay   = None
		self.__sort_on_config = None

		if not self.config_file:
			log('Failed to initialize configuration file "{0}".'.format(self.filename))
			return

		self.sorting_section = weechat.config_new_section(self.config_file, 'sorting', False, False, '', '', '', '', '', '', '', '', '', '')
		self.v3_section      = weechat.config_new_section(self.config_file, 'v3',      False, False, '', '', '', '', '', '', '', '', '', '')

		if not self.sorting_section:
			log('Failed to initialize section "sorting" of configuration file.')
			weechat.config_free(self.config_file)
			return

		self.__case_sensitive = weechat.config_new_option(
			self.config_file, self.sorting_section,
			'case_sensitive', 'boolean',
			'If this option is on, sorting is case sensitive.',
			'', 0, 0, 'off', 'off', 0,
			'', '', '', '', '', ''
		)

		weechat.config_new_option(
			self.config_file, self.sorting_section,
			'rules', 'string',
			'Sort rules used by autosort v2.x and below. Not used by autosort anymore.',
			'', 0, 0, '', '', 0,
			'', '', '', '', '', ''
		)

		weechat.config_new_option(
			self.config_file, self.sorting_section,
			'replacements', 'string',
			'Replacement patterns used by autosort v2.x and below. Not used by autosort anymore.',
			'', 0, 0, '', '', 0,
			'', '', '', '', '', ''
		)

		self.__rules = weechat.config_new_option(
			self.config_file, self.v3_section,
			'rules', 'string',
			'An ordered list of sorting rules encoded as JSON. See /help autosort for commands to manipulate these rules.',
			'', 0, 0, Config.default_rules, Config.default_rules, 0,
			'', '', '', '', '', ''
		)

		self.__helpers = weechat.config_new_option(
			self.config_file, self.v3_section,
			'helpers', 'string',
			'A dictionary helper variables to use in the sorting rules, encoded as JSON. See /help autosort for commands to manipulate these helpers.',
			'', 0, 0, Config.default_helpers, Config.default_helpers, 0,
			'', '', '', '', '', ''
		)

		self.__signals = weechat.config_new_option(
			self.config_file, self.sorting_section,
			'signals', 'string',
			'A space separated list of signals that will cause autosort to resort your buffer list.',
			'', 0, 0, Config.default_signals, Config.default_signals, 0,
			'', '', '', '', '', ''
		)

		self.__signal_delay = weechat.config_new_option(
			self.config_file, self.sorting_section,
			'signal_delay', 'integer',
			'Delay in milliseconds to wait after a signal before sorting the buffer list. This prevents triggering many times if multiple signals arrive in a short time. It can also be needed to wait for buffer localvars to be available.',
			'', 0, 1000, str(Config.default_signal_delay), str(Config.default_signal_delay), 0,
			'', '', '', '', '', ''
		)

		self.__sort_on_config = weechat.config_new_option(
			self.config_file, self.sorting_section,
			'sort_on_config_change', 'boolean',
			'Decides if the buffer list should be sorted when autosort configuration changes.',
			'', 0, 0, 'on', 'on', 0,
			'', '', '', '', '', ''
		)

		if weechat.config_read(self.config_file) != weechat.WEECHAT_RC_OK:
			log('Failed to load configuration file.')

		if weechat.config_write(self.config_file) != weechat.WEECHAT_RC_OK:
			log('Failed to write configuration file.')

		self.reload()
Exemplo n.º 37
0
 def __init__(self):
     self.buffer = None
     self.hook_fd = None
     self.socket = None
     self.netbuffer = ''
     self.chats = []
     self.contacts = {}
     lastfields = (0, '', '', '', '', '', '')
     self.options = {
         'host':
         weechat.config_new_option(wee_ns_config_file,
                                   wee_ns_conf_serv_sect, 'host', 'string',
                                   'Server host', '', 0, 0,
                                   'ns-server.epita.fr',
                                   'ns-server.epita.fr', *lastfields),
         'port':
         weechat.config_new_option(wee_ns_config_file,
                                   wee_ns_conf_serv_sect, 'port', 'string',
                                   'Server port', '', 0, 0, '4242', '4242',
                                   *lastfields),
         'login':
         weechat.config_new_option(wee_ns_config_file,
                                   wee_ns_conf_serv_sect, 'login', 'string',
                                   'User login (ie: login_x)', '', 0, 0,
                                   'login_x', 'login_x', *lastfields),
         'password':
         weechat.config_new_option(wee_ns_config_file,
                                   wee_ns_conf_serv_sect, 'password',
                                   'string', ('User password (ie: '
                                              'your SOCKS password)'), '',
                                   0, 0, 'xxxxxx', 'xxxxxx', *lastfields),
         'location':
         weechat.config_new_option(wee_ns_config_file,
                                   wee_ns_conf_serv_sect, 'location',
                                   'string', ('User location (ie: '
                                              'at home)'), '', 0, 0, '-',
                                   '-', *lastfields),
         'data':
         weechat.config_new_option(wee_ns_config_file,
                                   wee_ns_conf_serv_sect, 'data', 'string',
                                   ('User data (ie: '
                                    'j\'aime les chips)'), '', 0, 0, '-',
                                   '-', *lastfields),
         'state':
         weechat.config_new_option(wee_ns_config_file,
                                   wee_ns_conf_serv_sect, 'state', 'string',
                                   'User state (ie: actif)', '', 0, 0,
                                   'actif', 'actif', *lastfields),
         'contacts':
         weechat.config_new_option(wee_ns_config_file,
                                   wee_ns_conf_serv_sect, 'contacts',
                                   'string', ('Comma separated login '
                                              'list (ie: sb,rn)'), '', 0, 0,
                                   '', '', *lastfields),
         'display_name':
         weechat.config_new_option(wee_ns_config_file,
                                   wee_ns_conf_serv_sect, 'display_name',
                                   'string', ('Server display name '
                                              'in buffer list '
                                              '("" = host value)'), '', 0,
                                   0, 'Netsoul', 'Netsoul', *lastfields),
         'reconnect_time':
         weechat.config_new_option(wee_ns_config_file,
                                   wee_ns_conf_serv_sect, 'reconnect_time',
                                   'string', ('Time in seconds '
                                              'between two '
                                              'reconnection '
                                              'attempts '
                                              '(0 = no '
                                              'reconnection)'), '', 0, 0,
                                   '30', '30', *lastfields),
     }
     self.commands_hooks = {
         'salut': self._ns_parse_salut,
         'ping': self._ns_parse_ping,
         'user_cmd': self._ns_parse_user_cmd,
     }
     self.user_cmd_hooks = {
         'msg': self._ns_parse_user_cmd_msg,
         'who': self._ns_parse_user_cmd_who,
         'login': self._ns_parse_user_cmd_login,
         'logout': self._ns_parse_user_cmd_logout,
         'state': self._ns_parse_user_cmd_state,
     }
Exemplo n.º 38
0
def wg_config_init():
    """
    Initialization of configuration file.
    Sections: color, scripts.
    """
    global wg_config_file, wg_config_option
    wg_config_file = weechat.config_new(CONFIG_FILE_NAME,
                                        "wg_config_reload_cb", "")
    if wg_config_file == "":
        return

    # section "color"
    section_color = weechat.config_new_section(wg_config_file, "color", 0, 0,
                                               "", "", "", "", "", "", "", "",
                                               "", "")
    if section_color == "":
        weechat.config_free(wg_config_file)
        return
    wg_config_option["color_script"] = weechat.config_new_option(
        wg_config_file, section_color, "script", "color",
        "Color for script names", "", 0, 0, "cyan", "cyan", 0, "", "", "", "",
        "", "")
    wg_config_option["color_installed"] = weechat.config_new_option(
        wg_config_file, section_color, "installed", "color",
        "Color for \"installed\" indicator", "", 0, 0, "yellow", "yellow", 0,
        "", "", "", "", "", "")
    wg_config_option["color_running"] = weechat.config_new_option(
        wg_config_file, section_color, "running", "color",
        "Color for \"running\" indicator", "", 0, 0, "lightgreen",
        "lightgreen", 0, "", "", "", "", "", "")
    wg_config_option["color_obsolete"] = weechat.config_new_option(
        wg_config_file, section_color, "obsolete", "color",
        "Color for \"obsolete\" indicator", "", 0, 0, "lightmagenta",
        "lightmagenta", 0, "", "", "", "", "", "")
    wg_config_option["color_unknown"] = weechat.config_new_option(
        wg_config_file, section_color, "unknown", "color",
        "Color for \"unknown status\" indicator", "", 0, 0, "lightred",
        "lightred", 0, "", "", "", "", "", "")
    wg_config_option["color_language"] = weechat.config_new_option(
        wg_config_file, section_color, "language", "color",
        "Color for language names", "", 0, 0, "lightblue", "lightblue", 0, "",
        "", "", "", "", "")

    # section "scripts"
    section_scripts = weechat.config_new_section(wg_config_file, "scripts", 0,
                                                 0, "", "", "", "", "", "", "",
                                                 "", "", "")
    if section_scripts == "":
        weechat.config_free(wg_config_file)
        return
    wg_config_option["scripts_url"] = weechat.config_new_option(
        wg_config_file, section_scripts, "url", "string",
        "URL for file with list of plugins", "", 0, 0,
        "http://www.weechat.org/files/plugins.xml.gz",
        "http://www.weechat.org/files/plugins.xml.gz", 0, "", "", "", "", "",
        "")
    wg_config_option["scripts_dir"] = weechat.config_new_option(
        wg_config_file, section_scripts, "dir", "string",
        "Local cache directory for" + SCRIPT_NAME, "", 0, 0,
        "%h/" + SCRIPT_NAME, "%h/" + SCRIPT_NAME, 0, "", "", "", "", "", "")
    wg_config_option["scripts_cache_expire"] = weechat.config_new_option(
        wg_config_file, section_scripts, "cache_expire", "integer",
        "Local cache expiration time, in minutes "
        "(-1 = never expires, 0 = always expires)", "", -1, 60 * 24 * 365,
        "60", "60", 0, "", "", "", "", "", "")
Exemplo n.º 39
0
def ircrypt_config_init():
	''' This method initializes the configuration file. It creates sections and
	options in memory and prepares the handling of key sections.
	'''
	global ircrypt_config_file
	ircrypt_config_file = weechat.config_new('ircrypt', 'ircrypt_config_reload_cb', '')
	if not ircrypt_config_file:
		return

	# marker
	ircrypt_config_section['marker'] = weechat.config_new_section(
			ircrypt_config_file, 'marker', 0, 0, '', '', '', '', '', '', '', '',
			'', '')
	if not ircrypt_config_section['marker']:
		weechat.config_free(ircrypt_config_file)
		return
	ircrypt_config_option['encrypted'] = weechat.config_new_option(
			ircrypt_config_file, ircrypt_config_section['marker'],
			'encrypted', 'string', 'Marker for encrypted messages', '', 0, 0,
			'encrypted', 'encrypted', 0, '', '', '', '', '', '')
	ircrypt_config_option['unencrypted'] = weechat.config_new_option(
			ircrypt_config_file, ircrypt_config_section['marker'], 'unencrypted',
			'string', 'Marker for unencrypted messages received in an encrypted channel',
			'', 0, 0, '', 'u', 0, '', '', '', '', '', '')

	# cipher options
	ircrypt_config_section['cipher'] = weechat.config_new_section(
			ircrypt_config_file, 'cipher', 0, 0, '', '', '', '', '', '', '', '',
			'', '')
	if not ircrypt_config_section['cipher']:
		weechat.config_free(ircrypt_config_file)
		return
	ircrypt_config_option['sym_cipher'] = weechat.config_new_option(
			ircrypt_config_file, ircrypt_config_section['cipher'],
			'sym_cipher', 'string', 'symmetric cipher used by default', '', 0, 0,
			'TWOFISH', 'TWOFISH', 0, '', '', '', '', '', '')

	# general options
	ircrypt_config_section['general'] = weechat.config_new_section(
			ircrypt_config_file, 'general', 0, 0, '', '', '', '', '', '', '', '',
			'', '')
	if not ircrypt_config_section['general']:
		weechat.config_free(ircrypt_config_file)
		return
	ircrypt_config_option['binary'] = weechat.config_new_option(
			ircrypt_config_file, ircrypt_config_section['general'],
			'binary', 'string', 'GnuPG binary to use', '', 0, 0,
			'', '', 0, '', '', '', '', '', '')

	# keys
	ircrypt_config_section['keys'] = weechat.config_new_section(
			ircrypt_config_file, 'keys', 0, 0, 'ircrypt_config_keys_read_cb', '',
			'ircrypt_config_keys_write_cb', '', '', '', '', '', '', '')
	if not ircrypt_config_section['keys']:
		weechat.config_free(ircrypt_config_file)

	# Special Ciphers
	ircrypt_config_section['special_cipher'] = weechat.config_new_section(
			ircrypt_config_file, 'special_cipher', 0, 0,
			'ircrypt_config_special_cipher_read_cb', '',
			'ircrypt_config_special_cipher_write_cb', '', '', '', '', '', '', '')
	if not ircrypt_config_section['special_cipher']:
		weechat.config_free(ircrypt_config_file)
Exemplo n.º 40
0
def theme_config_init():
    """Initialization of configuration file. Sections: ???."""
    global theme_config_file, theme_config_option
    theme_config_file = weechat.config_new(THEME_CONFIG_FILE_NAME,
                                           'theme_config_reload_cb', '')
    if not theme_config_file:
        return

    # section "color"
    section_color = weechat.config_new_section(theme_config_file, 'color', 0,
                                               0, '', '', '', '', '', '', '',
                                               '', '', '')
    if not section_color:
        weechat.config_free(theme_config_file)
        return
    theme_config_option['color_script'] = weechat.config_new_option(
        theme_config_file, section_color, 'script', 'color',
        'Color for script names', '', 0, 0, 'cyan', 'cyan', 0, '', '', '', '',
        '', '')
    theme_config_option['color_installed'] = weechat.config_new_option(
        theme_config_file, section_color, 'installed', 'color',
        'Color for "installed" indicator', '', 0, 0, 'yellow', 'yellow', 0, '',
        '', '', '', '', '')
    theme_config_option['color_running'] = weechat.config_new_option(
        theme_config_file, section_color, 'running', 'color',
        'Color for "running" indicator', '', 0, 0, 'lightgreen', 'lightgreen',
        0, '', '', '', '', '', '')
    theme_config_option['color_obsolete'] = weechat.config_new_option(
        theme_config_file, section_color, 'obsolete', 'color',
        'Color for "obsolete" indicator', '', 0, 0, 'lightmagenta',
        'lightmagenta', 0, '', '', '', '', '', '')
    theme_config_option['color_unknown'] = weechat.config_new_option(
        theme_config_file, section_color, 'unknown', 'color',
        'Color for "unknown status" indicator', '', 0, 0, 'lightred',
        'lightred', 0, '', '', '', '', '', '')
    theme_config_option['color_language'] = weechat.config_new_option(
        theme_config_file, section_color, 'language', 'color',
        'Color for language names', '', 0, 0, 'lightblue', 'lightblue', 0, '',
        '', '', '', '', '')

    # section "themes"
    section_themes = weechat.config_new_section(theme_config_file, 'themes', 0,
                                                0, '', '', '', '', '', '', '',
                                                '', '', '')
    if not section_themes:
        weechat.config_free(theme_config_file)
        return
    theme_config_option['themes_url'] = weechat.config_new_option(
        theme_config_file, section_themes, 'url', 'string',
        'URL for file with list of themes', '', 0, 0,
        'http://www.weechat.org/files/themes.json.gz',
        'http://www.weechat.org/files/themes.json.gz', 0, '', '', '', '', '',
        '')
    theme_config_option['themes_cache_expire'] = weechat.config_new_option(
        theme_config_file, section_themes, 'cache_expire', 'integer',
        'Local cache expiration time, in minutes '
        '(-1 = never expires, 0 = always expires)', '', -1, 60 * 24 * 365,
        '60', '60', 0, '', '', '', '', '', '')
    theme_config_option['themes_dir'] = weechat.config_new_option(
        theme_config_file, section_themes, 'dir', 'string',
        'Local directory for themes', '', 0, 0, '%h/themes', '%h/themes', 0,
        '', '', '', '', '', '')
Exemplo n.º 41
0
def ircrypt_config_init():
    ''' This method initializes the configuration file. It creates sections and
	options in memory and prepares the handling of key sections.
	'''
    global ircrypt_config_file
    ircrypt_config_file = weechat.config_new('ircrypt',
                                             'ircrypt_config_reload_cb', '')
    if not ircrypt_config_file:
        return

    # marker
    ircrypt_config_section['marker'] = weechat.config_new_section(
        ircrypt_config_file, 'marker', 0, 0, '', '', '', '', '', '', '', '',
        '', '')
    if not ircrypt_config_section['marker']:
        weechat.config_free(ircrypt_config_file)
        return
    ircrypt_config_option['encrypted'] = weechat.config_new_option(
        ircrypt_config_file, ircrypt_config_section['marker'], 'encrypted',
        'string', 'Marker for encrypted messages', '', 0, 0, 'encrypted',
        'encrypted', 0, '', '', '', '', '', '')
    ircrypt_config_option['unencrypted'] = weechat.config_new_option(
        ircrypt_config_file, ircrypt_config_section['marker'], 'unencrypted',
        'string',
        'Marker for unencrypted messages received in an encrypted channel', '',
        0, 0, '', 'u', 0, '', '', '', '', '', '')

    # cipher options
    ircrypt_config_section['cipher'] = weechat.config_new_section(
        ircrypt_config_file, 'cipher', 0, 0, '', '', '', '', '', '', '', '',
        '', '')
    if not ircrypt_config_section['cipher']:
        weechat.config_free(ircrypt_config_file)
        return
    ircrypt_config_option['sym_cipher'] = weechat.config_new_option(
        ircrypt_config_file, ircrypt_config_section['cipher'], 'sym_cipher',
        'string', 'symmetric cipher used by default', '', 0, 0, 'TWOFISH',
        'TWOFISH', 0, '', '', '', '', '', '')

    # general options
    ircrypt_config_section['general'] = weechat.config_new_section(
        ircrypt_config_file, 'general', 0, 0, '', '', '', '', '', '', '', '',
        '', '')
    if not ircrypt_config_section['general']:
        weechat.config_free(ircrypt_config_file)
        return
    ircrypt_config_option['binary'] = weechat.config_new_option(
        ircrypt_config_file, ircrypt_config_section['general'], 'binary',
        'string', 'GnuPG binary to use', '', 0, 0, '', '', 0, '', '', '', '',
        '', '')

    # keys
    ircrypt_config_section['keys'] = weechat.config_new_section(
        ircrypt_config_file, 'keys', 0, 0, 'ircrypt_config_keys_read_cb', '',
        'ircrypt_config_keys_write_cb', '', '', '', '', '', '', '')
    if not ircrypt_config_section['keys']:
        weechat.config_free(ircrypt_config_file)

    # Special Ciphers
    ircrypt_config_section['special_cipher'] = weechat.config_new_section(
        ircrypt_config_file, 'special_cipher', 0, 0,
        'ircrypt_config_special_cipher_read_cb', '',
        'ircrypt_config_special_cipher_write_cb', '', '', '', '', '', '', '')
    if not ircrypt_config_section['special_cipher']:
        weechat.config_free(ircrypt_config_file)
Exemplo n.º 42
0
 def __init__(self):
     UserDict.__init__(self)
     self.data = {}
     self.config_file = weechat.config_new(CONFIG_FILE_NAME,
                                     "ug_config_reload_cb", "")
     if not self.config_file:
         return
         
     section_color = weechat.config_new_section(
         self.config_file, "color", 0, 0, "", "", "", "", "", "",
                  "", "", "", "")
     section_default = weechat.config_new_section(
         self.config_file, "default", 0, 0, "", "", "", "", "", "",
                  "", "", "", "")
                  
     self.data['color_buffer']=weechat.config_new_option(
         self.config_file, section_color,
         "color_buffer", "color", "Color to display buffer name", "", 0, 0,
         "red", "red", 0, "", "", "", "", "", "")
     
     self.data['color_url']=weechat.config_new_option(
         self.config_file, section_color,
         "color_url", "color", "Color to display urls", "", 0, 0,
         "blue", "blue", 0, "", "", "", "", "", "")
      
     self.data['color_time']=weechat.config_new_option(
         self.config_file, section_color,
         "color_time", "color", "Color to display time", "", 0, 0,
         "cyan", "cyan", 0, "", "", "", "", "", "")
    
     self.data['color_buffer_selected']=weechat.config_new_option(
         self.config_file, section_color,
         "color_buffer_selected", "color", 
         "Color to display buffer selected name", "", 0, 0, "red", "red", 
         0, "", "", "", "", "", "")
     
     self.data['color_url_selected']=weechat.config_new_option(
         self.config_file, section_color,
         "color_url_selected", "color", "Color to display url selected",
          "", 0, 0, "blue", "blue", 0, "", "", "", "", "", "")
         
     self.data['color_time_selected']=weechat.config_new_option(
         self.config_file, section_color,
         "color_time_selected", "color", "Color to display tim selected", 
         "", 0, 0, "cyan", "cyan", 0, "", "", "", "", "", "")    
     
     self.data['color_bg_selected']=weechat.config_new_option(
         self.config_file, section_color,
         "color_bg_selected", "color", "Background for selected row", "", 0, 0,
         "green", "green", 0, "", "", "", "", "", "") 
         
     self.data['historysize']=weechat.config_new_option(
         self.config_file, section_default,
         "historysize", "integer", "Max number of urls to store per buffer", 
         "", 0, 999, "10", "10", 0, "", "", "", "", "", "") 
     
     self.data['method']=weechat.config_new_option(
         self.config_file, section_default,
         "method", "string", """Where to launch URLs
         If 'local', runs %localcmd%.
         If 'remote' runs the following command:
         '%remodecmd%'""", "", 0, 0,
         "local", "local", 0, "", "", "", "", "", "") 
         
         
     self.data['localcmd']=weechat.config_new_option(
         self.config_file, section_default,
         "localcmd", "string", """Local command to execute""", "", 0, 0,
         "firefox %s", "firefox %s", 0, "", "", "", "", "", "") 
     
     remotecmd="ssh -x localhost -i ~/.ssh/id_rsa -C \"export DISPLAY=\":0.0\" &&  firefox %s\""
     self.data['remotecmd']=weechat.config_new_option(
         self.config_file, section_default,
         "remotecmd", "string", remotecmd, "", 0, 0,
         remotecmd, remotecmd, 0, "", "", "", "", "", "")
         
     self.data['url_log']=weechat.config_new_option(
         self.config_file, section_default,
         "url_log", "string", """log location""", "", 0, 0,
         "~/.weechat/urls.log", "~/.weechat/urls.log", 0, "", "", "", "", "", "")
         
     self.data['time_format']=weechat.config_new_option(
         self.config_file, section_default,
         "time_format", "string", """TIme format""", "", 0, 0,
         "%H:%M:%S", "%H:%M:%S", 0, "", "", "", "", "", "")
         
     self.data['output_main_buffer']=weechat.config_new_option(
         self.config_file, section_default,
         "output_main_buffer", "boolean", 
         """Print text to main buffer or current one""", "", 0, 0, "1", "1",
          0, "", "", "", "", "", "")
     weechat.config_read(self.config_file)
Exemplo n.º 43
0
def init_config():
    """Set up configuration options and load config file."""
    global CONFIG_FILE
    CONFIG_FILE = weechat.config_new(SCRIPT_NAME, 'config_reload_cb', '')

    global CONFIG_SECTIONS
    CONFIG_SECTIONS = {}

    CONFIG_SECTIONS['general'] = weechat.config_new_section(
        CONFIG_FILE, 'general', 0, 0, '', '', '', '', '', '', '', '', '', '')

    for option, typ, desc, default in [
        ('debug', 'boolean', 'OTR script debugging', 'off'),
        ]:
        weechat.config_new_option(
            CONFIG_FILE, CONFIG_SECTIONS['general'], option, typ, desc, '', 0,
            0, default, default, 0, '', '', '', '', '', '')

    CONFIG_SECTIONS['color'] = weechat.config_new_section(
        CONFIG_FILE, 'color', 0, 0, '', '', '', '', '', '', '', '', '', '')

    for option, desc, default, update_cb in [
        ('status.default', 'status bar default color', 'default',
         'bar_config_update_cb'),
        ('status.encrypted', 'status bar encrypted indicator color', 'green',
         'bar_config_update_cb'),
        ('status.unencrypted', 'status bar unencrypted indicator color',
         'lightred', 'bar_config_update_cb'),
        ('status.authenticated', 'status bar authenticated indicator color',
         'green', 'bar_config_update_cb'),
        ('status.unauthenticated', 'status bar unauthenticated indicator color',
         'lightred', 'bar_config_update_cb'),
        ('status.logged', 'status bar logged indicator color', 'lightred',
         'bar_config_update_cb'),
        ('status.notlogged', 'status bar not logged indicator color',
         'green', 'bar_config_update_cb'),
        ]:
        weechat.config_new_option(
            CONFIG_FILE, CONFIG_SECTIONS['color'], option, 'color', desc, '', 0,
            0, default, default, 0, '', '', update_cb, '', '', '')

    CONFIG_SECTIONS['look'] = weechat.config_new_section(
        CONFIG_FILE, 'look', 0, 0, '', '', '', '', '', '', '', '', '', '')

    for option, desc, default, update_cb in [
        ('bar.prefix', 'prefix for OTR status bar item', 'OTR:',
         'bar_config_update_cb'),
        ('bar.state.encrypted',
         'shown in status bar when conversation is encrypted', 'SEC',
         'bar_config_update_cb'),
        ('bar.state.unencrypted',
         'shown in status bar when conversation is not encrypted', '!SEC',
         'bar_config_update_cb'),
        ('bar.state.authenticated',
         'shown in status bar when peer is authenticated', 'AUTH',
         'bar_config_update_cb'),
        ('bar.state.unauthenticated',
         'shown in status bar when peer is not authenticated', '!AUTH',
         'bar_config_update_cb'),
        ('bar.state.logged',
         'shown in status bar when peer conversation is being logged to disk',
         'LOG',
         'bar_config_update_cb'),
        ('bar.state.notlogged',
         'shown in status bar when peer conversation is not being logged to disk',
         '!LOG',
         'bar_config_update_cb'),
        ('bar.state.separator', 'separator for states in the status bar', ',',
         'bar_config_update_cb'),
        ]:
        weechat.config_new_option(
            CONFIG_FILE, CONFIG_SECTIONS['look'], option, 'string', desc, '',
            0, 0, default, default, 0, '', '', update_cb, '', '', '')

    CONFIG_SECTIONS['policy'] = weechat.config_new_section(
        CONFIG_FILE, 'policy', 1, 1, '', '', '', '', '', '',
        'policy_create_option_cb', '', '', '')

    for option, desc, default in [
        ('default.allow_v2', 'default allow OTR v2 policy', 'on'),
        ('default.require_encryption', 'default require encryption policy',
         'off'),
        ('default.send_tag', 'default send tag policy', 'off'),
        ]:
        weechat.config_new_option(
            CONFIG_FILE, CONFIG_SECTIONS['policy'], option, 'boolean', desc, '',
            0, 0, default, default, 0, '', '', '', '', '', '')

    weechat.config_read(CONFIG_FILE)