diff --git a/config/env/torrents.js b/config/env/torrents.js index b7d23e22..d6b474e9 100644 --- a/config/env/torrents.js +++ b/config/env/torrents.js @@ -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 diff --git a/modules/announce/server/controllers/announces.server.controller.js b/modules/announce/server/controllers/announces.server.controller.js index c50c693a..d71c1109 100644 --- a/modules/announce/server/controllers/announces.server.controller.js +++ b/modules/announce/server/controllers/announces.server.controller.js @@ -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