mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-06-19 19:49:45 +02:00
tweaked registration queue logic a bit
- encoding inputs during url construction - limiting maximum # of parallel requests to 20 - using map instead of forEach
This commit is contained in:
@@ -147,13 +147,18 @@ module.exports = function(User) {
|
||||
db.getObjects(keys, next);
|
||||
},
|
||||
function(users, next) {
|
||||
users.forEach(function(user, index) {
|
||||
if (user) {
|
||||
user.timestampISO = utils.toISOString(data[index].score);
|
||||
users = users.map(function(user, index) {
|
||||
if (!user) {
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
||||
async.map(users, function(user, next) {
|
||||
user.timestampISO = utils.toISOString(data[index].score);
|
||||
delete user.hashedPassword;
|
||||
|
||||
return user;
|
||||
}).filter(Boolean);
|
||||
|
||||
async.mapLimit(users, 20, function(user, next) {
|
||||
if (!user) {
|
||||
return next(null, user);
|
||||
}
|
||||
@@ -161,18 +166,25 @@ module.exports = function(User) {
|
||||
// temporary: see http://www.stopforumspam.com/forum/viewtopic.php?id=6392
|
||||
user.ip = user.ip.replace('::ffff:', '');
|
||||
|
||||
request('http://api.stopforumspam.org/api?ip=' + user.ip + '&email=' + user.email + '&username=' + user.username + '&f=json', function (err, response, body) {
|
||||
request({
|
||||
method: 'get',
|
||||
url: 'http://api.stopforumspam.org/api' +
|
||||
'?ip=' + encodeURIComponent(user.ip) +
|
||||
'&email=' + encodeURIComponent(user.email) +
|
||||
'&username=' + encodeURIComponent(user.username) +
|
||||
'&f=json',
|
||||
json: true
|
||||
}, function (err, response, body) {
|
||||
if (err) {
|
||||
return next(null, user);
|
||||
}
|
||||
if (response.statusCode === 200) {
|
||||
var data = JSON.parse(body);
|
||||
user.spamData = data;
|
||||
|
||||
user.usernameSpam = data.username.frequency > 0 || data.username.appears > 0;
|
||||
user.emailSpam = data.email.frequency > 0 || data.email.appears > 0;
|
||||
user.ipSpam = data.ip.frequency > 0 || data.ip.appears > 0;
|
||||
user.spamData = body;
|
||||
user.usernameSpam = body.username.frequency > 0 || body.username.appears > 0;
|
||||
user.emailSpam = body.email.frequency > 0 || body.email.appears > 0;
|
||||
user.ipSpam = body.ip.frequency > 0 || body.ip.appears > 0;
|
||||
}
|
||||
|
||||
next(null, user);
|
||||
});
|
||||
}, next);
|
||||
|
||||
Reference in New Issue
Block a user