⬇️ node-rutorrent-promise
Interact with ruTorrent via promises 👌
This was inspired by Grant's transmission library. It provides methods to communicate with ruTorrent client using promises. It works thanks to the HTTPRPC plugin.
Installation
npm i rutorrent-promise --save
const RuTorrent = ; const rutorrent = host: 'localhost' // default: localhost port: 80 // default: 80 path: '' // default: /rutorrent ssl: true // default: false username: '' // default: none password: '' // default: none;
Available fields
An array of fields can be passed to the get
and addFile
methods in order to retrieve specific values from the torrents. The list is taken from the available properties provided by the HTTPRPC ruTorrent plugin. Here it is:
d.is_open
d.is_hash_checking
d.is_hash_checked
d.get_state
d.get_name
d.get_size_bytes
d.get_completed_chunks
d.get_size_chunks
d.get_bytes_done
d.get_up_total
d.get_ratio
d.get_up_rate
d.get_down_rate
d.get_chunk_size
d.get_custom1
d.get_peers_accounted
d.get_peers_not_connected
d.get_peers_connected
d.get_peers_complete
d.get_left_bytes
d.get_priority
d.get_state_changed
d.get_skip_total
d.get_hashing
d.get_chunks_hashed
d.get_base_path
d.get_creation_date
d.get_tracker_focus
d.is_active
d.get_message
d.get_custom2
d.get_free_diskspace
d.is_private
d.is_multi_file
Methods
get(fields = [])
List all the torrents.
rutorrent ;
addFile(file, options = {})
Add a new torrent from a file.
rutorrent ;
addUrl(url, options = {})
Add a new torrent from an url.
rutorrent ;
delete(hash, deleteTiedFiles = true)
Delete a torrent.
rutorrent ;
Contributing
👨💻👩💻
Feel free to contribute and help me add more methods to interact with ruTorrent.
To run the unit tests, create an .env
file in the test
directory and fill it in with your client host and credentials:
$ cp test/.env.sample test/.env$ cat test/.envHOST=YOUR_CLIENT_HOSTPORT=YOUR_CLIENT_PORTPREFIX_PATH=YOUR_CLIENT_PREFIX_PATH # (default is /rutorrent) SSL=true # (https or http) LOGIN=YOUR_CLIENT_LOGINPASSWORD=YOUR_CLIENT_PASSWORD $ npm i && npm t