mirror of
https://github.com/taobataoma/meanTorrent.git
synced 2026-01-14 19:32:19 +01:00
154 lines
3.6 KiB
JavaScript
154 lines
3.6 KiB
JavaScript
'use strict';
|
|
|
|
var path = require('path'),
|
|
config = require(path.resolve('./config/config')),
|
|
logger = require('./logger'),
|
|
moment = require('moment'),
|
|
mongoose = require('mongoose'),
|
|
AnnounceLog = mongoose.model('AnnounceLog'),
|
|
UserDaysLog = mongoose.model('UserDaysLog'),
|
|
UserMonthsLog = mongoose.model('UserMonthsLog');
|
|
|
|
var announceConfig = config.meanTorrentConfig.announce;
|
|
var appConfig = config.meanTorrentConfig.app;
|
|
var mtDebug = require(path.resolve('./config/lib/debug'));
|
|
|
|
/**
|
|
* announceLog
|
|
* @param req
|
|
* @param torrent
|
|
* @param data
|
|
*/
|
|
module.exports.announceLog = function (user, torrent, data) {
|
|
var log = new AnnounceLog();
|
|
log.user = user;
|
|
log.torrent = torrent;
|
|
|
|
log.query_uploaded = data.query_uploaded || 0;
|
|
log.query_downloaded = data.query_downloaded || 0;
|
|
log.currentPeer_uploaded = data.currentPeer_uploaded || 0;
|
|
log.currentPeer_downloaded = data.currentPeer_downloaded || 0;
|
|
log.curr_uploaded = data.curr_uploaded || 0;
|
|
log.curr_downloaded = data.curr_downloaded || 0;
|
|
log.write_uploaded = data.write_uploaded || 0;
|
|
log.write_downloaded = data.write_downloaded || 0;
|
|
log.write_score = data.write_score || 0;
|
|
log.isVip = data.isVip || false;
|
|
log.isUploader = data.isUploader || false;
|
|
log.salesSettingValue = data.salesSettingValue || undefined;
|
|
log.scoreSettingValue = data.scoreSettingValue || undefined;
|
|
|
|
log.save(function (err) {
|
|
if (err) {
|
|
logger.error(err);
|
|
}
|
|
});
|
|
|
|
//write userDaysLog
|
|
var mom = moment().utcOffset(appConfig.dbTimeZone);
|
|
var y = mom.get('year');
|
|
var m = mom.get('month') + 1;
|
|
var d = mom.get('date');
|
|
|
|
mtDebug.info('announceLog: score = ' + data.write_score);
|
|
|
|
UserDaysLog.findOneAndUpdate({
|
|
user: user,
|
|
year: y,
|
|
month: m,
|
|
date: d
|
|
}, {
|
|
$inc: {
|
|
uploaded: data.write_uploaded,
|
|
downloaded: data.write_downloaded,
|
|
score: data.write_score
|
|
},
|
|
updatedAt: Date.now()
|
|
}, {
|
|
upsert: true,
|
|
setDefaultsOnInsert: true
|
|
}, function (err) {
|
|
if (err) {
|
|
logger.error(err);
|
|
} else {
|
|
//write userMonthsLog
|
|
UserMonthsLog.findOneAndUpdate(
|
|
{
|
|
user: user,
|
|
year: y,
|
|
month: m
|
|
}, {
|
|
$inc: {
|
|
uploaded: data.write_uploaded,
|
|
downloaded: data.write_downloaded,
|
|
score: data.write_score.toFixed(2)
|
|
},
|
|
updatedAt: Date.now()
|
|
}, {
|
|
upsert: true,
|
|
setDefaultsOnInsert: true
|
|
}, function (err) {
|
|
if (err) {
|
|
logger.error(err);
|
|
}
|
|
}
|
|
);
|
|
}
|
|
});
|
|
};
|
|
|
|
/**
|
|
* scoreLog
|
|
* @param user
|
|
* @param score
|
|
*/
|
|
module.exports.scoreLog = function (user, score) {
|
|
//write userDaysLog
|
|
var mom = moment().utcOffset(appConfig.dbTimeZone);
|
|
var y = mom.get('year');
|
|
var m = mom.get('month') + 1;
|
|
var d = mom.get('date');
|
|
|
|
mtDebug.info('scoreLog: score = ' + score);
|
|
|
|
UserDaysLog.findOneAndUpdate({
|
|
user: user,
|
|
year: y,
|
|
month: m,
|
|
date: d
|
|
}, {
|
|
$inc: {
|
|
score: score
|
|
},
|
|
updatedAt: Date.now()
|
|
}, {
|
|
upsert: true,
|
|
setDefaultsOnInsert: true
|
|
}, function (err) {
|
|
if (err) {
|
|
logger.error(err);
|
|
} else {
|
|
//write userMonthsLog
|
|
UserMonthsLog.findOneAndUpdate(
|
|
{
|
|
user: user,
|
|
year: y,
|
|
month: m
|
|
}, {
|
|
$inc: {
|
|
score: score
|
|
},
|
|
updatedAt: Date.now()
|
|
}, {
|
|
upsert: true,
|
|
setDefaultsOnInsert: true
|
|
}, function (err) {
|
|
if (err) {
|
|
logger.error(err);
|
|
}
|
|
}
|
|
);
|
|
}
|
|
});
|
|
};
|