GSoC 2009/Projects/BitTorrent plugin for Canola


BitTorrent plugin for Canola - GSoC 2009 Project

Project summary

The purpose of this project is to develop a BitTorrent plugin for Canola. So far I can have list of RSS feeds and list of torrents for each. RSS feeds allow quick access to fresh torrents on several websites. The backend will be based on Transmission. Most used BitTorrent client for Maemo is Transmission, it exposes JSON based RPC interface which is easy to use from plugin. After completion of this feature I will also add libtransmission support so running Transmission separately is not required.


This is multi-purpose torrent plugin, so far I have completed

  • Management of Transmission instances on several hosts:
    • Pause, resume, remove torrents.
    • Show done/total sizes and up/download speeds.
    • Options panel includes Pause all and Resume all.
    • Hosts and their login information is stored in Canola's SQL database.
    • This allows user to manage their downloads on desktop, laptop, router etc.
  • Painless management of local Transmission instance on the tablet
    • Starts Transmission minimized and paused if required.
    • Reads Transmission settings automatically or resets them.
    • Using separate process allows user to exit Canola while keeping their downloads running.
  • Read RSS feeds of several (legal) torrent websites.
    • Add linked torrents to running Transmission instances (currently adds to local Transmission only).
    • Respects your download folder location set in Canola settings panel
    • This allows user easily to browse new media availible and start downloading with single click.
  • Manipulation of host list.
  • Manipulation of feed list


  • Fullscreen view of feed item:
    • Long description
    • In Options panel choice for download destination (which Transmission instance)
  • Fullscreen view of torrent:
    • Show detailed information about torrent while downloading (peer count, blocks done, verified, undone,etc).
    • Otherwise allow browsing Torrent contents and playback of retrieved media.
  • Add feature to search in RSS feeds
  • Finally add built-in torrent library support, so this plugin would not depend on the whole Transmission package