def create_default_server(config_file): server = MatrixServer('matrix.org', config_file) SERVERS[server.name] = server W.config_option_set(server.options["address"], "matrix.org", 1) return True
def matrix_config_server_read_cb(data, config_file, section, option_name, value): return_code = W.WEECHAT_CONFIG_OPTION_SET_ERROR if option_name: server_name, option = option_name.rsplit('.', 1) server = None if server_name in SERVERS: server = SERVERS[server_name] else: server = MatrixServer(server_name, config_file) SERVERS[server.name] = server # Ignore invalid options if option in server.options: return_code = W.config_option_set(server.options[option], value, 1) # TODO print out error message in case of erroneous return_code return return_code
def matrix_server_command_add(args): if len(args) < 2: message = ("{prefix}matrix: Too few arguments for command " "\"/matrix server add\" (see /matrix help server)").format( prefix=W.prefix("error")) W.prnt("", message) return elif len(args) > 4: message = ("{prefix}matrix: Too many arguments for command " "\"/matrix server add\" (see /matrix help server)").format( prefix=W.prefix("error")) W.prnt("", message) return def remove_server(server): for option in server.options.values(): W.config_option_free(option) del SERVERS[server.name] server_name = args[0] if server_name in SERVERS: message = ("{prefix}matrix: server {color}{server}{ncolor} " "already exists, can't add it").format( prefix=W.prefix("error"), color=W.color("chat_server"), server=server_name, ncolor=W.color("reset")) W.prnt("", message) return server = MatrixServer(server_name, matrix.globals.CONFIG) SERVERS[server.name] = server if len(args) >= 2: try: host, port = args[1].split(":", 1) except ValueError: host, port = args[1], None return_code = W.config_option_set(server.options["address"], host, 1) if return_code == W.WEECHAT_CONFIG_OPTION_SET_ERROR: remove_server(server) message = ("{prefix}Failed to set address for server " "{color}{server}{ncolor}, failed to add " "server.").format(prefix=W.prefix("error"), color=W.color("chat_server"), server=server.name, ncolor=W.color("reset")) W.prnt("", message) server = None return if port: return_code = W.config_option_set(server.options["port"], port, 1) if return_code == W.WEECHAT_CONFIG_OPTION_SET_ERROR: remove_server(server) message = ("{prefix}Failed to set port for server " "{color}{server}{ncolor}, failed to add " "server.").format(prefix=W.prefix("error"), color=W.color("chat_server"), server=server.name, ncolor=W.color("reset")) W.prnt("", message) server = None return if len(args) >= 3: user = args[2] return_code = W.config_option_set(server.options["username"], user, 1) if return_code == W.WEECHAT_CONFIG_OPTION_SET_ERROR: remove_server(server) message = ("{prefix}Failed to set user for server " "{color}{server}{ncolor}, failed to add " "server.").format(prefix=W.prefix("error"), color=W.color("chat_server"), server=server.name, ncolor=W.color("reset")) W.prnt("", message) server = None return if len(args) == 4: password = args[3] return_code = W.config_option_set(server.options["password"], password, 1) if return_code == W.WEECHAT_CONFIG_OPTION_SET_ERROR: remove_server(server) message = ("{prefix}Failed to set password for server " "{color}{server}{ncolor}, failed to add " "server.").format(prefix=W.prefix("error"), color=W.color("chat_server"), server=server.name, ncolor=W.color("reset")) W.prnt("", message) server = None return message = ("matrix: server {color}{server}{ncolor} " "has been added").format(server=server.name, color=W.color("chat_server"), ncolor=W.color("reset")) W.prnt("", message)