Sending queries and messages to channels now works
This commit is contained in:
parent
a4a3499a54
commit
57bd684c74
@ -11,7 +11,7 @@ var id = 1;
|
|||||||
models.User = Backbone.Model.extend({
|
models.User = Backbone.Model.extend({
|
||||||
defaults: {
|
defaults: {
|
||||||
mode: "",
|
mode: "",
|
||||||
name: ""
|
name: "user"
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -20,10 +20,7 @@ Server.prototype.listen = function(port) {
|
|||||||
this.networks.on(
|
this.networks.on(
|
||||||
"all",
|
"all",
|
||||||
function(type, data) {
|
function(type, data) {
|
||||||
if ([
|
if (type == "users" || type == "messages") {
|
||||||
"users",
|
|
||||||
"messages"
|
|
||||||
].indexOf(type) != -1) {
|
|
||||||
self.sockets.emit(type, data);
|
self.sockets.emit(type, data);
|
||||||
} else {
|
} else {
|
||||||
self.sockets.emit("networks", self.networks);
|
self.sockets.emit("networks", self.networks);
|
||||||
@ -31,11 +28,8 @@ Server.prototype.listen = function(port) {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
var options = {
|
|
||||||
log: false
|
|
||||||
};
|
|
||||||
this.sockets = io
|
this.sockets = io
|
||||||
.listen(http, options)
|
.listen(http, {log: false})
|
||||||
.sockets;
|
.sockets;
|
||||||
this.sockets.on("connection", function(socket) {
|
this.sockets.on("connection", function(socket) {
|
||||||
socket.emit(
|
socket.emit(
|
||||||
@ -58,18 +52,39 @@ function handleInput(input) {
|
|||||||
if (!target) {
|
if (!target) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var argv = input.text.substr(1).split(" ");
|
var argv = input.text.substr(1).split(" ");
|
||||||
var cmd = input.text.charAt(0) == "/" ? argv[0].toUpperCase()
|
var cmd = input.text.charAt(0) == "/" ? argv[0].toUpperCase()
|
||||||
: "";
|
: "";
|
||||||
|
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
case "":
|
case "":
|
||||||
|
var irc = target.network.irc;
|
||||||
|
if (typeof irc !== "undefined") {
|
||||||
|
irc.say(target.channel.get("name"), input.text);
|
||||||
|
}
|
||||||
target.channel.get("messages").add(
|
target.channel.get("messages").add(
|
||||||
new models.Message({user: "user", text: input.text})
|
new models.Message({
|
||||||
|
user: target.network.get("nick"),
|
||||||
|
text: input.text
|
||||||
|
})
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "QUERY":
|
||||||
|
var irc = target.network.irc;
|
||||||
|
if (argv[1] && typeof irc !== "undefined") {
|
||||||
|
var channels = target.network.get("channels");
|
||||||
|
if (argv[1].charAt(0) != "#" && !channels.findWhere({name: argv[1]})) {
|
||||||
|
channels.add(
|
||||||
|
new models.Channel({
|
||||||
|
name: argv[1]
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case "JOIN":
|
case "JOIN":
|
||||||
var irc = target.network.irc;
|
var irc = target.network.irc;
|
||||||
if (argv[1] && typeof irc !== "undefined") {
|
if (argv[1] && typeof irc !== "undefined") {
|
||||||
@ -79,15 +94,15 @@ function handleInput(input) {
|
|||||||
|
|
||||||
case "PART":
|
case "PART":
|
||||||
var irc = target.network.irc;
|
var irc = target.network.irc;
|
||||||
if (argv[1] && typeof irc !== "undefined") {
|
if (typeof irc !== "undefined") {
|
||||||
irc.part(argv[1]);
|
irc.part(argv[1] ? argv[1] : target.channel.get("name"));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "NAMES":
|
case "NAMES":
|
||||||
var irc = target.network.irc;
|
var irc = target.network.irc;
|
||||||
if (argv[1] && typeof irc !== "undefined") {
|
if (typeof irc !== "undefined") {
|
||||||
irc.send("NAMES", argv[1]);
|
irc.send("NAMES", argv[1] ? argv[1] : target.channel.get("name"));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -97,6 +112,9 @@ function handleInput(input) {
|
|||||||
var network = this.networks.add(
|
var network = this.networks.add(
|
||||||
new models.Network({host: argv[1]})
|
new models.Network({host: argv[1]})
|
||||||
);
|
);
|
||||||
|
network.irc.addListener(
|
||||||
|
"error", function() { /* .. */ }
|
||||||
|
);
|
||||||
network.irc.addListener(
|
network.irc.addListener(
|
||||||
"raw",
|
"raw",
|
||||||
function() {
|
function() {
|
||||||
@ -135,6 +153,31 @@ function handleEvent(argv) {
|
|||||||
var event = argv.command;
|
var event = argv.command;
|
||||||
switch (event) {
|
switch (event) {
|
||||||
|
|
||||||
|
case "PRIVMSG":
|
||||||
|
var target = argv.args[0];
|
||||||
|
if (target.charAt(0) != "#") {
|
||||||
|
target = argv.nick;
|
||||||
|
}
|
||||||
|
|
||||||
|
var channel = channels.findWhere({name: target});
|
||||||
|
var message = argv.args[1];
|
||||||
|
|
||||||
|
if (typeof channel == "undefined") {
|
||||||
|
channel = channels.add(
|
||||||
|
new models.Channel({
|
||||||
|
name: target
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
channel.get("messages").add(
|
||||||
|
new models.Message({
|
||||||
|
user: argv.nick,
|
||||||
|
text: message
|
||||||
|
})
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
case "JOIN":
|
case "JOIN":
|
||||||
if (argv.nick == network.get("nick")) {
|
if (argv.nick == network.get("nick")) {
|
||||||
channels.add(
|
channels.add(
|
||||||
@ -205,6 +248,17 @@ function handleEvent(argv) {
|
|||||||
"add", {}, users
|
"add", {}, users
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "err_cannotsendtochan":
|
||||||
|
case "err_nosuchnick":
|
||||||
|
var channel = network.get("channels").findWhere({name: argv.args[1]});
|
||||||
|
var messages = channel.get("messages");
|
||||||
|
messages.add(
|
||||||
|
new models.Message({
|
||||||
|
text: argv.args[2]
|
||||||
|
})
|
||||||
|
);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Debug
|
// Debug
|
||||||
|
Loading…
Reference in New Issue
Block a user