2015-07-29 01:47:09 -07:00
|
|
|
module.exports = Tracker
|
|
|
|
|
|
|
|
|
|
var EventEmitter = require('events').EventEmitter
|
|
|
|
|
var inherits = require('inherits')
|
|
|
|
|
|
|
|
|
|
inherits(Tracker, EventEmitter)
|
|
|
|
|
|
|
|
|
|
function Tracker (client, announceUrl) {
|
|
|
|
|
var self = this
|
|
|
|
|
EventEmitter.call(self)
|
|
|
|
|
self.client = client
|
|
|
|
|
self.announceUrl = announceUrl
|
2015-12-04 23:59:11 -08:00
|
|
|
|
2015-07-29 01:47:09 -07:00
|
|
|
self.interval = null
|
|
|
|
|
self.destroyed = false
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Tracker.prototype.setInterval = function (intervalMs) {
|
|
|
|
|
var self = this
|
2015-07-29 02:12:14 -07:00
|
|
|
if (intervalMs == null) intervalMs = self.DEFAULT_ANNOUNCE_INTERVAL
|
2015-07-29 01:47:09 -07:00
|
|
|
|
|
|
|
|
clearInterval(self.interval)
|
|
|
|
|
|
|
|
|
|
if (intervalMs) {
|
2016-03-28 23:38:23 -07:00
|
|
|
self.interval = setInterval(function () {
|
|
|
|
|
self.announce(self.client._defaultAnnounceOpts())
|
|
|
|
|
}, intervalMs)
|
2015-08-24 00:11:48 +02:00
|
|
|
if (self.interval.unref) self.interval.unref()
|
2015-07-29 01:47:09 -07:00
|
|
|
}
|
|
|
|
|
}
|