Permalink
Switch branches/tags
Find file
Fetching contributors…
Cannot retrieve contributors at this time
86 lines (61 sloc) 4.13 KB

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.

chrome page action

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.

initiate torrent download

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.

successful output

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

    encryption prompt

  • Adds additional, specified trackers to each torrent

options page

Installation

  1. Download the transmissionDownload.crx file
  2. Open it with chrome
  3. 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, not info_hashes
    • 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"
  • 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
  • keyboard 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

  1. make clean dist
  2. Update README, screenshots
  3. Commit, tag, and push