mirror of
https://github.com/taobataoma/meanTorrent.git
synced 2026-01-18 13:22:20 +01:00
feat(users): do not idle if users account level greater than fixed setting value
This commit is contained in:
@@ -2,6 +2,8 @@
|
||||
|
||||
var path = require('path'),
|
||||
config = require(path.resolve('./config/config')),
|
||||
common = require(path.resolve('./config/lib/common')),
|
||||
scoreLib = require(path.resolve('./config/lib/score')),
|
||||
mongoose = require('mongoose'),
|
||||
chalk = require('chalk'),
|
||||
CronJob = require('cron').CronJob,
|
||||
@@ -191,10 +193,13 @@ function checkUserAccountIdleStatus() {
|
||||
onTick: function () {
|
||||
console.log(chalk.green('checkUserAccountIdleStatus: process!'));
|
||||
|
||||
var safeScore = scoreLib.getScoreByLevel(signConfig.idle.notIdleSafeLevel);
|
||||
|
||||
User.update(
|
||||
{
|
||||
status: {$ne: 'idle'},
|
||||
last_signed: {$lt: Date.now() - signConfig.idle.accountIdleForTime}
|
||||
last_signed: {$lt: Date.now() - signConfig.idle.accountIdleForTime},
|
||||
score: {$lt: safeScore}
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
|
||||
@@ -9,6 +9,7 @@ var path = require('path'),
|
||||
|
||||
var traceConfig = config.meanTorrentConfig.trace;
|
||||
var examinationConfig = config.meanTorrentConfig.examination;
|
||||
var scoreConfig = config.meanTorrentConfig.score;
|
||||
|
||||
/**
|
||||
* update
|
||||
@@ -47,3 +48,36 @@ module.exports.update = function (req, user, action, value) {
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* getLevelByScore
|
||||
* @param user
|
||||
* @returns {{level object}}
|
||||
*/
|
||||
module.exports.getLevelByScore = function (user) {
|
||||
var step = scoreConfig.levelStep;
|
||||
|
||||
var level = {};
|
||||
var l = Math.floor(Math.sqrt(user.score / step));
|
||||
level.score = score;
|
||||
|
||||
level.prevLevel = (l - 1) <= 0 ? 0 : l - 1;
|
||||
level.currLevel = l;
|
||||
level.nextLevel = l + 1;
|
||||
|
||||
level.prevLevelValue = level.prevLevel * level.prevLevel * step;
|
||||
level.currLevelValue = level.currLevel * level.currLevel * step;
|
||||
level.nextLevelValue = level.nextLevel * level.nextLevel * step;
|
||||
level.currPercent = Math.ceil((score - level.currLevelValue) / (level.nextLevelValue - level.currLevelValue) * 10000) / 100;
|
||||
level.currPercentString = level.currPercent + '%';
|
||||
|
||||
return level;
|
||||
};
|
||||
|
||||
/**
|
||||
* getScoreByLevel
|
||||
* @param l
|
||||
* @returns {number}
|
||||
*/
|
||||
module.exports.getScoreByLevel = function (l) {
|
||||
return l * l * scoreConfig.levelStep;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user