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
addTorrentsignature to accept URLs, notinfo_hashes- move looping/retrying behaviour from
addTorrentto 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://extensionsin chrome - Enable developer mode
- Delete
transmissionDownload.crxfrom 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.crxfile to repo directory - Checkout
images/screenshots - Update README, screenshots
- Commit, tag, and push