sabnzbd-client
v1.0.0
Published
Node API Client for SABnzbd
Downloads
10
Readme
SABnzbd NodeJS API Client
Let's be honest, the official SABnzbd API implementation is weird. I've never seen anything like it. That's why I've written this client. It's more than a simple wrapper. It tries to demystify the weirdness and conform to something a little more standard as far as API's go.
A few things to mention:
- This is a native Promise based library. None of this Bluebird crap.
- You'll need a newish version of NodeJS supporting ECMAscript 6 (2015). NodeJS 6+ should be fine. I refuse to write code for older versions. Don't be afraid to upgrade.
Installation
npm install sabnzbd-client
Usage
const sabnzbd = require('sabnzbd-client');
const client = new sabnzbd('http://localhost:8080', 'YOUR_SAB_API_KEY');
// Set the speed limit
client.setSpeedLimit('200K')
.then(res => {
console.log('RESPONSE:', res);
})
.catch(err => {
console.error(err.message);
});
Methods
version
Returns the SABnzbd version as a string. This doesn't actually require an API key
Return Values
{String}
Example
client.version()
.then(version => {
console.log('Sab Version:', version);
// Sab Version: 2.2.1
})
.catch(err => {
console.error(err.message);
});
queue
Returns the SABnzbd queue either in full or as a subset
Parameters
- {Integer} [start]
- {Integer} [limit]
- {String} [search]
Return Values
{Object}
Example
client.version(2, 10, 'thrones')
.then(queue => {
console.log('Queue:', queue);
})
.catch(err => {
console.error(err.message);
});
pauseQueue
Pauses the Queue indefinitely or for specified minutes
Parameters
- {Integer} [minutes]
Return Values
{Boolean}
Example
client.pauseQueue(15)
.then(success => {
console.log('Success:', success);
})
.catch(err => {
console.error(err.message);
});
resumeQueue
Resumes the Queue
Return Values
{Boolean}
Example
client.resumeQueue()
.then(success => {
console.log('Success:', success);
})
.catch(err => {
console.error(err.message);
});
speedLimit
Sets the Speed Limit for downloads. Limit can be one of the following values:
- A number between 1 and 100, which would set as the percentage of the limit set in your configs
- A Kilobyte per second limit, ie:
400K
- A Megabyte per second limit, ie:
2M
Note: In SABnzbd 0.7.20 and below the value is always interpreted as KB/s, no percentages.
Parameters
- {String|Integer} limit
Return Values
{Boolean}
Example
client.speedLimit('250K')
.then(success => {
console.log('Success:', success);
})
.catch(err => {
console.error(err.message);
});
onQueueComplete
Sets the action to take when the queue is done. The action string can be one of the following:
hibernate_pc
standby_pc
shutdown_program
- Script: prefix the name of the script with
script_
ie:script_test.py
Parameters
- {String} action
Return Values
{Boolean}
Example
client.onQueueComplete('hibernate_pc')
.then(success => {
console.log('Success:', success);
})
.catch(err => {
console.error(err.message);
});
sortQueue
Sorts the queue by the following fields in either ascending or descending order:
avg_age
name
size
Direction can be either:
asc
- Ascendingdesc
- Descending
with asc
being default.
Parameters
- {String} field
- {String} [direction]
Return Values
{Boolean}
Example
client.sortQueue('name', 'desc')
.then(success => {
console.log('Success:', success);
})
.catch(err => {
console.error(err.message);
});