50 accounts[current_account or "default"][k] = v; |
50 accounts[current_account or "default"][k] = v; |
51 end |
51 end |
52 end |
52 end |
53 end |
53 end |
54 |
54 |
55 function clix_connect(opts, on_connect) |
55 function clix_connect(opts, on_connect, plugins) |
56 local account = accounts[opts.account or "default"]; |
56 local account = accounts[opts.account or "default"]; |
57 if not (account and account.jid) then |
57 if not (account and account.jid) then |
58 io.stderr:write("The specified account (", opts.account or "default", ") wasn't found in the config file\n"); |
58 io.stderr:write("The specified account (", opts.account or "default", ") wasn't found in the config file\n"); |
59 return nil; |
59 return nil; |
60 end |
60 end |
61 verse.set_logger(opts.verbose and verse.logger() or function () end); |
61 verse.set_logger(opts.verbose and verse.logger() or function () end); |
62 local conn = verse.new(verse.logger()); |
62 local conn = verse.new(verse.logger()); |
|
63 for _, plugin in ipairs(plugins or {}) do |
|
64 conn:add_plugin(plugin); |
|
65 end |
63 conn.log.debug = opts.verbose; |
66 conn.log.debug = opts.verbose; |
64 conn:hook("authentication-failure", function (err) |
67 conn:hook("authentication-failure", function (err) |
65 conn:error("Authentication failure ("..(err.condition or "unknown error")..")"..(err.text and (": "..err.text) or "")); |
68 conn:error("Authentication failure ("..(err.condition or "unknown error")..")"..(err.text and (": "..err.text) or "")); |
66 conn:close(); |
69 conn:close(); |
67 end); |
70 end); |