diff --git a/config/env/torrents.js b/config/env/torrents.js index df94ec1e..4d9f38b2 100644 --- a/config/env/torrents.js +++ b/config/env/torrents.js @@ -96,6 +96,7 @@ module.exports = { * @comment: used in admin tools, auto replace torrent make group info with this setting * @announceInterval: interval of twice announce request * @announceInterval_str: string desc of @announceInterval + * @announceIdleTime: announce time over @announceInterval this value is inactive peer * @announcePrefix: prefix of torrent file name, is will auto add when user download the torrent files * @clientBlackListUrl: forbidden download client list url, user can view this list to check forbidden client software * @seedingInFinishedCheck: settings to check whether can seeding an un-download finished torrent @@ -122,8 +123,9 @@ module.exports = { announce: { url: 'http://localhost:3000/announce', comment: 'MEAN.im GROUP', - announceInterval: 60 * 1000 * 5, - announceInterval_str: '5m', + announceInterval: 60 * 1000 * 10, + announceInterval_str: '10m', + announceIdleTime: 60 * 1000 * 2, announcePrefix: '{MEAN}.', sourceInfo: '{MEAN.im} Present by meanTorrent.', clientBlackListUrl: '/about/black', diff --git a/modules/announce/server/controllers/announces.server.controller.js b/modules/announce/server/controllers/announces.server.controller.js index e1122d63..a3b012bb 100644 --- a/modules/announce/server/controllers/announces.server.controller.js +++ b/modules/announce/server/controllers/announces.server.controller.js @@ -1136,12 +1136,12 @@ exports.announce = function (req, res) { if (peers.length < count) { index = i; } else { - Math.floor(Math.random() * peers.length); + index = Math.floor(Math.random() * peers.length); } p = peers[index]; if (p !== undefined && p !== req.currentPeer) { - if (p.last_announce_at > (Date.now() - announceConfig.announceInterval - 60 * 1000)) { //do not send ghost peer + if (p.last_announce_at > (Date.now() - announceConfig.announceInterval - announceConfig.announceIdleTime)) { //do not send inactive peer if (p.user.equals(req.passkeyuser._id)) { if (announceConfig.peersCheck.peersSendListIncludeOwnSeed) { mtDebug.debug(p._id.toString(), 'ANNOUNCE', true, req.passkeyuser); diff --git a/modules/torrents/server/controllers/peers.server.controller.js b/modules/torrents/server/controllers/peers.server.controller.js index 67bc8317..baa9e2e7 100644 --- a/modules/torrents/server/controllers/peers.server.controller.js +++ b/modules/torrents/server/controllers/peers.server.controller.js @@ -29,7 +29,7 @@ exports.getMySeeding = function (req, res) { Peer.find({ user: req.user._id, peer_status: PEERSTATE_SEEDER, - last_announce_at: {$gt: Date.now() - announceConfig.announceInterval - 60 * 1000} + last_announce_at: {$gt: Date.now() - announceConfig.announceInterval - announceConfig.announceIdleTime} }).sort('-peer_uploaded') .populate({ path: 'torrent', @@ -58,7 +58,7 @@ exports.getMyDownloading = function (req, res) { Peer.find({ user: req.user._id, peer_status: PEERSTATE_LEECHER, - last_announce_at: {$gt: Date.now() - announceConfig.announceInterval - 60 * 1000} + last_announce_at: {$gt: Date.now() - announceConfig.announceInterval - announceConfig.announceIdleTime} }).sort('-peer_downloaded') .populate({ path: 'torrent', diff --git a/modules/torrents/server/controllers/torrents.server.controller.js b/modules/torrents/server/controllers/torrents.server.controller.js index 77eb7583..7ab85390 100644 --- a/modules/torrents/server/controllers/torrents.server.controller.js +++ b/modules/torrents/server/controllers/torrents.server.controller.js @@ -2011,7 +2011,7 @@ exports.getSeederUsers = function (req, res) { Peer.count({ torrent: req.torrent._id, peer_status: PEERSTATE_SEEDER, - last_announce_at: {$gt: Date.now() - announceConfig.announceInterval - 60 * 1000} + last_announce_at: {$gt: Date.now() - announceConfig.announceInterval - announceConfig.announceIdleTime} }, function (err, count) { if (err) { callback(err, null); @@ -2026,7 +2026,7 @@ exports.getSeederUsers = function (req, res) { Peer.find({ torrent: req.torrent._id, peer_status: PEERSTATE_SEEDER, - last_announce_at: {$gt: Date.now() - announceConfig.announceInterval - 60 * 1000} + last_announce_at: {$gt: Date.now() - announceConfig.announceInterval - announceConfig.announceIdleTime} }) .sort('-peer_uploaded') .populate('user', 'username displayName profileImageURL isVip') @@ -2072,7 +2072,7 @@ exports.getLeecherUsers = function (req, res) { Peer.count({ torrent: req.torrent._id, peer_status: PEERSTATE_LEECHER, - last_announce_at: {$gt: Date.now() - announceConfig.announceInterval - 60 * 1000} + last_announce_at: {$gt: Date.now() - announceConfig.announceInterval - announceConfig.announceIdleTime} }, function (err, count) { if (err) { callback(err, null); @@ -2087,7 +2087,7 @@ exports.getLeecherUsers = function (req, res) { Peer.find({ torrent: req.torrent._id, peer_status: PEERSTATE_LEECHER, - last_announce_at: {$gt: Date.now() - announceConfig.announceInterval - 60 * 1000} + last_announce_at: {$gt: Date.now() - announceConfig.announceInterval - announceConfig.announceIdleTime} }) .sort('-peer_downloaded') .populate('user', 'username displayName profileImageURL isVip') diff --git a/modules/torrents/server/models/torrent.server.model.js b/modules/torrents/server/models/torrent.server.model.js index 3ae4e629..b3a29243 100644 --- a/modules/torrents/server/models/torrent.server.model.js +++ b/modules/torrents/server/models/torrent.server.model.js @@ -182,7 +182,7 @@ TorrentSchema.methods.updateSeedLeechNumbers = function (callback) { Peer.aggregate({ $match: { torrent: torrent._id, - last_announce_at: {$gt: new Date(Date.now() - announceConfig.announceInterval - 60 * 1000)} + last_announce_at: {$gt: new Date(Date.now() - announceConfig.announceInterval - announceConfig.announceIdleTime)} } }, { $group: { diff --git a/modules/users/server/controllers/admin.server.controller.js b/modules/users/server/controllers/admin.server.controller.js index eb51c384..67706e35 100644 --- a/modules/users/server/controllers/admin.server.controller.js +++ b/modules/users/server/controllers/admin.server.controller.js @@ -521,7 +521,7 @@ exports.getUserSeeding = function (req, res) { Peer.find({ user: req.model._id, peer_status: PEERSTATE_SEEDER, - last_announce_at: {$gt: Date.now() - announceConfig.announceInterval - 60 * 1000} + last_announce_at: {$gt: Date.now() - announceConfig.announceInterval - announceConfig.announceIdleTime} }).sort('-peer_uploaded') .populate({ path: 'torrent', @@ -550,7 +550,7 @@ exports.getUserLeeching = function (req, res) { Peer.find({ user: req.model._id, peer_status: PEERSTATE_LEECHER, - last_announce_at: {$gt: Date.now() - announceConfig.announceInterval - 60 * 1000} + last_announce_at: {$gt: Date.now() - announceConfig.announceInterval - announceConfig.announceIdleTime} }).sort('-peer_downloaded') .populate({ path: 'torrent', diff --git a/modules/users/server/models/user.server.model.js b/modules/users/server/models/user.server.model.js index d282361f..49005aec 100644 --- a/modules/users/server/models/user.server.model.js +++ b/modules/users/server/models/user.server.model.js @@ -421,7 +421,7 @@ UserSchema.methods.updateSeedLeechNumbers = function (callback) { Peer.aggregate({ $match: { user: user._id, - last_announce_at: {$gt: new Date(Date.now() - announceConfig.announceInterval - 60 * 1000)} + last_announce_at: {$gt: new Date(Date.now() - announceConfig.announceInterval - announceConfig.announceIdleTime)} } }, { $group: {