diff --git a/client/js/lounge.js b/client/js/lounge.js index 1efc0f20..7dfa56d8 100644 --- a/client/js/lounge.js +++ b/client/js/lounge.js @@ -17,6 +17,7 @@ $(function() { "/notice", "/op", "/part", + "/query", "/quit", "/raw", "/say", diff --git a/src/client.js b/src/client.js index 3663c28d..9e0856e0 100644 --- a/src/client.js +++ b/src/client.js @@ -42,6 +42,7 @@ var inputs = [ "kick", "mode", "notice", + "query", "quit", "raw", "topic", diff --git a/src/plugins/inputs/query.js b/src/plugins/inputs/query.js new file mode 100644 index 00000000..53548bf3 --- /dev/null +++ b/src/plugins/inputs/query.js @@ -0,0 +1,26 @@ +var _ = require("lodash"); +var Chan = require("../../models/chan"); + +exports.commands = ["query"]; + +exports.input = function(network, chan, cmd, args) { + if (args.length === 0) { + return; + } + + var target = args[0]; + var query = _.find(network.channels, {name: target}); + if (typeof query !== "undefined") { + return; + } + + var newChan = new Chan({ + type: Chan.Type.QUERY, + name: target + }); + network.channels.push(newChan); + this.emit("join", { + network: network.id, + chan: newChan + }); +};