Skip to content

Commit

Permalink
More methods implementations and refactoring.
Browse files Browse the repository at this point in the history
  • Loading branch information
Kami committed May 30, 2011
1 parent a0dcffb commit 6f12cc8
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 6 deletions.
34 changes: 29 additions & 5 deletions lib/database/memory.js
Expand Up @@ -15,13 +15,33 @@ MemoryDatabaseBackend.prototype.dumpData = function(callback) {
callback(null, this._database);
};

MemoryDatabaseBackend.prototype.addStartedEvent = function(infoHash, peerInfo, callback) {
this._updatePeerData(infoHash, peerInfo, { 'left': 0, 'started_date': misc.getUnixTimestamp() });
callback(null);
};

MemoryDatabaseBackend.prototype.addStoppedEvent = function(infoHash, peerInfo, callback) {
this._updatePeerData(infoHash, peerInfo, { 'left': 0, 'stopped_date': misc.getUnixTimestamp() });
callback(null);
};

MemoryDatabaseBackend.prototype.addCompletedEvent = function(infoHash, peerInfo, callback) {
this._updatePeerData(infoHash, peerInfo, { 'left': 0, 'completed_date': misc.getUnixTimestamp() });
callback(null);
};

MemoryDatabaseBackend.prototype._updatePeerData = function(infoHash, peerInfo, data,
callback) {
var key, value;
var peerData = this._getPeerData(infoHash, peerInfo);
peerData['left'] = 0;
peerData['completed'] = misc.getUnixTimestamp();
for (key in data) {
if (data.hasOwnProperty(key)) {
value = data[key];
peerData[key] = value;
}
}

this._updateLastAnnounce(infoHash, peerInfo);
callback(null);
};

MemoryDatabaseBackend.prototype._getPeerData = function(infoHash, peerInfo) {
Expand All @@ -36,7 +56,11 @@ MemoryDatabaseBackend.prototype._getPeerData = function(infoHash, peerInfo) {
'uploaded': 0,
'downloaded': 0,
'left': 0,
'last_announced': null

'started_date': null,
'stopped_date': null,
'completed_date': null,
'last_announce_date': null
};
}

Expand All @@ -55,7 +79,7 @@ MemoryDatabaseBackend.prototype._getInfoHashData = function(infoHash) {

MemoryDatabaseBackend.prototype._updateLastAnnounce = function(infoHash, peerInfo, date) {
var peerData = this._getPeerData(infoHash, peerInfo);
peerData['last_announce'] = misc.getUnixTimestamp(date);
peerData['last_announce_date'] = misc.getUnixTimestamp(date);
};

exports.DatabaseBackend = MemoryDatabaseBackend;
3 changes: 2 additions & 1 deletion lib/http/endpoints/announce.js
Expand Up @@ -76,9 +76,10 @@ function announceHandler(req, res) {
// Regular announce request
}
else if (params['event'] === 'started') {
db.addStartedEvent(params['info_hash'], peerInfo, onComplete);
}
else if (params['event'] === 'stopped') {

db.addStoppedEvent(params['info_hash'], peerInfo, onComplete);
}
else if (params['event'] === 'completed') {
db.addCompletedEvent(params['info_hash'], peerInfo, onComplete);
Expand Down

0 comments on commit 6f12cc8

Please sign in to comment.