forked from robertklep/node-sabnzbd
-
Notifications
You must be signed in to change notification settings - Fork 0
/
sabnzbd-history.js
81 lines (71 loc) · 2.33 KB
/
sabnzbd-history.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
(function() {
// SABnzbd history class
var SABnzbdHistory = function(delegate) {
this.delegate = delegate;
};
// get history status
SABnzbdHistory.prototype.status = function() {
var delegate = this.delegate;
var this_ = this;
return delegate.cmd('history').then(function(response) {
var history = response.history || { slots: [] };
// normalize history slots
history.entries = history.slots.map(function(slot) {
return this_.normalize(slot);
});
// done
return history;
});
};
// get only a list of history entries
SABnzbdHistory.prototype.entries = function() {
return this.status().then(function(history) {
return history.entries;
});
};
// delete (an) item(s) from the history (or pass 'all' as single
// argument to remove everything from the history)
SABnzbdHistory.prototype.delete = function() {
var args = Array.prototype.slice.call(arguments);
return this.delegate.cmd('history', {
name : 'delete',
value : args.join(",")
});
};
// normalize history slot
SABnzbdHistory.prototype.normalize = function(slot) {
return {
_history_slot : true,
action_line : slot.action_line,
size : slot.bytes,
category : slot.category,
completed : new Date(slot.completed * 1000.0),
completeness : slot.completeness,
download_time : slot.download_time,
downloaded : slot.downloaded,
fail_message : slot.fail_message,
id : slot.id,
loaded : slot.loaded,
meta : slot.meta,
name : slot.name,
nzbname : slot.nzb_name,
nzbid : slot.nzo_id,
incomplete_path : slot.path,
postproc_time : slot.postproc_time,
pp : slot.pp,
report : slot.report,
retry : slot.retry,
script : slot.script,
script_line : slot.script_line,
script_log : slot.script_log,
show_details : slot.show_details == "True",
stage_log : slot.stage_log,
status : slot.status,
downloaded_to : slot.storage,
url : slot.url,
url_info : slot.url_info
};
};
// done
module.exports = SABnzbdHistory;
})();