Added input plugins
This commit is contained in:
parent
f3f3858663
commit
9e41d4d746
@ -216,6 +216,7 @@ button {
|
|||||||
}
|
}
|
||||||
#messages .from {
|
#messages .from {
|
||||||
background: #f9f9f9;
|
background: #f9f9f9;
|
||||||
|
border-right: 1px solid #f4f4f4;
|
||||||
color: #ddd;
|
color: #ddd;
|
||||||
padding-right: 10px;
|
padding-right: 10px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
|
@ -120,17 +120,6 @@ $(function() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
networks.on("click", ".chan", function() {
|
|
||||||
var id = $(this).data("id");
|
|
||||||
var chan = find(id);
|
|
||||||
if (typeof chan !== "undefined") {
|
|
||||||
activeChannel = chan;
|
|
||||||
chat.html(
|
|
||||||
render("chat", chan)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
var input = $("#input").tab(complete, {
|
var input = $("#input").tab(complete, {
|
||||||
hint: false
|
hint: false
|
||||||
});
|
});
|
||||||
@ -140,10 +129,23 @@ $(function() {
|
|||||||
var value = input.val();
|
var value = input.val();
|
||||||
input.val("");
|
input.val("");
|
||||||
socket.emit("input", {
|
socket.emit("input", {
|
||||||
// ..
|
target: chat.data("target"),
|
||||||
|
text: value
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
networks.on("click", ".chan", function() {
|
||||||
|
var id = $(this).data("id");
|
||||||
|
var chan = find(id);
|
||||||
|
chat.data("target", id);
|
||||||
|
if (typeof chan !== "undefined") {
|
||||||
|
activeChannel = chan;
|
||||||
|
chat.html(
|
||||||
|
render("chat", chan)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
function isActive(chan) {
|
function isActive(chan) {
|
||||||
return activeChannel !== null && chan == activeChannel;
|
return activeChannel !== null && chan == activeChannel;
|
||||||
}
|
}
|
||||||
|
@ -20,3 +20,22 @@ Client.prototype.emit = function(event, data) {
|
|||||||
this.sockets.in(this.id).emit(event, data);
|
this.sockets.in(this.id).emit(event, data);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Client.prototype.find = function(id) {
|
||||||
|
var network = null;
|
||||||
|
var chan = null;
|
||||||
|
this.networks.forEach(function(n) {
|
||||||
|
chan = _.find(n.channels, {id: id});
|
||||||
|
if (chan) {
|
||||||
|
network = n;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (network && chan) {
|
||||||
|
return {
|
||||||
|
network: network,
|
||||||
|
chan: chan
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
@ -1,2 +1,3 @@
|
|||||||
module.exports = function() {
|
module.exports = function(network, chan, cmd, args) {
|
||||||
|
console.log("action");
|
||||||
};
|
};
|
||||||
|
3
lib/plugins/inputs/connect.js
Normal file
3
lib/plugins/inputs/connect.js
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
module.exports = function(network, chan, cmd, args) {
|
||||||
|
console.log("connect");
|
||||||
|
};
|
@ -1,2 +1,3 @@
|
|||||||
module.exports = function() {
|
module.exports = function(network, chan, cmd, args) {
|
||||||
|
console.log("invite");
|
||||||
};
|
};
|
||||||
|
@ -1,2 +1,9 @@
|
|||||||
module.exports = function() {
|
module.exports = function(network, chan, cmd, args) {
|
||||||
|
if (cmd != "join") {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (args.length != 0) {
|
||||||
|
var irc = network.irc;
|
||||||
|
irc.join(args);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
@ -1,2 +1,3 @@
|
|||||||
module.exports = function() {
|
module.exports = function(network, chan, cmd, args) {
|
||||||
|
console.log("kick");
|
||||||
};
|
};
|
||||||
|
@ -1,2 +1,3 @@
|
|||||||
module.exports = function() {
|
module.exports = function(network, chan, cmd, args) {
|
||||||
|
console.log("mode");
|
||||||
};
|
};
|
||||||
|
@ -1,2 +1,38 @@
|
|||||||
module.exports = function() {
|
var _ = require("lodash");
|
||||||
|
var Msg = require("../../models/msg");
|
||||||
|
|
||||||
|
module.exports = function(network, chan, cmd, args) {
|
||||||
|
if (cmd != "say" && cmd != "msg") {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
var client = this;
|
||||||
|
var irc = network.irc;
|
||||||
|
|
||||||
|
if (args.length === 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var target = args[0].charAt(0) == "#" ? args[0] : "#" + chan.name;
|
||||||
|
if (target !== chan.name) {
|
||||||
|
targetChan = _.findWhere(network.channels, {
|
||||||
|
name: target
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
var text = args.join(" ");
|
||||||
|
irc.send(target, text);
|
||||||
|
|
||||||
|
if (typeof chan !== "undefined") {
|
||||||
|
var msg = new Msg({
|
||||||
|
type: Msg.Type.MESSAGE,
|
||||||
|
from: irc.me,
|
||||||
|
text: text
|
||||||
|
});
|
||||||
|
chan.messages.push(msg);
|
||||||
|
client.emit("msg", {
|
||||||
|
chan: chan.id,
|
||||||
|
msg: msg
|
||||||
|
});
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
@ -1,2 +1,3 @@
|
|||||||
module.exports = function() {
|
module.exports = function(network, chan, cmd, args) {
|
||||||
|
console.log("nick");
|
||||||
};
|
};
|
||||||
|
@ -1,2 +1,3 @@
|
|||||||
module.exports = function() {
|
module.exports = function(network, chan, cmd, args) {
|
||||||
|
console.log("notice");
|
||||||
};
|
};
|
||||||
|
@ -1,2 +1,10 @@
|
|||||||
module.exports = function() {
|
module.exports = function(network, chan, cmd, args) {
|
||||||
|
if (cmd != "part") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var irc = network.irc;
|
||||||
|
if (args.length === 0) {
|
||||||
|
args.push("#" + chan.name);
|
||||||
|
}
|
||||||
|
irc.part(args);
|
||||||
};
|
};
|
||||||
|
@ -1,2 +1,3 @@
|
|||||||
module.exports = function() {
|
module.exports = function(network, chan, cmd, args) {
|
||||||
|
console.log("quit");
|
||||||
};
|
};
|
||||||
|
@ -1,2 +1,3 @@
|
|||||||
module.exports = function() {
|
module.exports = function(network, chan, cmd, args) {
|
||||||
|
console.log("raw");
|
||||||
};
|
};
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
module.exports = function() {
|
|
||||||
};
|
|
@ -1,2 +1,3 @@
|
|||||||
module.exports = function() {
|
module.exports = function(network, chan, cmd, args) {
|
||||||
|
console.log("topic");
|
||||||
};
|
};
|
||||||
|
@ -1,2 +1,3 @@
|
|||||||
module.exports = function() {
|
module.exports = function(network, chan, cmd, args) {
|
||||||
|
console.log("whois");
|
||||||
};
|
};
|
||||||
|
21
lib/shout.js
21
lib/shout.js
@ -13,6 +13,7 @@ var clients = [];
|
|||||||
|
|
||||||
var inputs = [
|
var inputs = [
|
||||||
"action",
|
"action",
|
||||||
|
"connect",
|
||||||
"invite",
|
"invite",
|
||||||
"join",
|
"join",
|
||||||
"kick",
|
"kick",
|
||||||
@ -23,7 +24,6 @@ var inputs = [
|
|||||||
"part",
|
"part",
|
||||||
"quit",
|
"quit",
|
||||||
"raw",
|
"raw",
|
||||||
"server",
|
|
||||||
"topic",
|
"topic",
|
||||||
"whois"
|
"whois"
|
||||||
];
|
];
|
||||||
@ -75,7 +75,7 @@ function auth(data) {
|
|||||||
// Temporary:
|
// Temporary:
|
||||||
var client = clients[0];
|
var client = clients[0];
|
||||||
if (clients.length === 0) {
|
if (clients.length === 0) {
|
||||||
var client = new Client({sockets: sockets});
|
client = new Client({sockets: sockets});
|
||||||
clients.push(client);
|
clients.push(client);
|
||||||
connect(client, {
|
connect(client, {
|
||||||
host: "irc.freenode.org"
|
host: "irc.freenode.org"
|
||||||
@ -126,5 +126,20 @@ function connect(client, args) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function input(client, data) {
|
function input(client, data) {
|
||||||
console.log(data);
|
var target = client.find(data.target);
|
||||||
|
if (!target) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var text = data.text;
|
||||||
|
if (text.charAt(0) !== "/") {
|
||||||
|
text = "/say " + text;
|
||||||
|
}
|
||||||
|
|
||||||
|
var args = text.split(" ");
|
||||||
|
var cmd = args.shift().replace("/", "").toLowerCase();
|
||||||
|
|
||||||
|
inputs.forEach(function(plugin) {
|
||||||
|
require("./plugins/inputs/" + plugin).apply(client, [target.network, target.chan, cmd, args]);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user