|
|
|
@ -18,7 +18,9 @@ var posts = require('../posts'),
|
|
|
|
|
|
|
|
|
|
/* Posts Composer */
|
|
|
|
|
|
|
|
|
|
SocketModules.composer = {};
|
|
|
|
|
SocketModules.composer = {
|
|
|
|
|
replyHash: {}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
SocketModules.composer.push = function(socket, pid, callback) {
|
|
|
|
|
if (socket.uid || parseInt(meta.config.allowGuestPosting, 10)) {
|
|
|
|
@ -74,6 +76,42 @@ SocketModules.composer.renderHelp = function(socket, data, callback) {
|
|
|
|
|
plugins.fireHook('filter:composer.help', '', callback);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
SocketModules.composer.register = function(socket, data) {
|
|
|
|
|
var now = Date.now();
|
|
|
|
|
server.in('topic_' + data.tid).emit('event:topic.replyStart', data.uid);
|
|
|
|
|
|
|
|
|
|
data.socket = socket;
|
|
|
|
|
data.lastPing = now;
|
|
|
|
|
data.lastAnswer = now;
|
|
|
|
|
data.timer = setInterval(function() {
|
|
|
|
|
if (data.lastPing === data.lastAnswer) {
|
|
|
|
|
// Ping the socket to see if the composer is still active
|
|
|
|
|
data.lastPing = Date.now();
|
|
|
|
|
socket.emit('event:composer.ping', data.uuid);
|
|
|
|
|
} else {
|
|
|
|
|
server.in('topic_' + data.tid).emit('event:topic.replyStop', data.uid);
|
|
|
|
|
delete SocketModules.composer.replyHash[data.uuid];
|
|
|
|
|
}
|
|
|
|
|
}, 1000*5); // Every 5 seconds...
|
|
|
|
|
|
|
|
|
|
SocketModules.composer.replyHash[data.uuid] = data;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
SocketModules.composer.unregister = function(socket, uuid) {
|
|
|
|
|
var replyObj = SocketModules.composer.replyHash[uuid];
|
|
|
|
|
if (uuid && replyObj) {
|
|
|
|
|
server.in('topic_' + replyObj.tid).emit('event:topic.replyStop', replyObj.uid);
|
|
|
|
|
delete SocketModules.composer.replyHash[replyObj.uuid];
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
SocketModules.composer.pingActive = function(socket, uuid) {
|
|
|
|
|
var data = SocketModules.composer.replyHash[uuid];
|
|
|
|
|
if (data) {
|
|
|
|
|
data.lastAnswer = data.lastPing;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/* Chat */
|
|
|
|
|
|
|
|
|
|
SocketModules.chats = {};
|
|
|
|
|