fix(logger): fixed announce inactive peer over announce interval

This commit is contained in:
OldHawk
2018-04-30 00:06:36 +08:00
parent 6b0d4f531c
commit 8ca9f83d67
7 changed files with 16 additions and 14 deletions

View File

@@ -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',

View File

@@ -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);

View File

@@ -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',

View File

@@ -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')

View File

@@ -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: {

View File

@@ -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',

View File

@@ -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: {