Feature request: RPC support
It'd be really nice to be able to control the program remotely via RPC of some sort (JSON-RPC over WebSocket, for instance). Methods and features that would be handy are:
- add a .torrent file, either directly (as an encoded argument) or via a URL
- remove a torrent from the downloads/seeds
- get notified when download is complete and seeding
- check transfer status
I am working on something along those lines; specifically an API for controlling Taipei-Torrent's behaviour, and two modules that use said API:
- A toy webgui using gowut (https://code.google.com/p/gowut/),
- A simple RPC server & client pair that connect using encryption and authentication (aes-gcm).
I've been a bit distracted with other bugs/features, but this is definitely my next area of focus once I get the multiple-torrents branch stable enough to merge into master.
You might want to follow in the footsteps of aria2 (http://aria2.sourceforge.net/) when implementing this feature. We found its RPC implementation to be pretty well designed. (cc @tatsuhiro-t)
Also of interest is the transmission RPC. There's a range of stable transmission clients already (cli, curses, graphical and web although I haven't tested it yet)