fix newSet on redis

v1.18.x
barisusakli 8 years ago
parent 04b66787ea
commit 6f49509645

@ -57,8 +57,10 @@ define('forum/chats/messages', ['components', 'sounds', 'translator'], function
messages.appendChatMessage = function (chatContentEl, data) { messages.appendChatMessage = function (chatContentEl, data) {
var lastSpeaker = parseInt(chatContentEl.find('.chat-message').last().attr('data-uid'), 10); var lastSpeaker = parseInt(chatContentEl.find('.chat-message').last().attr('data-uid'), 10);
var lasttimestamp = parseInt(chatContentEl.find('.chat-message').last().attr('data-timestamp'), 10);
if (!Array.isArray(data)) { if (!Array.isArray(data)) {
data.newSet = lastSpeaker !== data.fromuid; data.newSet = lastSpeaker !== parseInt(data.fromuid, 10) ||
parseInt(data.timestamp, 10) > parseInt(lasttimestamp, 10) + (1000 * 60 * 3);
} }
messages.parseMessage(data, function (html) { messages.parseMessage(data, function (html) {

@ -102,7 +102,7 @@ Messaging.isNewSet = function (uid, roomId, timestamp, callback) {
}, },
function (messages, next) { function (messages, next) {
if (messages && messages.length) { if (messages && messages.length) {
next(null, parseInt(timestamp, 10) > parseInt(messages[0].score, 10) + (1000 * 60 * 5)); next(null, parseInt(timestamp, 10) > parseInt(messages[0].score, 10) + Messaging.newMessageCutoff);
} else { } else {
next(null, true); next(null, true);
} }

@ -8,6 +8,8 @@ var user = require('../user');
var utils = require('../../public/src/utils'); var utils = require('../../public/src/utils');
module.exports = function (Messaging) { module.exports = function (Messaging) {
Messaging.newMessageCutoff = 1000 * 60 * 3;
Messaging.getMessageField = function (mid, field, callback) { Messaging.getMessageField = function (mid, field, callback) {
Messaging.getMessageFields(mid, [field], function (err, fields) { Messaging.getMessageFields(mid, [field], function (err, fields) {
callback(err, fields ? fields[field] : null); callback(err, fields ? fields[field] : null);
@ -80,7 +82,7 @@ module.exports = function (Messaging) {
// Add a spacer in between messages with time gaps between them // Add a spacer in between messages with time gaps between them
messages = messages.map(function (message, index) { messages = messages.map(function (message, index) {
// Compare timestamps with the previous message, and check if a spacer needs to be added // Compare timestamps with the previous message, and check if a spacer needs to be added
if (index > 0 && parseInt(message.timestamp, 10) > parseInt(messages[index - 1].timestamp, 10) + (1000 * 60 * 5)) { if (index > 0 && parseInt(message.timestamp, 10) > parseInt(messages[index - 1].timestamp, 10) + Messaging.newMessageCutoff) {
// If it's been 5 minutes, this is a new set of messages // If it's been 5 minutes, this is a new set of messages
message.newSet = true; message.newSet = true;
} else if (index > 0 && message.fromuid !== messages[index - 1].fromuid) { } else if (index > 0 && message.fromuid !== messages[index - 1].fromuid) {
@ -115,7 +117,7 @@ module.exports = function (Messaging) {
} }
if ( if (
(parseInt(messages[0].timestamp, 10) > parseInt(fields.timestamp, 10) + (1000 * 60 * 5)) || (parseInt(messages[0].timestamp, 10) > parseInt(fields.timestamp, 10) + Messaging.newMessageCutoff) ||
(parseInt(messages[0].fromuid, 10) !== parseInt(fields.fromuid, 10)) (parseInt(messages[0].fromuid, 10) !== parseInt(fields.fromuid, 10))
) { ) {
// If it's been 5 minutes, this is a new set of messages // If it's been 5 minutes, this is a new set of messages

Loading…
Cancel
Save