RSS:
  http://libtorrent.org/reference-RSS.html
Torrent-handle controls/options:
  http://libtorrent.org/reference-Core.html#torrent_handle
 ☐ Torrent properties
   ./epour/gui/TorrentProps.py
   ☐ trackers() replace_trackers() add_tracker()
   ☐ add_url_seed() remove_url_seed() url_seeds()
   ☐ add_http_seed() remove_http_seed() http_seeds()
   ☐ set_priority() (status.priority)
   ☐ use_interface()
   ☐ get_peer_info()
     ?
   ☐ set_ssl_certificate()
Torrent status info:
  http://libtorrent.org/reference-Core.html#torrent_status
Add Torrent-dialog:
 ☐ Add preferences for initial/automatic values for options
Preferences:
 ☐ max uploads
   ?
 ☐ max conns
   ?
 ☐ max half open conns
   ?
 ☐ ip filter
Misc:
 ☐ More tooltips in general
   Explanations for non-trivial actions, options, etc.
 ☐ More D-Bus controls
   ./epour/Epour.py>EpourDBus
 ☐ Auto-paste magnet links from clipboard
   ./epour/gui/__init__.py>TorrentSelector
   Remake this feature
 ☐ Moving finished torrents to a different folder
   ☐ Individual torrents
 ☐ Total count of torrents in session status
 ☐ Local search function for torrents, files?
 ☐ Web search
Error handling:
 ☐ Torrent errors
   http://libtorrent.org/reference-Alerts.html#torrent_error_alert
 ☐ Tracker errors
   http://libtorrent.org/reference-Alerts.html#tracker_error_alert
   ☐ Display authentication dialog when tracker requires it
 ☐ Performance notifications
   http://libtorrent.org/reference-Alerts.html#performance_alert
 ☐ File errors
   http://libtorrent.org/reference-Alerts.html#file_error_alert
 ☐ Listen failed/succeeded
   http://libtorrent.org/reference-Alerts.html#listen_failed_alert
   http://libtorrent.org/reference-Alerts.html#listen_succeeded_alert
I18N:
  This should wait until most of the features are in and the strings are stable.

＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
Archive:
 ✘ Construct and populate ./epour/gui/Preferences.py>PreferencesSession with an Idler @cancelled (21:20 01.07.2014) @project(Misc)
 ✔ Torrent tooltips @done (21:17 01.07.2014) @project(Misc)
  Using handle.status()
 ✔ Scrape tracker @done (18:43 06.07.2014) @project(Torrent-handle controls/options)
 ✔ Menu items @done (18:43 06.07.2014) @project(Torrent-handle controls/options)
  ./epour/gui/__init__.py>ItemMenu
 ✔ Force reannounce @done (18:43 06.07.2014) @project(Torrent-handle controls/options)
 ✔ Force DHT reannounce @done (18:43 06.07.2014) @project(Torrent-handle controls/options)
 ✔ Make strings localizable @done (17-05-08 01:40) @project(I18N)
 ✔ Generate pot file @done (17-05-08 01:40) @project(I18N)
 ✔ Dialog window @done (17-05-08 01:38) @project(Add Torrent-dialog)
 ✔ Session @done (16-08-11 01:15) @project(Misc)
 ✘ Handle switching between py2 <--> py3, messes up with pickled list of torrents @cancelled (16-07-30 08:15) @project(Misc)
  File "/usr/bin/epour", line 7, in <module>
  app = Epour()
  File "/usr/lib/python2.7/dist-packages/epour/Epour.py", line 89, in __init__
  self.session.load_torrents()
  File "/usr/lib/python2.7/dist-packages/epour/session.py", line 182, in load_torrents
  torrents = cPickle.load(pkl_file)
  AttributeError: 'module' object has no attribute 'OrderedDict'
 ✔ Save torrent & resume data periodically @done (16-07-30 08:05) @project(Misc)
  Will this accomplish anything?
  http://libtorrent.org/reference-Core.html#save_resume_data()
  http://libtorrent.org/reference-Core.html#need_save_resume_data()
 ✔ Use dicts to hold torrent info between sessions. @done (15:57 30.06.2014) @project(Add Torrent-dialog)
 ✔ Storage path @done (15:57 30.06.2014) @project(Add Torrent-dialog)
 ✔ Options @done (15:57 30.06.2014) @project(Add Torrent-dialog)
 ✔ Migrate the old ihash->torrent_file dict to the new list of torrents @done (15:57 30.06.2014) @project(Add Torrent-dialog)
 ✔ File selector @done (15:57 30.06.2014) @project(Add Torrent-dialog)
 ✔ Add default path and global opt in Prefs @done (15:21 06.07.2014) @project(Misc)
  ./epour/gui/Preferences
 ✔ Add callback for alert @done (15:21 06.07.2014) @project(Misc)
  http://libtorrent.org/reference-Alerts.html#torrent_finished_alert
  http://libtorrent.org/reference-Core.html#move_storage()
 ✔ set_upload_limit() set_download_limit() upload_limit() download_limit() @done (14:50 09.07.2014) @project(Torrent-handle controls/options)
 ✔ save_path() move_storage() @done (14:18 09.07.2014) @project(Torrent-handle controls/options)
 ✔ Pause gui updates when iconized/withdrawn @done (13:58 20.07.2014) @project(Misc)
 ✔ Move proxy settings to its own naviframe page and don't autocollapse the frames @done (13-08-18 18:02) @project(Misc)
 ✔ set_max_uploads() max_uploads() @done (12:47 08.07.2014) @project(Torrent-handle controls/options)
 ✔ set_max_connections() max_connections() @done (12:47 08.07.2014) @project(Torrent-handle controls/options)
 ✔ apply_ip_filter() (status.ip_filter_applies) @done (12:47 08.07.2014) @project(Torrent-handle controls/options)
 ✔ super_seeding() (status.super_seeding) @done (09:49 08.07.2014) @project(Torrent-handle controls/options)
 ✔ set_upload_mode() (status.upload_mode) @done (09:49 08.07.2014) @project(Torrent-handle controls/options)
 ✔ set_share_mode() (status.share_mode) @done (09:49 08.07.2014) @project(Torrent-handle controls/options)
 ✔ set_sequential_download() (status.sequential_download) @done (09:49 08.07.2014) @project(Torrent-handle controls/options)
 ✔ Torrent properties @done (09:49 08.07.2014) @project(Torrent status info)
  ./epour/gui/TorrentProps.py
 ✔ Auto-update @done (06:42 07.07.2014) @project(Misc)
