mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-11-03 20:45:58 +01:00 
			
		
		
		
	Fix space-before-function-paren linter rule
This commit is contained in:
		
							
								
								
									
										122
									
								
								src/messaging.js
									
									
									
									
									
								
							
							
						
						
									
										122
									
								
								src/messaging.js
									
									
									
									
									
								
							@@ -13,7 +13,7 @@ var utils = require('../public/src/utils');
 | 
			
		||||
var notifications = require('./notifications');
 | 
			
		||||
var userNotifications = require('./user/notifications');
 | 
			
		||||
 | 
			
		||||
(function(Messaging) {
 | 
			
		||||
(function (Messaging) {
 | 
			
		||||
 | 
			
		||||
	require('./messaging/create')(Messaging);
 | 
			
		||||
	require('./messaging/delete')(Messaging);
 | 
			
		||||
@@ -22,25 +22,25 @@ var userNotifications = require('./user/notifications');
 | 
			
		||||
	require('./messaging/unread')(Messaging);
 | 
			
		||||
	require('./messaging/notifications')(Messaging);
 | 
			
		||||
 | 
			
		||||
	Messaging.getMessageField = function(mid, field, callback) {
 | 
			
		||||
		Messaging.getMessageFields(mid, [field], function(err, fields) {
 | 
			
		||||
	Messaging.getMessageField = function (mid, field, callback) {
 | 
			
		||||
		Messaging.getMessageFields(mid, [field], function (err, fields) {
 | 
			
		||||
			callback(err, fields ? fields[field] : null);
 | 
			
		||||
		});
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	Messaging.getMessageFields = function(mid, fields, callback) {
 | 
			
		||||
	Messaging.getMessageFields = function (mid, fields, callback) {
 | 
			
		||||
		db.getObjectFields('message:' + mid, fields, callback);
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	Messaging.setMessageField = function(mid, field, content, callback) {
 | 
			
		||||
	Messaging.setMessageField = function (mid, field, content, callback) {
 | 
			
		||||
		db.setObjectField('message:' + mid, field, content, callback);
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	Messaging.setMessageFields = function(mid, data, callback) {
 | 
			
		||||
	Messaging.setMessageFields = function (mid, data, callback) {
 | 
			
		||||
		db.setObject('message:' + mid, data, callback);
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	Messaging.getMessages = function(params, callback) {
 | 
			
		||||
	Messaging.getMessages = function (params, callback) {
 | 
			
		||||
		var uid = params.uid;
 | 
			
		||||
		var roomId = params.roomId;
 | 
			
		||||
		var isNew = params.isNew || false;
 | 
			
		||||
@@ -50,21 +50,21 @@ var userNotifications = require('./user/notifications');
 | 
			
		||||
 | 
			
		||||
		var indices = {};
 | 
			
		||||
		async.waterfall([
 | 
			
		||||
			function(next) {
 | 
			
		||||
			function (next) {
 | 
			
		||||
				canGetMessages(params.callerUid, params.uid, next);
 | 
			
		||||
			},
 | 
			
		||||
			function(canGet, next) {
 | 
			
		||||
			function (canGet, next) {
 | 
			
		||||
				if (!canGet) {
 | 
			
		||||
					return callback(null, null);
 | 
			
		||||
				}
 | 
			
		||||
				db.getSortedSetRevRange('uid:' + uid + ':chat:room:' + roomId + ':mids', start, stop, next);
 | 
			
		||||
			},
 | 
			
		||||
			function(mids, next) {
 | 
			
		||||
			function (mids, next) {
 | 
			
		||||
				if (!Array.isArray(mids) || !mids.length) {
 | 
			
		||||
					return callback(null, []);
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				mids.forEach(function(mid, index) {
 | 
			
		||||
				mids.forEach(function (mid, index) {
 | 
			
		||||
					indices[mid] = start + index;
 | 
			
		||||
				});
 | 
			
		||||
 | 
			
		||||
@@ -72,8 +72,8 @@ var userNotifications = require('./user/notifications');
 | 
			
		||||
 | 
			
		||||
				Messaging.getMessagesData(mids, uid, roomId, isNew, next);
 | 
			
		||||
			},
 | 
			
		||||
			function(messageData, next) {
 | 
			
		||||
				messageData.forEach(function(messageData) {
 | 
			
		||||
			function (messageData, next) {
 | 
			
		||||
				messageData.forEach(function (messageData) {
 | 
			
		||||
					messageData.index = indices[messageData.messageId.toString()];
 | 
			
		||||
				});
 | 
			
		||||
				next(null, messageData);
 | 
			
		||||
@@ -81,7 +81,7 @@ var userNotifications = require('./user/notifications');
 | 
			
		||||
		], callback);
 | 
			
		||||
 | 
			
		||||
		if (markRead) {
 | 
			
		||||
			notifications.markRead('chat_' + roomId + '_' + uid, uid, function(err) {
 | 
			
		||||
			notifications.markRead('chat_' + roomId + '_' + uid, uid, function (err) {
 | 
			
		||||
				if (err) {
 | 
			
		||||
					winston.error('[messaging] Could not mark notifications related to this chat as read: ' + err.message);
 | 
			
		||||
				}
 | 
			
		||||
@@ -96,14 +96,14 @@ var userNotifications = require('./user/notifications');
 | 
			
		||||
			callerUid: callerUid,
 | 
			
		||||
			uid: uid,
 | 
			
		||||
			canGet: parseInt(callerUid, 10) === parseInt(uid, 10)
 | 
			
		||||
		}, function(err, data) {
 | 
			
		||||
		}, function (err, data) {
 | 
			
		||||
			callback(err, data ? data.canGet : false);
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	Messaging.getMessagesData = function(mids, uid, roomId, isNew, callback) {
 | 
			
		||||
	Messaging.getMessagesData = function (mids, uid, roomId, isNew, callback) {
 | 
			
		||||
 | 
			
		||||
		var keys = mids.map(function(mid) {
 | 
			
		||||
		var keys = mids.map(function (mid) {
 | 
			
		||||
			return 'message:' + mid;
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
@@ -114,21 +114,21 @@ var userNotifications = require('./user/notifications');
 | 
			
		||||
				db.getObjects(keys, next);
 | 
			
		||||
			},
 | 
			
		||||
			function (_messages, next) {
 | 
			
		||||
				messages = _messages.map(function(msg, idx) {
 | 
			
		||||
				messages = _messages.map(function (msg, idx) {
 | 
			
		||||
					if (msg) {
 | 
			
		||||
						msg.messageId = parseInt(mids[idx], 10);
 | 
			
		||||
					}
 | 
			
		||||
					return msg;
 | 
			
		||||
				}).filter(Boolean);
 | 
			
		||||
 | 
			
		||||
				var uids = messages.map(function(msg) {
 | 
			
		||||
				var uids = messages.map(function (msg) {
 | 
			
		||||
					return msg && msg.fromuid;
 | 
			
		||||
				});
 | 
			
		||||
 | 
			
		||||
				user.getUsersFields(uids, ['uid', 'username', 'userslug', 'picture', 'status'], next);
 | 
			
		||||
			},
 | 
			
		||||
			function (users, next) {
 | 
			
		||||
				messages.forEach(function(message, index) {
 | 
			
		||||
				messages.forEach(function (message, index) {
 | 
			
		||||
					message.fromUser = users[index];
 | 
			
		||||
					var self = parseInt(message.fromuid, 10) === parseInt(uid, 10);
 | 
			
		||||
					message.self = self ? 1 : 0;
 | 
			
		||||
@@ -140,8 +140,8 @@ var userNotifications = require('./user/notifications');
 | 
			
		||||
					}
 | 
			
		||||
				});
 | 
			
		||||
 | 
			
		||||
				async.map(messages, function(message, next) {
 | 
			
		||||
					Messaging.parse(message.content, message.fromuid, uid, roomId, isNew, function(err, result) {
 | 
			
		||||
				async.map(messages, function (message, next) {
 | 
			
		||||
					Messaging.parse(message.content, message.fromuid, uid, roomId, isNew, function (err, result) {
 | 
			
		||||
						if (err) {
 | 
			
		||||
							return next(err);
 | 
			
		||||
						}
 | 
			
		||||
@@ -151,10 +151,10 @@ var userNotifications = require('./user/notifications');
 | 
			
		||||
					});
 | 
			
		||||
				}, next);
 | 
			
		||||
			},
 | 
			
		||||
			function(messages, next) {
 | 
			
		||||
			function (messages, next) {
 | 
			
		||||
				if (messages.length > 1) {
 | 
			
		||||
					// 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
 | 
			
		||||
						if (index > 0 && parseInt(message.timestamp, 10) > parseInt(messages[index - 1].timestamp, 10) + (1000 * 60 * 5)) {
 | 
			
		||||
							// If it's been 5 minutes, this is a new set of messages
 | 
			
		||||
@@ -173,7 +173,7 @@ var userNotifications = require('./user/notifications');
 | 
			
		||||
					var key = 'uid:' + uid + ':chat:room:' + roomId + ':mids';
 | 
			
		||||
					async.waterfall([
 | 
			
		||||
						async.apply(db.sortedSetRank, key, messages[0].messageId),
 | 
			
		||||
						function(index, next) {
 | 
			
		||||
						function (index, next) {
 | 
			
		||||
							// Continue only if this isn't the first message in sorted set
 | 
			
		||||
							if (index > 0) {
 | 
			
		||||
								db.getSortedSetRange(key, index - 1, index - 1, next);
 | 
			
		||||
@@ -182,10 +182,10 @@ var userNotifications = require('./user/notifications');
 | 
			
		||||
								return next(undefined, messages);
 | 
			
		||||
							}
 | 
			
		||||
						},
 | 
			
		||||
						function(mid, next) {
 | 
			
		||||
						function (mid, next) {
 | 
			
		||||
							Messaging.getMessageFields(mid, ['fromuid', 'timestamp'], next);
 | 
			
		||||
						}
 | 
			
		||||
					], function(err, fields) {
 | 
			
		||||
					], function (err, fields) {
 | 
			
		||||
						if (err) {
 | 
			
		||||
							return next(err);
 | 
			
		||||
						}
 | 
			
		||||
@@ -209,7 +209,7 @@ var userNotifications = require('./user/notifications');
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	Messaging.parse = function (message, fromuid, uid, roomId, isNew, callback) {
 | 
			
		||||
		plugins.fireHook('filter:parse.raw', message, function(err, parsed) {
 | 
			
		||||
		plugins.fireHook('filter:parse.raw', message, function (err, parsed) {
 | 
			
		||||
			if (err) {
 | 
			
		||||
				return callback(err);
 | 
			
		||||
			}
 | 
			
		||||
@@ -224,20 +224,20 @@ var userNotifications = require('./user/notifications');
 | 
			
		||||
				parsedMessage: parsed
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			plugins.fireHook('filter:messaging.parse', messageData, function(err, messageData) {
 | 
			
		||||
			plugins.fireHook('filter:messaging.parse', messageData, function (err, messageData) {
 | 
			
		||||
				callback(err, messageData ? messageData.parsedMessage : '');
 | 
			
		||||
			});
 | 
			
		||||
		});
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	Messaging.isNewSet = function(uid, roomId, timestamp, callback) {
 | 
			
		||||
	Messaging.isNewSet = function (uid, roomId, timestamp, callback) {
 | 
			
		||||
		var setKey = 'uid:' + uid + ':chat:room:' + roomId + ':mids';
 | 
			
		||||
 | 
			
		||||
		async.waterfall([
 | 
			
		||||
			function(next) {
 | 
			
		||||
			function (next) {
 | 
			
		||||
				db.getSortedSetRevRangeWithScores(setKey, 0, 0, next);
 | 
			
		||||
			},
 | 
			
		||||
			function(messages, next) {
 | 
			
		||||
			function (messages, next) {
 | 
			
		||||
				if (messages && messages.length) {
 | 
			
		||||
					next(null, parseInt(timestamp, 10) > parseInt(messages[0].score, 10) + (1000 * 60 * 5));
 | 
			
		||||
				} else {
 | 
			
		||||
@@ -248,63 +248,63 @@ var userNotifications = require('./user/notifications');
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	Messaging.getRecentChats = function(callerUid, uid, start, stop, callback) {
 | 
			
		||||
	Messaging.getRecentChats = function (callerUid, uid, start, stop, callback) {
 | 
			
		||||
		async.waterfall([
 | 
			
		||||
			function(next) {
 | 
			
		||||
			function (next) {
 | 
			
		||||
				canGetRecentChats(callerUid, uid, next);
 | 
			
		||||
			},
 | 
			
		||||
			function(canGet, next) {
 | 
			
		||||
			function (canGet, next) {
 | 
			
		||||
				if (!canGet) {
 | 
			
		||||
					return callback(null, null);
 | 
			
		||||
				}
 | 
			
		||||
				db.getSortedSetRevRange('uid:' + uid + ':chat:rooms', start, stop, next);
 | 
			
		||||
			},
 | 
			
		||||
			function(roomIds, next) {
 | 
			
		||||
			function (roomIds, next) {
 | 
			
		||||
				async.parallel({
 | 
			
		||||
					roomData: function(next) {
 | 
			
		||||
					roomData: function (next) {
 | 
			
		||||
						Messaging.getRoomsData(roomIds, next);
 | 
			
		||||
					},
 | 
			
		||||
					unread: function(next) {
 | 
			
		||||
					unread: function (next) {
 | 
			
		||||
						db.isSortedSetMembers('uid:' + uid + ':chat:rooms:unread', roomIds, next);
 | 
			
		||||
					},
 | 
			
		||||
					users: function(next) {
 | 
			
		||||
						async.map(roomIds, function(roomId, next) {
 | 
			
		||||
							db.getSortedSetRevRange('chat:room:' + roomId + ':uids', 0, 9, function(err, uids) {
 | 
			
		||||
					users: function (next) {
 | 
			
		||||
						async.map(roomIds, function (roomId, next) {
 | 
			
		||||
							db.getSortedSetRevRange('chat:room:' + roomId + ':uids', 0, 9, function (err, uids) {
 | 
			
		||||
								if (err) {
 | 
			
		||||
									return next(err);
 | 
			
		||||
								}
 | 
			
		||||
								uids = uids.filter(function(value) {
 | 
			
		||||
								uids = uids.filter(function (value) {
 | 
			
		||||
									return value && parseInt(value, 10) !== parseInt(uid, 10);
 | 
			
		||||
								});
 | 
			
		||||
								user.getUsersFields(uids, ['uid', 'username', 'userslug', 'picture', 'status', 'lastonline'] , next);
 | 
			
		||||
							});
 | 
			
		||||
						}, next);
 | 
			
		||||
					},
 | 
			
		||||
					teasers: function(next) {
 | 
			
		||||
						async.map(roomIds, function(roomId, next) {
 | 
			
		||||
					teasers: function (next) {
 | 
			
		||||
						async.map(roomIds, function (roomId, next) {
 | 
			
		||||
							Messaging.getTeaser(uid, roomId, next);
 | 
			
		||||
						}, next);
 | 
			
		||||
					}
 | 
			
		||||
				}, next);
 | 
			
		||||
			},
 | 
			
		||||
			function(results, next) {
 | 
			
		||||
				results.roomData.forEach(function(room, index) {
 | 
			
		||||
			function (results, next) {
 | 
			
		||||
				results.roomData.forEach(function (room, index) {
 | 
			
		||||
					room.users = results.users[index];
 | 
			
		||||
					room.groupChat = room.hasOwnProperty('groupChat') ? room.groupChat : room.users.length > 2;
 | 
			
		||||
					room.unread = results.unread[index];
 | 
			
		||||
					room.teaser = results.teasers[index];
 | 
			
		||||
 | 
			
		||||
					room.users.forEach(function(userData) {
 | 
			
		||||
					room.users.forEach(function (userData) {
 | 
			
		||||
						if (userData && parseInt(userData.uid, 10)) {
 | 
			
		||||
							userData.status = user.getStatus(userData);
 | 
			
		||||
						}
 | 
			
		||||
					});
 | 
			
		||||
					room.users = room.users.filter(function(user) {
 | 
			
		||||
					room.users = room.users.filter(function (user) {
 | 
			
		||||
						return user && parseInt(user.uid, 10);
 | 
			
		||||
					});
 | 
			
		||||
					room.lastUser = room.users[0];
 | 
			
		||||
 | 
			
		||||
					room.usernames = room.users.map(function(user) {
 | 
			
		||||
					room.usernames = room.users.map(function (user) {
 | 
			
		||||
						return user.username;
 | 
			
		||||
					}).join(', ');
 | 
			
		||||
				});
 | 
			
		||||
@@ -319,7 +319,7 @@ var userNotifications = require('./user/notifications');
 | 
			
		||||
			callerUid: callerUid,
 | 
			
		||||
			uid: uid,
 | 
			
		||||
			canGet: parseInt(callerUid, 10) === parseInt(uid, 10)
 | 
			
		||||
		}, function(err, data) {
 | 
			
		||||
		}, function (err, data) {
 | 
			
		||||
			callback(err, data ? data.canGet : false);
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
@@ -348,14 +348,14 @@ var userNotifications = require('./user/notifications');
 | 
			
		||||
				teaser.timestampISO = utils.toISOString(teaser.timestamp);
 | 
			
		||||
				user.getUserFields(teaser.fromuid, ['uid', 'username', 'userslug', 'picture', 'status', 'lastonline'] , next);
 | 
			
		||||
			},
 | 
			
		||||
			function(user, next) {
 | 
			
		||||
			function (user, next) {
 | 
			
		||||
				teaser.user = user;
 | 
			
		||||
				next(null, teaser);
 | 
			
		||||
			}
 | 
			
		||||
		], callback);
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	Messaging.canMessageUser = function(uid, toUid, callback) {
 | 
			
		||||
	Messaging.canMessageUser = function (uid, toUid, callback) {
 | 
			
		||||
		if (parseInt(meta.config.disableChat) === 1 || !uid || uid === toUid) {
 | 
			
		||||
			return callback(new Error('[[error:chat-disabled]]'));
 | 
			
		||||
		}
 | 
			
		||||
@@ -385,7 +385,7 @@ var userNotifications = require('./user/notifications');
 | 
			
		||||
					isFollowing: async.apply(user.isFollowing, toUid, uid)
 | 
			
		||||
				}, next);
 | 
			
		||||
			},
 | 
			
		||||
			function(results, next) {
 | 
			
		||||
			function (results, next) {
 | 
			
		||||
				if (!results.settings.restrictChat || results.isAdmin || results.isFollowing) {
 | 
			
		||||
					return next();
 | 
			
		||||
				}
 | 
			
		||||
@@ -395,7 +395,7 @@ var userNotifications = require('./user/notifications');
 | 
			
		||||
		], callback);
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	Messaging.canMessageRoom = function(uid, roomId, callback) {
 | 
			
		||||
	Messaging.canMessageRoom = function (uid, roomId, callback) {
 | 
			
		||||
		if (parseInt(meta.config.disableChat) === 1 || !uid) {
 | 
			
		||||
			return callback(new Error('[[error:chat-disabled]]'));
 | 
			
		||||
		}
 | 
			
		||||
@@ -411,7 +411,7 @@ var userNotifications = require('./user/notifications');
 | 
			
		||||
 | 
			
		||||
				Messaging.getUserCountInRoom(roomId, next);
 | 
			
		||||
			},
 | 
			
		||||
			function(count, next) {
 | 
			
		||||
			function (count, next) {
 | 
			
		||||
				if (count < 2) {
 | 
			
		||||
					return next(new Error('[[error:no-users-in-room]]'));
 | 
			
		||||
				}
 | 
			
		||||
@@ -432,7 +432,7 @@ var userNotifications = require('./user/notifications');
 | 
			
		||||
		], callback);
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	Messaging.hasPrivateChat = function(uid, withUid, callback) {
 | 
			
		||||
	Messaging.hasPrivateChat = function (uid, withUid, callback) {
 | 
			
		||||
		async.waterfall([
 | 
			
		||||
			function (next) {
 | 
			
		||||
				async.parallel({
 | 
			
		||||
@@ -441,7 +441,7 @@ var userNotifications = require('./user/notifications');
 | 
			
		||||
				}, next);
 | 
			
		||||
			},
 | 
			
		||||
			function (results, next) {
 | 
			
		||||
				var roomIds = results.myRooms.filter(function(roomId) {
 | 
			
		||||
				var roomIds = results.myRooms.filter(function (roomId) {
 | 
			
		||||
					return roomId && results.theirRooms.indexOf(roomId) !== -1;
 | 
			
		||||
				});
 | 
			
		||||
 | 
			
		||||
@@ -451,10 +451,10 @@ var userNotifications = require('./user/notifications');
 | 
			
		||||
 | 
			
		||||
				var index = 0;
 | 
			
		||||
				var roomId = 0;
 | 
			
		||||
				async.whilst(function() {
 | 
			
		||||
				async.whilst(function () {
 | 
			
		||||
					return index < roomIds.length && !roomId;
 | 
			
		||||
				}, function(next) {
 | 
			
		||||
					Messaging.getUserCountInRoom(roomIds[index], function(err, count) {
 | 
			
		||||
				}, function (next) {
 | 
			
		||||
					Messaging.getUserCountInRoom(roomIds[index], function (err, count) {
 | 
			
		||||
						if (err) {
 | 
			
		||||
							return next(err);
 | 
			
		||||
						}
 | 
			
		||||
@@ -466,7 +466,7 @@ var userNotifications = require('./user/notifications');
 | 
			
		||||
							next();
 | 
			
		||||
						}
 | 
			
		||||
					});
 | 
			
		||||
				}, function(err) {
 | 
			
		||||
				}, function (err) {
 | 
			
		||||
					next(err, roomId);
 | 
			
		||||
				});
 | 
			
		||||
			}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user