You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

89 lines
2.0 KiB
JavaScript

var meta = require('../meta'),
user = require('../user'),
topics = require('../topics'),
logger = require('../logger'),
plugins = require('../plugins'),
11 years ago
emitter = require('../emitter'),
nconf = require('nconf'),
gravatar = require('gravatar'),
winston = require('winston'),
server = require('./'),
SocketMeta = {
rooms: {}
};
11 years ago
SocketMeta.reconnected = function(socket, data, callback) {
var uid = socket.uid,
sessionID = socket.id;
if (uid) {
topics.pushUnreadCount(uid);
user.notifications.pushCount(uid);
}
11 years ago
if (typeof callback === 'function') {
emitter.on('nodebb:ready', function() {
callback(null, meta.config['cache-buster']);
});
}
if (process.env.NODE_ENV === 'development') {
if (uid) {
winston.info('[socket] uid ' + uid + ' (' + sessionID + ') has successfully reconnected.');
} else {
winston.info('[socket] An anonymous user (' + sessionID + ') has successfully reconnected.');
}
}
};
SocketMeta.buildTitle = function(socket, text, callback) {
if (socket.uid) {
user.getSettings(socket.uid, function(err, settings) {
if (err) {
return callback(err);
}
meta.title.build(text, settings.language, callback);
});
} else {
meta.title.build(text, meta.config.defaultLang, callback);
}
};
SocketMeta.getUsageStats = function(socket, data, callback) {
module.parent.exports.emitTopicPostStats(callback);
};
/* Rooms */
SocketMeta.rooms.enter = function(socket, data) {
11 years ago
if(!data) {
return callback(new Error('[[error:invalid-data]]'));
11 years ago
}
if (data.leave !== null) {
socket.leave(data.leave);
}
socket.join(data.enter);
11 years ago
if (data.leave && data.leave !== data.enter) {
module.parent.exports.updateRoomBrowsingText(data.leave);
}
module.parent.exports.updateRoomBrowsingText(data.enter);
if (data.enter != 'admin') {
11 years ago
server.in('admin').emit('event:meta.rooms.update', null, server.server.sockets.manager.rooms);
}
};
SocketMeta.rooms.getAll = function(socket, data, callback) {
11 years ago
callback(null, server.server.sockets.manager.rooms);
};
/* Exports */
module.exports = SocketMeta;