announce request: write user uploaded,downloaded data

This commit is contained in:
OldHawk
2017-04-16 16:39:28 +08:00
parent 153d527ab9
commit d7baed3c02
2 changed files with 91 additions and 1 deletions

View File

@@ -44,17 +44,20 @@ module.exports = {
{name: 'U1/FREE'},
{name: 'U1/D.3'},
{name: 'U1/D.5'},
{name: 'U1/D.8'},
{name: 'U1/D1'},
{name: 'U2/FREE'},
{name: 'U2/D.3'},
{name: 'U2/D.5'},
{name: 'U2/D.8'},
{name: 'U2/D1'},
{name: 'U3/FREE'},
{name: 'U3/D.5'},
{name: 'U3/D.8'},
{name: 'U3/D1'}
]
},
torrentGlobalSalesValue: null,
torrentGlobalSalesValue: undefined,
tmdbConfig: {
tmdb_link_url: 'https://www.themoviedb.org/movie/',
//please change it to your api key from themoviedb.org

View File

@@ -350,6 +350,7 @@ exports.announce = function (req, res) {
req.selfpeer.forEach(function (p) {
if (p.user.str === req.passkeyuser._id.str && p.peer_id === query.peer_id) {
p.peer_status = PEERSTATE_SEEDER;
p.finishedat = Date.now();
p.save();
req.torrent.torrent_seeds++;
@@ -367,6 +368,24 @@ exports.announce = function (req, res) {
uploaded,downloaded
---------------------------------------------------------------*/
function (done) {
console.log('---------------writeUpDownData----------------');
var udr = getUDRatio();
var u = Math.round(query.uploaded * udr.ur);
var d = Math.round(query.downloaded * udr.dr);
req.selfpeer.forEach(function (p) {
if (p.user.str === req.passkeyuser._id.str && p.peer_id === query.peer_id) {
p.peer_uploaded += query.uploaded;
p.peer_downloaded += query.downloaded;
p.save();
}
});
req.passkeyuser.uploaded += u;
req.passkeyuser.downloaded += d;
req.passkeyuser.save();
done(null);
},
@@ -447,6 +466,74 @@ exports.announce = function (req, res) {
}
}
function getUDRatio() {
var udr = {};
var sale = req.torrent.torrent_sale_status;
if (config.meanTorrentConfig.torrentGlobalSalesValue !== undefined) {
sale = config.meanTorrentConfig.torrentGlobalSalesValue;
}
switch (sale) {
case 'U1/FREE':
udr.ur = 1;
udr.dr = 0;
break;
case 'U1/D.3':
udr.ur = 1;
udr.dr = 0.3;
break;
case 'U1/D.5':
udr.ur = 1;
udr.dr = 0.5;
break;
case 'U1/D.8':
udr.ur = 1;
udr.dr = 0.8;
break;
case 'U2/FREE':
udr.ur = 2;
udr.dr = 0;
break;
case 'U2/D.3':
udr.ur = 2;
udr.dr = 0.3;
break;
case 'U2/D.5':
udr.ur = 2;
udr.dr = 0.5;
break;
case 'U2/D.8':
udr.ur = 2;
udr.dr = 0.8;
break;
case 'U2/D1':
udr.ur = 2;
udr.dr = 1;
break;
case 'U3/FREE':
udr.ur = 3;
udr.dr = 0;
break;
case 'U3/D.5':
udr.ur = 3;
udr.dr = 0.5;
break;
case 'U3/D.8':
udr.ur = 3;
udr.dr = 0.8;
break;
case 'U3/D1':
udr.ur = 3;
udr.dr = 1;
break;
default: //U1D1
udr.ur = 1;
udr.dr = 1;
}
return udr;
}
/**
* sendError
* @param failure