parent
d839a9e64a
commit
7af573fd96
@ -81,7 +81,7 @@ function buildChatMessage(data) {
|
|||||||
renderPreview(preview, msg);
|
renderPreview(preview, msg);
|
||||||
});
|
});
|
||||||
|
|
||||||
if ((type === "message" || type === "action") && chan.hasClass("channel")) {
|
if ((type === "message" || type === "action" || type === "notice") && chan.hasClass("channel")) {
|
||||||
const nicks = chan.find(".users").data("nicks");
|
const nicks = chan.find(".users").data("nicks");
|
||||||
if (nicks) {
|
if (nicks) {
|
||||||
const find = nicks.indexOf(data.msg.from);
|
const find = nicks.indexOf(data.msg.from);
|
||||||
@ -143,22 +143,10 @@ function renderChannelMessages(data) {
|
|||||||
|
|
||||||
function renderChannelUsers(data) {
|
function renderChannelUsers(data) {
|
||||||
const users = chat.find("#chan-" + data.id).find(".users");
|
const users = chat.find("#chan-" + data.id).find(".users");
|
||||||
let nicks = users.data("nicks") || [];
|
const nicks = data.users
|
||||||
const oldSortOrder = {};
|
.concat()
|
||||||
|
.sort((a, b) => b.lastMessage - a.lastMessage)
|
||||||
for (const i in nicks) {
|
.map((a) => a.nick);
|
||||||
oldSortOrder[nicks[i]] = i;
|
|
||||||
}
|
|
||||||
|
|
||||||
nicks = [];
|
|
||||||
|
|
||||||
for (const i in data.users) {
|
|
||||||
nicks.push(data.users[i].nick);
|
|
||||||
}
|
|
||||||
|
|
||||||
nicks = nicks.sort(function(a, b) {
|
|
||||||
return (oldSortOrder[a] || Number.MAX_VALUE) - (oldSortOrder[b] || Number.MAX_VALUE);
|
|
||||||
});
|
|
||||||
|
|
||||||
const search = users
|
const search = users
|
||||||
.find(".search")
|
.find(".search")
|
||||||
|
@ -93,8 +93,12 @@ Chan.prototype.sortUsers = function(irc) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Chan.prototype.findUser = function(nick) {
|
||||||
|
return _.find(this.users, {nick: nick});
|
||||||
|
};
|
||||||
|
|
||||||
Chan.prototype.getMode = function(name) {
|
Chan.prototype.getMode = function(name) {
|
||||||
var user = _.find(this.users, {nick: name});
|
var user = this.findUser(name);
|
||||||
if (user) {
|
if (user) {
|
||||||
return user.mode;
|
return user.mode;
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,8 @@ function User(attr, prefixLookup) {
|
|||||||
_.defaults(this, attr, {
|
_.defaults(this, attr, {
|
||||||
modes: [],
|
modes: [],
|
||||||
mode: "",
|
mode: "",
|
||||||
nick: ""
|
nick: "",
|
||||||
|
lastMessage: 0,
|
||||||
});
|
});
|
||||||
|
|
||||||
// irc-framework sets character mode, but lounge works with symbols
|
// irc-framework sets character mode, but lounge works with symbols
|
||||||
@ -23,5 +24,6 @@ User.prototype.toJSON = function() {
|
|||||||
return {
|
return {
|
||||||
nick: this.nick,
|
nick: this.nick,
|
||||||
mode: this.mode,
|
mode: this.mode,
|
||||||
|
lastMessage: this.lastMessage,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -71,6 +71,12 @@ module.exports = function(irc, network) {
|
|||||||
// Query messages (unless self) always highlight
|
// Query messages (unless self) always highlight
|
||||||
if (chan.type === Chan.Type.QUERY) {
|
if (chan.type === Chan.Type.QUERY) {
|
||||||
highlight = !self;
|
highlight = !self;
|
||||||
|
} else if (chan.type === Chan.Type.CHANNEL) {
|
||||||
|
const user = chan.findUser(data.nick);
|
||||||
|
|
||||||
|
if (user) {
|
||||||
|
user.lastMessage = data.time || Date.now();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user