mirror of https://github.com/calzoneman/sync.git
A few tweaks, cleanup
This commit is contained in:
parent
0e95ef2aa4
commit
b250f3c64b
|
@ -99,13 +99,14 @@ var handlers = {
|
|||
var handlerList = [];
|
||||
for (var key in handlers) {
|
||||
handlerList.push({
|
||||
// match /command followed by a space or end of string
|
||||
re: new RegExp("^\\/" + key + "(?:\\s|$)"),
|
||||
fn: handlers[key]
|
||||
});
|
||||
}
|
||||
|
||||
function handle(chan, user, msg, meta) {
|
||||
// Special case
|
||||
// Special case because the drink command can vary
|
||||
var m = msg.match(/^\/d(-?[0-9]*)(?:\s|$)(.*)/);
|
||||
if (m) {
|
||||
handleDrink(chan, user, m[1], m[2], meta);
|
||||
|
@ -155,101 +156,12 @@ function handleDrink(chan, user, count, msg, meta) {
|
|||
chan.sendMessage(user, msg, meta);
|
||||
}
|
||||
|
||||
function handleOld(chan, user, msg, data) {
|
||||
if(msg.indexOf("/me ") == 0)
|
||||
chan.sendMessage(user.name, msg.substring(4), "action", data);
|
||||
else if(msg.indexOf("/sp ") == 0)
|
||||
chan.sendMessage(user.name, msg.substring(4), "spoiler", data);
|
||||
else if(msg.indexOf("/say ") == 0) {
|
||||
if(user.rank >= 1.5) {
|
||||
chan.sendMessage(user.name, msg.substring(5), "shout", data);
|
||||
}
|
||||
}
|
||||
else if(msg.indexOf("/afk") == 0) {
|
||||
user.setAFK(!user.meta.afk);
|
||||
}
|
||||
else if(msg.indexOf("/m ") == 0) {
|
||||
if(user.rank >= 2) {
|
||||
chan.chainMessage(user, msg.substring(3), {modflair: user.rank})
|
||||
}
|
||||
}
|
||||
else if(msg.indexOf("/a ") == 0) {
|
||||
if(user.rank >= 255) {
|
||||
var flair = {
|
||||
superadminflair: {
|
||||
labelclass: "label-important",
|
||||
icon: "icon-globe"
|
||||
}
|
||||
};
|
||||
var args = msg.substring(3).split(" ");
|
||||
var cargs = [];
|
||||
for(var i = 0; i < args.length; i++) {
|
||||
var a = args[i];
|
||||
if(a.indexOf("!icon-") == 0)
|
||||
flair.superadminflair.icon = a.substring(1);
|
||||
else if(a.indexOf("!label-") == 0)
|
||||
flair.superadminflair.labelclass = a.substring(1);
|
||||
else {
|
||||
cargs.push(a);
|
||||
}
|
||||
}
|
||||
chan.chainMessage(user, cargs.join(" "), flair);
|
||||
}
|
||||
}
|
||||
else if(msg.indexOf("/mute ") == 0) {
|
||||
handleMute(chan, user, msg.substring(6).split(" "));
|
||||
}
|
||||
else if(msg.indexOf("/smute ") == 0) {
|
||||
handleShadowMute(chan, user, msg.substring(7).split(" "));
|
||||
}
|
||||
else if(msg.indexOf("/unmute ") == 0) {
|
||||
handleUnmute(chan, user, msg.substring(8).split(" "));
|
||||
}
|
||||
else if(msg.indexOf("/kick ") == 0) {
|
||||
handleKick(chan, user, msg.substring(6).split(" "));
|
||||
}
|
||||
else if(msg.indexOf("/ban ") == 0) {
|
||||
handleBan(chan, user, msg.substring(5).split(" "));
|
||||
}
|
||||
else if(msg.indexOf("/ipban ") == 0) {
|
||||
handleIPBan(chan, user, msg.substring(7).split(" "));
|
||||
}
|
||||
else if(msg.indexOf("/unban ") == 0) {
|
||||
handleUnban(chan, user, msg.substring(7).split(" "));
|
||||
}
|
||||
else if(msg.indexOf("/poll ") == 0) {
|
||||
handlePoll(chan, user, msg.substring(6), false);
|
||||
}
|
||||
else if(msg.indexOf("/hpoll ") == 0) {
|
||||
handlePoll(chan, user, msg.substring(6), true);
|
||||
}
|
||||
else if(msg.indexOf("/d") == 0 && msg.length > 2 &&
|
||||
msg[2].match(/[-0-9 ]/)) {
|
||||
if(msg[2] == "-") {
|
||||
if(msg.length == 3)
|
||||
return;
|
||||
if(!msg[3].match(/[0-9]/))
|
||||
return;
|
||||
}
|
||||
handleDrink(chan, user, msg.substring(2), data);
|
||||
}
|
||||
else if(msg.indexOf("/clear") == 0) {
|
||||
handleClear(chan, user);
|
||||
}
|
||||
else if(msg.indexOf("/clean ") == 0) {
|
||||
handleClean(chan, user, msg.substring(7));
|
||||
}
|
||||
else if(msg.indexOf("/cleantitle ") == 0) {
|
||||
handleCleanTitle(chan, user, msg.substring(12));
|
||||
}
|
||||
}
|
||||
|
||||
function handleShadowMute(chan, user, args) {
|
||||
if (chan.hasPermission(user, "mute") && args.length > 0) {
|
||||
args[0] = args[0].toLowerCase();
|
||||
var person = false;
|
||||
for(var i = 0; i < chan.users.length; i++) {
|
||||
if(chan.users[i].name.toLowerCase() == args[0]) {
|
||||
for (var i = 0; i < chan.users.length; i++) {
|
||||
if (chan.users[i].name.toLowerCase() === args[0]) {
|
||||
person = chan.users[i];
|
||||
break;
|
||||
}
|
||||
|
@ -262,6 +174,7 @@ function handleShadowMute(chan, user, args) {
|
|||
});
|
||||
return;
|
||||
}
|
||||
|
||||
/* Reset a previous regular mute */
|
||||
if (chan.mutedUsers.contains(person.name.toLowerCase())) {
|
||||
chan.mutedUsers.remove(person.name.toLowerCase());
|
||||
|
@ -280,7 +193,7 @@ function handleShadowMute(chan, user, args) {
|
|||
var pkt = {
|
||||
username: "[server]",
|
||||
msg: user.name + " shadow muted " + args[0],
|
||||
addClass: "server-whisper",
|
||||
meta: { addClass: "server-whisper" },
|
||||
time: Date.now()
|
||||
};
|
||||
chan.users.forEach(function (u) {
|
||||
|
@ -293,18 +206,18 @@ function handleShadowMute(chan, user, args) {
|
|||
}
|
||||
|
||||
function handleMute(chan, user, args) {
|
||||
if(chan.hasPermission(user, "mute") && args.length > 0) {
|
||||
if (chan.hasPermission(user, "mute") && args.length > 0) {
|
||||
args[0] = args[0].toLowerCase();
|
||||
var person = false;
|
||||
for(var i = 0; i < chan.users.length; i++) {
|
||||
if(chan.users[i].name.toLowerCase() == args[0]) {
|
||||
for (var i = 0; i < chan.users.length; i++) {
|
||||
if (chan.users[i].name.toLowerCase() == args[0]) {
|
||||
person = chan.users[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(person) {
|
||||
if(person.rank >= user.rank) {
|
||||
if (person) {
|
||||
if (person.rank >= user.rank) {
|
||||
user.socket.emit("errorMsg", {
|
||||
msg: "You don't have permission to mute that person."
|
||||
});
|
||||
|
@ -322,18 +235,18 @@ function handleMute(chan, user, args) {
|
|||
}
|
||||
|
||||
function handleUnmute(chan, user, args) {
|
||||
if(chan.hasPermission(user, "mute") && args.length > 0) {
|
||||
if (chan.hasPermission(user, "mute") && args.length > 0) {
|
||||
args[0] = args[0].toLowerCase();
|
||||
var person = false;
|
||||
for(var i = 0; i < chan.users.length; i++) {
|
||||
if(chan.users[i].name.toLowerCase() == args[0]) {
|
||||
for (var i = 0; i < chan.users.length; i++) {
|
||||
if (chan.users[i].name.toLowerCase() == args[0]) {
|
||||
person = chan.users[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(person) {
|
||||
if(person.rank >= user.rank) {
|
||||
if (person) {
|
||||
if (person.rank >= user.rank) {
|
||||
user.socket.emit("errorMsg", {
|
||||
msg: "You don't have permission to unmute that person."
|
||||
});
|
||||
|
@ -352,18 +265,18 @@ function handleUnmute(chan, user, args) {
|
|||
}
|
||||
|
||||
function handleKick(chan, user, args) {
|
||||
if(chan.hasPermission(user, "kick") && args.length > 0) {
|
||||
if (chan.hasPermission(user, "kick") && args.length > 0) {
|
||||
args[0] = args[0].toLowerCase();
|
||||
if(args[0] == user.name.toLowerCase()) {
|
||||
if (args[0] == user.name.toLowerCase()) {
|
||||
user.socket.emit("costanza", {
|
||||
msg: "Kicking yourself?"
|
||||
});
|
||||
return;
|
||||
}
|
||||
var kickee;
|
||||
for(var i = 0; i < chan.users.length; i++) {
|
||||
if(chan.users[i].name.toLowerCase() == args[0]) {
|
||||
if(chan.users[i].rank >= user.rank) {
|
||||
for (var i = 0; i < chan.users.length; i++) {
|
||||
if (chan.users[i].name.toLowerCase() == args[0]) {
|
||||
if (chan.users[i].rank >= user.rank) {
|
||||
user.socket.emit("errorMsg", {
|
||||
msg: "You don't have permission to kick " + args[0]
|
||||
});
|
||||
|
@ -373,7 +286,7 @@ function handleKick(chan, user, args) {
|
|||
break;
|
||||
}
|
||||
}
|
||||
if(kickee) {
|
||||
if (kickee) {
|
||||
chan.logger.log("*** " + user.name + " kicked " + args[0]);
|
||||
args[0] = "";
|
||||
var reason = args.join(" ");
|
||||
|
@ -393,9 +306,9 @@ function handleBan(chan, user, args) {
|
|||
}
|
||||
|
||||
function handleUnban(chan, user, args) {
|
||||
if(chan.hasPermission(user, "ban") && args.length > 0) {
|
||||
if (chan.hasPermission(user, "ban") && args.length > 0) {
|
||||
chan.logger.log("*** " + user.name + " unbanned " + args[0]);
|
||||
if(args[0].match(/(\d+)\.(\d+)\.(\d+)\.(\d+)/)) {
|
||||
if (args[0].match(/(\d+)\.(\d+)\.(\d+)\.(\d+)/)) {
|
||||
chan.unbanIP(user, args[0]);
|
||||
}
|
||||
else {
|
||||
|
@ -405,7 +318,7 @@ function handleUnban(chan, user, args) {
|
|||
}
|
||||
|
||||
function handlePoll(chan, user, msg, hidden) {
|
||||
if(chan.hasPermission(user, "pollctl")) {
|
||||
if (chan.hasPermission(user, "pollctl")) {
|
||||
var args = msg.split(",");
|
||||
var title = args[0];
|
||||
args.splice(0, 1);
|
||||
|
@ -416,34 +329,8 @@ function handlePoll(chan, user, msg, hidden) {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
function handleDrink(chan, user, msg, data) {
|
||||
if(!chan.hasPermission(user, "drink")) {
|
||||
return;
|
||||
}
|
||||
|
||||
var count = msg.split(" ")[0];
|
||||
msg = msg.substring(count.length + 1);
|
||||
if(count == "")
|
||||
count = 1;
|
||||
else
|
||||
count = parseInt(count);
|
||||
|
||||
chan.drinks += count;
|
||||
chan.broadcastDrinks();
|
||||
if(count < 0 && msg.trim() == "") {
|
||||
return;
|
||||
}
|
||||
|
||||
msg = msg + " drink!";
|
||||
if(count != 1)
|
||||
msg += " (x" + count + ")";
|
||||
chan.sendMessage(user.name, msg, "drink", data);
|
||||
}
|
||||
*/
|
||||
|
||||
function handleClear(chan, user) {
|
||||
if(user.rank < 2) {
|
||||
if (user.rank < 2) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -1442,22 +1442,27 @@ function sendVideoUpdate() {
|
|||
/* chat */
|
||||
|
||||
function formatChatMessage(data) {
|
||||
// Phase 1: Determine whether to show the username or not
|
||||
var skip = data.username === LASTCHATNAME;
|
||||
if (data.meta.forceShowName) {
|
||||
skip = false;
|
||||
}
|
||||
if(data.msgclass == "server-whisper")
|
||||
if(data.meta.addClass === "server-whisper")
|
||||
skip = true;
|
||||
// Prevent impersonation by abuse of the bold filter
|
||||
if(data.msg.match(/^\s*<strong>\w+\s*:\s*<\/strong>\s*/))
|
||||
skip = false;
|
||||
if (data.meta.forceShowName)
|
||||
skip = false;
|
||||
|
||||
LASTCHATNAME = data.username;
|
||||
LASTCHATTIME = data.time;
|
||||
var div = $("<div/>");
|
||||
/* drink is a special case because the entire container gets the class, not
|
||||
just the message */
|
||||
if (data.meta.addClass === "drink") {
|
||||
div.addClass("drink");
|
||||
data.meta.addClass = "";
|
||||
}
|
||||
|
||||
// Add timestamps (unless disabled)
|
||||
if (USEROPTS.show_timestamps) {
|
||||
var time = $("<span/>").addClass("timestamp").appendTo(div);
|
||||
var timestamp = new Date(data.time).toTimeString().split(" ")[0];
|
||||
|
@ -1468,6 +1473,7 @@ function formatChatMessage(data) {
|
|||
}
|
||||
}
|
||||
|
||||
// Add username
|
||||
var name = $("<span/>");
|
||||
if (!skip) {
|
||||
name.appendTo(div);
|
||||
|
@ -1487,9 +1493,11 @@ function formatChatMessage(data) {
|
|||
.prependTo(name);
|
||||
}
|
||||
|
||||
// Add the message itself
|
||||
var message = $("<span/>").appendTo(div);
|
||||
message[0].innerHTML = data.msg;
|
||||
|
||||
// For /me the username is part of the message
|
||||
if (data.meta.action) {
|
||||
name.remove();
|
||||
message[0].innerHTML = data.username + " " + data.msg;
|
||||
|
@ -1500,68 +1508,13 @@ function formatChatMessage(data) {
|
|||
return div;
|
||||
}
|
||||
|
||||
function oldFormatChatMessage(data) {
|
||||
var skip = data.username == LASTCHATNAME;
|
||||
if(data.msgclass == "drink" || data.msgclass == "shout") {
|
||||
skip = false;
|
||||
}
|
||||
if(data.superadminflair)
|
||||
skip = false;
|
||||
if(data.msgclass == "server-whisper")
|
||||
skip = true;
|
||||
// Prevent impersonation by abuse of the bold filter
|
||||
if(data.msg.match(/^\s*<strong>\w+\s*:\s*<\/strong>\s*/))
|
||||
skip = false;
|
||||
LASTCHATNAME = data.username;
|
||||
LASTCHATTIME = data.time;
|
||||
var div = $("<div/>");
|
||||
if(USEROPTS.show_timestamps) {
|
||||
var time = $("<span/>").addClass("timestamp").appendTo(div);
|
||||
var timestamp = new Date(data.time).toTimeString().split(" ")[0];
|
||||
time.text("["+timestamp+"] ");
|
||||
if(data.msgclass == "shout" || data.msgclass == "server-whisper")
|
||||
time.addClass(data.msgclass);
|
||||
}
|
||||
var name = $("<span/>");
|
||||
if(!skip) {
|
||||
name.appendTo(div);
|
||||
}
|
||||
$("<strong/>").addClass("username").text(data.username + ": ").appendTo(name);
|
||||
var message = $("<span/>").appendTo(div);
|
||||
message[0].innerHTML = data.msg;
|
||||
if(data.modflair) {
|
||||
name.addClass(getNameColor(data.modflair));
|
||||
}
|
||||
if(data.superadminflair) {
|
||||
name.addClass("label")
|
||||
.addClass(data.superadminflair.labelclass);
|
||||
$("<i/>").addClass(data.superadminflair.icon)
|
||||
.addClass("icon-white")
|
||||
.prependTo(name);
|
||||
}
|
||||
if(data.msgclass == "action") {
|
||||
name.remove();
|
||||
message.addClass("action");
|
||||
message[0].innerHTML = data.username + " " + data.msg;
|
||||
}
|
||||
else if(data.msgclass == "drink") {
|
||||
div.addClass("drink");
|
||||
}
|
||||
else if(data.msgclass == "shout") {
|
||||
message.addClass("shout");
|
||||
name.addClass("shout");
|
||||
}
|
||||
else {
|
||||
message.addClass(data.msgclass);
|
||||
}
|
||||
return div;
|
||||
}
|
||||
|
||||
function addChatMessage(data) {
|
||||
if(IGNORED.indexOf(data.username) != -1) {
|
||||
if(IGNORED.indexOf(data.username) !== -1) {
|
||||
return;
|
||||
}
|
||||
var div = formatChatMessage(data);
|
||||
// Incoming: a bunch of crap for the feature where if you hover over
|
||||
// a message, it highlights messages from that user
|
||||
div.data("sender", data.username);
|
||||
div.appendTo($("#messagebuffer"));
|
||||
div.mouseover(function() {
|
||||
|
|
Loading…
Reference in New Issue