mirror of
https://github.com/taobataoma/meanTorrent.git
synced 2026-03-05 03:31:04 +01:00
announce request: write user uploaded,downloaded data
This commit is contained in:
5
config/env/torrents.js
vendored
5
config/env/torrents.js
vendored
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user