Transmission Torrent Downloader
Usage
On any supported page (which currently includes the Torrentz individual torrent pages and any page containing a magnet link), a chrome page action will be made available to aid in the torrent starting process.
When clicked, a chrome "popup" will be displayed. The target server will be displayed at the top. Press the button to initiate the torrent-adding process.
You will see a stream of status messages followed by either a green success message or a red error message. In the event that a green success message was output, the torrent should now be added to the transmission server.
Note: This extension requires the Transmission HTTP RPC. This can be enabled through
the preferences
GUI
when using transmission-gtk or by setting the rpc-enabled
and related rpc-*
values in transmission-daemon's settings.json
file when using transmission-daemon.
Features
- Adds torrents to a transmission server (remote or local)
- (optionally) Adds all trackers from tracker aggregation websites
- Saves and optionally encrypts login information
- Adds additional, specified trackers to each torrent
Installation
- Download the transmissionDownload.crx file
- Open it with chrome
- Accept security warnings
TODO
- warn on attempted use without required settings such as invalid host/port
- test on transmission server that doesn't use authentication
- use proper node function signatures (first argument should be
err
)- handle errors by adding retry button (must be using node style callback signatures first)
- change
addTorrent
signature to accept URLs, notinfo_hash
es- move looping/retrying behaviour from
addTorrent
to event handler - add support for adding torrents by torrent download URL (for private torrents)
- add contextual menu for any link: "Send to Transmission ==(submenu)=> http://host:port/path"
- move looping/retrying behaviour from
- don't make user type in password repeatedly (send request to background page to store password in closure for X seconds)
- don't require save button on options page
- find a way to test this thing
- leopard shortcut
- standardize element id naming convention (underscore or camel case)
- find a way to make it continue even if popup is closed (web worker? do the work in the background page?)
- publicize
- go to transmission web interface (on torrent add) if tab is already open (see goToInbox function)
- modularize and DRY up everything
- function for trying an XHR with an array of inputs until we make a function pass
- function for sending an arguments object and a method to a transmission server
- see if I can add a context menu item for the page action that opens the web interface
- add support for multiple servers (don't forget to no longer cache the session ID as a single value!)
- rewrite in CoffeeScript
- think about allowing generic handler to find any 40-character hex string anywhere
- insert icons next to search results for extra accessibility (optional, defaulting to disabled)
- (permanent) write handlers for some more torrent websites without magnet links or with better alternatives
Building / Releasing
- Open
chrome://extensions
in chrome - Enable developer mode
- Delete
transmissionDownload.crx
from repo directory - Delete
images/screenshots
- Bump version number in
updateInfo.xml
- Bump version number in
manifest.json
- Press "Load unpacked extension..." button
- Choose repo directory
- Press "Pack extension..." button
- Choose repo directory
- If making an official release, choose signature file as well
- Move generated
transmissionDownload.crx
file to repo directory - Checkout
images/screenshots
- Update README, screenshots
- Commit, tag, and push