Compare commits

...

6309 Commits

Author SHA1 Message Date
6892834d4d web: minor IE compatibility change 2011-11-25 23:47:08 +00:00
609f54a704 css: move icons out to their own stylesheet 2011-11-24 17:45:42 +00:00
fa08f7de43 details: add the missing items to the details tab
The web interface was missing the Owner and Shared items
that have been added to the gtk ui. Add these to bring the web
interface up to scratch.
2011-11-24 17:20:44 +00:00
a91037843b details: complete the status tab
Fix the remaining data items so they display correctly and tweak
the spacing to make the view a little more pleasant on the eye
2011-11-24 17:11:08 +00:00
4a43d6a635 data: fix type for progress column 2011-11-24 17:09:10 +00:00
1837d833c2 web: few sidebar fixes 2011-11-21 23:05:02 +00:00
e3e20aa14f web: fix using wrong Resource class
The Tracker class was still using the Resource class from Twisted instead
of our own subclass that adds some fun stuff :-)
2011-11-21 22:59:58 +00:00
c865486f82 web: add more jokey headers 2011-11-04 01:06:56 +00:00
c06d4dfea5 web: add a fun header
Add a jokey powered by header for people who like to
look at that sort of thing :-)
2011-11-04 00:50:11 +00:00
c405425993 web: fix details tab taking a while to update
Somewhere the handler for the torrent grid selection change
got removed during the upgrade to ext-4, add it back so the
details tab updating becomes instant once more.
2011-11-04 00:44:56 +00:00
d10752fc1a web: add a better log method
Add a new method, deluge.log which outputs to the javascript
console, including a date and time which will help when debugging
speed issues
2011-11-04 00:44:17 +00:00
ab665384d4 web: implement a better status tab
This new StatusTab uses a custom component, StatusItem and a
bunch of the Ext layout stuff in order to render the info on
the StatusTab, instead of an arbitary html modification. We
gain dynamic layout and more generic way of modifying the tab
2011-11-02 23:42:53 +00:00
f5e6eabee4 web: fix the details status tab
Start porting over the status tab to the new extjs4 format
2011-10-31 20:40:14 +00:00
717e66b836 web: big update for ext4.0.7 compatibility
Lots of changes here:

 * Switched to using Ext.create over new Object()
 * Add torrent window is now half working
 * Begin the makings of DnD add torrent file
2011-10-29 04:35:33 +01:00
fea0b41425 web: update extjs to 4.0.7 2011-10-29 01:28:58 +01:00
d37c3e0213 web: fix country flags
The flags have been moved into the ui folder so
the web server was looking in the wrong place
2011-10-21 21:49:34 +01:00
b724f74700 web: drop JSLoader extension
Ext now includes an Ext.Loader class that can load scripts so this
extra extension to do so is surplurfluous.
2011-10-05 23:31:41 +01:00
d44a357284 web: fix the sidebar and filterpanels
The filters in the sidebar can now be switch between finally. It
was down to the setTitle method overwriting whatever the accordion
layout was adding in.
2011-10-05 02:31:51 +01:00
d6715fcbb9 web: fix the filterpanel column width
Set flex = 1 on the column so it auto expands to take up the
entire available width.
2011-10-05 02:21:06 +01:00
2853d028fd web: more progressbar fixes
Fix displaying the progress bars within the peers tab, also
reduce the modifier so that the bars don't overflow their
containers.
2011-10-05 02:05:58 +01:00
4ab5c6d9de web: fix selecting the active tab
Fix selecting the active tab in the details panel, it seems that
the activeTab property wasn't working so explicitly call
setActiveTab after adding in the various panels.
2011-10-05 01:54:33 +01:00
f53dc5faaf web: random fixes
Just a bunch of random fixes to improve the situation whilst
trying to convert over to extjs4.
2011-10-05 01:41:49 +01:00
c46bc049d1 web: add files resource to the web server
Add a files resource that allows Ext to fetch the file tree via
one of it's ajax proxies.
2011-10-05 01:40:40 +01:00
39d19b5afd web: ensure torrent keys are always str
Make sure that we aren't sending unicode strings as keys, always
map them with str.
2011-10-05 01:40:40 +01:00
e8506b925f web: fix the progressbar renderer
Modify our progress bar renderer so it uses the new ext style
and actually creates a progress bar now :-)
2011-10-05 01:40:40 +01:00
eb9071fcb0 web: add a secure decorator to the auth module
This new decorator will make it easy to secure the render method
of twisted resources as we will be adding a fair few as more of
the interface moves to use ajax requests over json-rpc.
2011-10-05 01:38:37 +01:00
9362ec0103 ui: add a new file tree geared towards ext
Add a new file tree that is more suited to created a tree that
an ext proxy will be able to load and convert into a data store.
This file tree also has an improved file tree walk method that
uses generators instead of callbacks.
2011-10-05 01:38:37 +01:00
fe0332bccf web: allow the peers grid to be stateful
Give the peers grid an id so it can store it's state and be
guaranteed to be able to restore it upon a refresh.
2011-10-05 01:38:37 +01:00
64bacbfbf4 web: support using localStorage for state
This adds support for checking to see if the browser supports
the HTML5 localStorage, if so use that instead of cookies for
storing the UI state.
2011-10-05 01:38:37 +01:00
280377ad6f web: convert the peers tab to use an ext proxy
Instead of fetching the peer information via a rpc call simply
expose it as a fetching page via ajax so we can make use of
the Ext proxy and reader instead of manually loading it into
the store ourselves.
2011-10-05 01:38:37 +01:00
0c3d2322cc web: add loading mask
Add a loading mask that hides the loading of the interface with
some text and a nice ajax spinner. The situation can be further
improved by loading all of the scripts and other resources
dynamically, which will be added later.
2011-10-05 01:36:58 +01:00
07b6db0c98 web: update to extjs 4.0.2a 2011-10-05 01:36:58 +01:00
713953ec03 web: fix the toolbar actions
Use the proper method for getting the torrent ids instead of the
implementation within the toolbar. Using the one on the torrent
grid will be more likely to work.
2011-10-05 01:36:58 +01:00
6324737031 web: simple formatting change
Nicely space out a few dictionaries so they are easier on the
eye when reading the code.
2011-10-05 01:36:58 +01:00
428681aca3 webui: use the getId method in the details panel
Before we were using the id property which seems to have been
deprecated and wasn't returning the actual id. Switching to
use the getId() method returns the correct id (the torrent hash)
so grabbing the torrent details starts working again for the
details tabs.
2011-10-05 01:36:57 +01:00
317e9ee423 webui: fix the details tab
The path to DomHelper isn't working, so fix that, and also update
the copyright notices.
2011-10-05 01:36:57 +01:00
08e774bbda webui: fix displaying the torrent context menu
The event name and arguments has changed, as well as the response
from getPoint, nothing major.
2011-10-05 01:36:57 +01:00
43cb787b44 webui: fix closing the connection manager
Don't override the onHide method in the ConnectionManager, this
was stopping the window from being able to close.
2011-10-05 01:36:57 +01:00
fb8f1e7ebc web: fix the FilterPanel to a degree
This finishes converting the FilterPanel to use the new data stuff
from ExtJS4 as well as switching from a listview to a gridview.
Currently the Sidebar is still broken.
2011-10-05 01:36:57 +01:00
881bcee160 web: fix starting/stopping daemons
Just a simple change from listview to gridview here.
2011-10-05 01:36:57 +01:00
42b8af25aa milestone number 1, web interface loads now 2011-10-05 01:36:57 +01:00
bf4b826809 webui: fix the login window
The login window now functions correctly under ExtJS 4.0.
2011-10-05 01:36:57 +01:00
8ae14de208 webui: fix up the connection manager
Partially fix the connection manager so it now displays correctly
on first load. A lot of the functionality needs to be changed
due to the list -> grid migration.
2011-10-05 01:36:57 +01:00
5b45670a85 webui: first commit where the interface loads
At this point the interface loads, but it is misshapen and needs a lot more
work to get it fully extjs 4.0 compatible.
2011-10-05 01:36:57 +01:00
6cdf9940d3 add extjs javascript files too 2011-10-05 01:31:14 +01:00
8b69d66bae tidy up some deferred stuff 2011-10-05 01:31:13 +01:00
3ee434975c upgrade to extjs 4.0.2 2011-10-05 01:31:13 +01:00
dda4620d98 remove and update the ext-extensions 2011-10-05 01:31:13 +01:00
7ac0083239 remove more extensions that have been moved into core 2011-10-05 01:31:13 +01:00
6ae58248a1 remove the treegrid extensions as they are now included with extjs 2011-10-05 01:31:12 +01:00
1c78bcbb29 upgrade to extjs4 2011-10-05 01:31:12 +01:00
7227c97cac Fix typo in Windows shutdown handler 2011-08-08 10:42:29 -07:00
4fcfb677a4 Allow changing ownership even though the owner column is not visible. 2011-08-03 11:59:42 +01:00
808ff02130 Fix path for desktop file 2011-07-29 20:56:48 -07:00
08a0a2de99 Fix i18n sub-dir issue in gitignore 2011-07-28 22:56:22 +01:00
fd56ccaabf Fix .desktop file creation on Windows by just ignoring it 2011-07-28 22:53:40 +01:00
cebddf9c79 Add my name to author list 2011-07-22 19:29:32 +01:00
e9b602d85f Update windows setting 2011-07-19 16:50:56 -07:00
5b2d37954c Add intltool to dependencies 2011-07-13 23:27:00 +01:00
fcc13f454b Fix torrent file and folder renaming issues
Adds `sanitize_filepath` for use before passing to libtorrent rename_file
2011-07-13 22:44:13 +01:00
15ef668fef Localize the Desktop file
Conflicts:

	setup.py
2011-07-13 21:49:25 +01:00
bf145c0715 Option tab spin buttons connected to key press events 2011-07-11 17:23:42 +01:00
192f3d88e5 set spinbuttons numeric only 2011-07-11 16:27:48 +01:00
d9cf3a8c08 Remove un-needed signal handlers. 2011-07-11 15:15:45 +01:00
a41b1357b5 Update translations files 2011-07-11 14:27:08 +01:00
c3c21dae72 More missing(?) signal handlers. Refs #1891. 2011-07-10 23:24:10 +01:00
4daa7e2470 Fix the options tab. Refs #1891 2011-07-10 22:51:10 +01:00
b301051cdd Fix #1637: UnicodeDecodeError from 'deluge-console --help' with other languages 2011-07-10 16:45:02 +01:00
456f660878 Add some more lost signal on the Glade to GtkBuild migration. 2011-07-10 02:58:46 +01:00
f7ce07c68f Tidy up location of gettext setup_translations 2011-07-10 02:10:14 +01:00
9eb85cb6eb Fix lost signals for peers tab menu, files tab menu and options tab. 2011-07-10 02:05:20 +01:00
40fd945f70 Fix translation string in Freespace plugin 2011-07-10 01:58:08 +01:00
78944f47f3 Allow compiling translations in develop mode.
Translations will compiled into `deluge/i18n` instead of the build lib so that they can be used in a deluge develop mode install.
2011-07-10 01:20:13 +01:00
acb747bfd5 Log from where translations are being loaded. 2011-07-10 00:43:56 +01:00
0c1055511d Raw attempt of fixing the GtkBuilder introduced bugs. 2011-07-10 00:43:01 +01:00
f0c327a024 Fix #1505: Add libtorrent info to --version output 2011-07-09 23:19:57 +01:00
b81159f295 Fix #1801: ConsoleUI failed connect missing error message 2011-07-09 22:11:13 +01:00
ca86aa5714 Fixes keyerror with existing file priorities set to High 2011-07-08 23:34:02 +01:00
fc7fa94319 Add handler for drag_data_received to supress warning 2011-07-08 23:23:03 +01:00
c6ee8cf39d Do not use Ellipsis. 2011-07-08 10:03:04 +01:00
bd7bbc4e33 Add some "now needed" missing imports. 2011-07-08 04:07:04 +01:00
312a57aa50 Remove some left overs. 2011-07-08 00:39:48 +01:00
f87ed6d5a6 Moved the MainWindow to GtkBuilder.
This probably broke some behaviour because converting and splitting from libglade to GtkBuilder is not as perfect as it should be. What I noticed was fixed.
Also, GtkBuilder only allow calling `connect_signals()` once. Some code had to change to handle this and a "handlers proxy class" was created to keep the behaviour we had, ie, connect signals from where it was needed. Then I monkey patch the main windows GtkBuilder to not allow anyone to connect signals through it since it would break behaviour. Connecting signals to the main window builder instance is now done like `component.get("MainWindow").connect_signals()`. The best solution will probably break the main window ui into the needed parts in order to not have to monkey patch main windows builder.
Plugin's trying to get the main windows `main_glade` are now broken, on purpose, ie, the code they have needs to change since the calls to the builder are not the same as the calls to libglade. The plugins we ship with deluge will be fix as soon as possible.
2011-07-07 20:48:02 +01:00
4234311050 Start with a bigger width. 2011-07-07 20:48:02 +01:00
a47da57c0d Make sure the tracker url is of type string and not unicode. Never had this issue previously though. 2011-07-07 20:48:02 +01:00
13528fe7f8 Fix httpdownloader Tests 2011-07-07 01:22:51 +01:00
99358dcbb0 Fix httpdownloader error with existing filename 2011-07-07 00:11:00 +01:00
16cc8f6eea LP Bug #496265: Peers in PeersTab show non-zero download rate when seeding 2011-07-07 00:11:00 +01:00
a384cd70b3 Moved system tray to GtkBuilder. 2011-07-06 22:20:15 +01:00
0e00aa479b Moved queued torrents dialog to GtkBuilder. 2011-07-06 22:14:20 +01:00
807bc095b4 Moved remove torrent dialog to GtkBuilder. 2011-07-06 21:10:24 +01:00
5a81ab3c35 Moved the preferences dialog to GtkBuilder. 2011-07-06 20:56:58 +01:00
bad228645c The Stats plugin should not be using the old logging system. 2011-07-06 20:56:08 +01:00
e016b2106f Fix some broken GtkBuilder files. 2011-07-06 20:03:32 +01:00
f63f247ac5 Forgot to rename a glade from when migrating it to GtkBuilder. 2011-07-06 19:31:47 +01:00
0228af6b50 Add some missing .ui files. 2011-07-06 19:30:01 +01:00
90fb40b741 Moved the menubar to GtkBuilder. 2011-07-06 19:29:27 +01:00
367631c9aa Migrated filtertree_menu.glade to GtkBuilder. 2011-07-06 19:17:44 +01:00
b36d62be9b Fix #1263: GTK UI not remembering column width
Removing a column from the treeview on shutdown causes all the
column widths to be zero which are saved to the state file.

The workaround is to not save the state file if all columns are zero.
2011-07-06 19:16:31 +01:00
b4cc1d4358 Splited dgtkpopups.glade into other_dialog.ui and connect_peer_dialog.ui which are now using GtkBuilder. 2011-07-06 19:09:25 +01:00
39ad5a3596 Moved edit trackers dialog to GtkBuilder. Min PyGTK version is now 2.16. 2011-07-06 18:54:40 +01:00
dbad4684db Create torrent remotely progress information.
Support progress information when creating torrents remotely. For this to be possible, a method was added to the `RPCServer`, `emit_event_for_session_id()`, which does exactly what is says. This is needed because the event created, `CreateTorrentProgressEvent` needs to be addressed to a single session id, not all session ids interested in that event.
Fixed a bug that apparently was not found yet. When creating torrents locally, we defer that task to a thread. Since this thread updates UI widgets, namely the progress bar info and since we can't guarantee that it's the main thread, updating the widgets must be done by calling `gobject.iddle_add()`.
2011-07-06 16:45:02 +01:00
12d0e9574b Migrated create torrent dialog to GtkBuilder.
Additionally creating a torrent and saving it on a remote path now mimics the behaviour on doing it locally. Need to evaluate to see if it's possible to also show a progress when doing this remotely as now, the progress is only seen when doing it locally.
2011-07-06 12:45:50 +01:00
dd50b7bea1 Include deluge/ui/gtkui/glade/*.ui data files in setup.py. 2011-07-06 12:33:44 +01:00
4dc4049851 Migrated the connection manager to GtkBuilder. 2011-07-06 11:33:31 +01:00
27a6e398ee Migrated the "add torrent dialog" to gtkbuilder. 2011-07-06 11:17:13 +01:00
7035b1f166 Specify the plugin's name on logging calls. 2011-07-06 11:10:46 +01:00
a701fddbe8 Fix #948: New Release Dialog does not show server version 2011-07-05 19:49:53 +01:00
b512a664c6 Properly set/restore visibility when torrent is/is not "compact". 2011-07-05 15:46:36 +01:00
5bffa3757d Don't default to "localclient" as owner unconditionally.
Only set "localclient" as a last resort, first try to find out who is logged in.
2011-07-05 15:29:51 +01:00
8b6d6e3836 Fix broken SessionProxy tests. 2011-07-05 09:29:12 +01:00
37b9277c0e Update ubuntu tracker icon test 2011-07-05 18:00:06 +10:00
cf891125e6 Only deregister component if registry still exists 2011-07-05 17:58:18 +10:00
f75ec9d484 Fix translation of KiB/s 2011-07-04 21:39:08 +01:00
9a1ae06033 Fix #1239: Translated Tracker Error text not counted in sidebar Error status 2011-07-04 21:29:58 +01:00
55f456d851 Fix up/down speed labels in status tab 2011-07-02 19:14:26 +01:00
c346687510 Fix #1715: AddTorrentsDialog does not display filename changes when switching between torrents 2011-07-02 19:14:26 +01:00
08ee3d8f69 Fix #1582: Wrong path separator returned when moving storage in Windows 2011-07-02 19:14:18 +01:00
795f633bc4 Fix #491: Add auto_manage_prefer_seeds to prefs manager and UIs 2011-07-02 18:44:26 +01:00
b6596a27bc Add 'Last Seen Complete' to GTK and WebUI Status Tabs 2011-07-02 15:50:04 +01:00
b7fd2d1bf1 Fix #1338 Seeds and Peers totals not updating 2011-07-01 02:40:40 +01:00
0f625943c0 Fix #1477: Execute Plugin should ignore Added events from state file on startup 2011-06-30 19:24:38 +01:00
420447e386 Fix #1232: Improve display of Peers Tab IPv6 addresses 2011-06-30 18:02:06 +01:00
a79520e3ee Fix append trackers error occuring with magnet uris 2011-06-30 17:30:46 +01:00
8ae26c368e Add #890: If added torrent already exists, append extra trackers to it 2011-06-28 01:34:58 +01:00
981ad6d7d2 Fix #1246: Losing Labels upon restart 2011-06-27 22:53:47 +01:00
3b5e70580e Fix from_state in TorrentAddedEvent 2011-06-27 22:50:47 +01:00
71f9ef6499 Adjust file priorities to make Highest actually the highest allowed by libtorrent and High has been changed to what Highest was 2011-06-21 10:50:57 -07:00
7dd54b4b34 Save and restore Preferences dialog size from config 2011-06-19 23:29:54 +01:00
c64ed6adc5 Fix preferencesmanager from failing to stop when trying to stop
loopingcall that wasn't started
2011-06-18 20:13:58 -07:00
a82c753ac0 Fix uri handling when dragged to gtk window 2011-06-18 12:45:21 +01:00
96b5f617f2 Change log level of connect failed to INFO 2011-06-17 18:07:34 +01:00
842734c4e4 Add a file exists check to torrents passed as arg 2011-06-16 21:18:10 +01:00
095f4ff20a Fix path error with torrent files prefixed with 'file://' from Firefox 2011-06-16 21:18:09 +01:00
ed0b017fe1 Increase max piece size to 16 MiB in create torrent dialog
Increasing it beyond this will require changes to
createtorrentdialog.py
2011-06-10 13:24:36 +10:00
ce9b540b97 Initial GTK UI Speedups.
The speedups work is being separated into 2 different phases and possibly branches. The idea is to have this minimal speedup merged into master as soon as possible since it's pretty simple. Reduces initial data transfer to about 10% of what was previously being transfered when client connected.
The second phase is regarding row updates, ie, reduce them to what's actually being seen. This part is way more tricky.
2011-06-09 13:49:07 +01:00
5112ed48d1 Fix starting deluge-web when using osx/windows since the options are presented, the later conditionals fail since the options object does not have those attributes 2011-06-06 14:57:50 -07:00
dfa8834db8 Fix starting deluge-web 2011-06-06 14:57:38 -07:00
5bc63fa910 Change component.deregister to take the object as the parameter, not the name 2011-06-06 14:19:51 -07:00
24c945f139 Add a RPCServer.deregister method
Deregister RPC exports when disabling a Core plugin
2011-06-06 13:55:51 -07:00
2542ad9234 Let the Core fire the PluginDisabled event instead of disabling the plugin right away 2011-06-06 13:55:17 -07:00
acb4ab44d2 Merge branch 'stats_plugin_master' 2011-06-06 21:37:08 +01:00
16fbf27b90 Stats plugin update 2011-06-06 21:36:37 +01:00
3397c2487b Fix bug introduced on previous commit. We need to get a selection first! 2011-06-06 19:46:02 +01:00
66e8b34a54 GTK UI un-select row on torrentview shutdown and filter change.
This is specially useful when multiple torrents are selected. This way, the "changed" signal won't be triggered for every row.
2011-06-06 19:40:14 +01:00
59f9d4e5cc Revert "Work around plugins being garbage collected once enabled twice."
This reverts commit 2f71ef4264.
2011-06-06 18:16:05 +01:00
221dea1f1a GTK UI. Center the custom speed dialog on parent(statusbar). 2011-06-06 17:45:51 +01:00
4420aae092 Late import GTK UI's ConnectionManager so that the translations code can be properly setup. 2011-06-05 22:48:17 +01:00
ddc0957e3e Wrap non deluge exceptions so that they can also be sent to the client. 2011-06-05 22:44:01 +01:00
2f71ef4264 Work around plugins being garbage collected once enabled twice.
When a plugin is enabled, disabled and then enabled again, on that second enable, that instance is being garbage collected causing the loading of the plugin to fail. Work around that until we can narrow down why is this is happening on the second enable.
2011-06-05 22:28:37 +01:00
bc56b749ee Merge branch 'translate_updates' 2011-06-05 17:03:21 +01:00
34c95a08a3 Fix translations texts in glade and python files 2011-06-05 17:02:33 +01:00
9ae19e173f Remove page x from translatable in pref_diaog glade 2011-06-05 17:02:33 +01:00
6672aaba1b Change translatable to No for gtk stock labels 2011-06-05 17:02:33 +01:00
0712fc9dee Add gtk-* items to gettextize 2011-06-05 17:02:33 +01:00
07dc9005f3 Update gettextize to ignore .git folder 2011-06-05 17:02:33 +01:00
274a76ab3b Fix translate string in notifications plugin 2011-06-05 17:02:33 +01:00
777993f74a Fix translated string in addtorrentdialog 2011-06-05 17:02:33 +01:00
d1037ae213 update create_potfiles_in to ignore plugins build dir 2011-06-05 17:02:33 +01:00
15e9f5f218 Add 2 more commands to setup.py
Two more commands were added to setup.py:
 * develop_plugins - Installs each of the plugins in development mode
 * egg_info_plugins - Create the '.egg-info' distribution directories for each plugin. This will make the plugin discoverable by deluge

Both these commands are intended to be used while developing deluge.
2011-06-05 16:58:27 +01:00
4aab110aaf Remove duplicate code. 2011-06-05 16:23:09 +01:00
8933ac3123 Fix #1560 - FilesTab Progress value sorting by int instead of float 2011-06-05 13:23:23 +01:00
2e896b520e Fix #1456 - No ETA showing with multiple files 2011-06-05 13:23:16 +01:00
16d27b9657 Catch snd_path is None error in Notification Plugin 2011-06-04 23:24:39 +01:00
d3e8afdda1 Fix Extractor and Example plugin not starting 2011-06-04 22:56:36 +01:00
b86ba13376 Fix Feeder plugin name 2011-06-04 22:51:41 +01:00
f736576436 Fix Execute plugin not starting 2011-06-04 22:51:15 +01:00
9d1715405f Try to get some more debug info for plugins which are failing to load. 2011-06-04 19:25:53 +01:00
ee0d757b0e Some more fixes for plugins not fetching data from the correct namespace. 2011-06-04 19:23:03 +01:00
32c95fac1e Fix the Label plugin to get resources from the namespace. 2011-06-04 19:19:01 +01:00
df3214168c Cleaner fix for #1874, code clean up and reusability.
Translations are now setup on `deluge.common`. Where they used to be setup, a call to `setup_translations(setup_pygtk=False)` is now made.
Every call to `pkg_resources.resource_filename()` is now made through `deluge.common.resource_filename` to make sure that we're loading data from the right deluge install.
2011-06-04 18:06:45 +01:00
9e9261e6f8 Fix #1874.
While developing, if there's a second deluge package, installed globally and another in develop mode somewhere else, while pkg_resources.require("Deluge") returns the proper deluge instance, pkg_resources.resource_filename does not, it returns the first found on the python path, which is not good enough. Work around this issue.
2011-06-04 15:56:14 +01:00
087e94f6a1 Update all columns which use the "state" status field on the GTK UI TorrentView and not just the Progress column. 2011-06-04 10:43:24 +01:00
abe0031c2b Trigger a deprecation warning for code calling "getPluginLogger".
Since the plugins namespace was merged into master, calling "logging.getLogger(__name__)" will result in a properly named logger for plugins which will allow logging filtering.
The previous workaround "getPluginLogger()", is now deprecated.
2011-06-04 09:02:53 +01:00
13db148a11 Now that the plugin's namespace is in use, make the plugins get their own logger instead of using getPluginLogger() 2011-06-03 23:10:43 +01:00
84c5078667 Merge branch 'master' of deluge-torrent.org:deluge 2011-06-03 14:55:34 -07:00
cebdc89b18 Fix systemtray from stopping properly when appindicator is enabled 2011-06-03 14:53:41 -07:00
87e767d4c1 Merge branch 'master' into plugins-namespace 2011-06-03 17:48:22 +01:00
ce406674ec Update setuptools version in ez_setup 2011-06-02 21:50:38 +01:00
ac5f9a2828 Fix up stopping classic mode 2011-06-02 11:55:26 -07:00
6d55c44983 Fix menubar component stopping properly 2011-06-02 11:54:53 -07:00
1557d0da1f Move the log level to the left of the module because this field is a fixed width and its easier to read this way 2011-06-02 11:53:54 -07:00
2f785216f6 Show errors when trying failing to properly stop a component 2011-06-02 11:53:34 -07:00
8f1730591b While clearing the search filter, restore from pre-filter if available. 2011-06-02 11:16:11 +01:00
9ec44894d4 Fix #1873. Re-add the files and peers tab menus. 2011-06-02 10:58:45 +01:00
bb981127db spaces FTW 2011-06-01 20:29:38 +01:00
a96aeed706 Fix #1869: Set the disk io read/write to bypass OS cache in Windows as suggested in http://code.google.com/p/libtorrent/issues/detail?id=166 2011-05-31 09:56:23 -07:00
f14de6553a GTK UI search box grab_focus() on show. 2011-05-31 15:20:15 +01:00
b521b3065b GTK UI search box pre-filter implementation.
Implement a pre-filter for the search-box which will filter the currently visible torrents while waiting for the filter request to sent to the demon. This will make the searches seem way faster :)
2011-05-31 14:36:05 +01:00
ea438609bf GTK UI search by torrent name filter as a "toolbar".
Now, instead of permanently having a search box to filter the visible torrents by name, we now, mimic a toolbar just for that, mapped to CTRL-F. There's also a menu item in the "View" menu and a toolbar icon to toggle it. Implemented "Match Case" for the search.
2011-05-31 13:38:48 +01:00
0ba51d0e51 Fix peers tab flagsos.path.join 2011-05-30 22:14:36 +01:00
53370e4639 Fix peers tab flags missing 2011-05-30 21:33:17 +01:00
c70c8ea45d Add check to key_press_event for keyname returning None 2011-05-30 18:18:27 +01:00
937b53b355 pixmaps and icons moved to ui/data, all necessary references changed. 2011-05-30 17:57:39 +01:00
27cd89c4ad Remove setting the resume_data key to '' in the add_torrent_params as this causes libtorrent 0.16 to crash 2011-05-29 18:09:04 -07:00
c4dbf017a5 Merge branch 'master' into pieces-progress-bar
Conflicts:
	deluge/ui/gtkui/glade/main_window.glade
2011-05-29 20:00:25 +01:00
ec74f9aae3 Merge branch 'gtkui-search-by-name' 2011-05-29 19:21:12 +01:00
cfd955a605 AutoAdd plugin: Don't try to remove the same path twice! 2011-05-29 19:06:54 +01:00
feed806983 Wait at least 0.7 secs before triggering an update because of the search box, ie, allows typing the full search string before making the request. 2011-05-29 19:02:33 +01:00
c66637116b Allow searching torrents by name on the GTK UI. 2011-05-29 17:10:57 +01:00
4d4c6404b1 Log exception occurring while sending RPC errors to clients. 2011-05-29 16:39:00 +01:00
042ddd2891 Checkbox had no signal. 2011-05-29 14:36:26 +01:00
af24542856 AutoAdd plugin fix for #1863
In some cases, using `os.rename` between different mount points can trigger an `OSError`. Try to address these issues properly.
2011-05-29 11:37:31 +01:00
6dc393ed23 Allow a smtp port higher than 100
Add a shadow to scrolled window
2011-05-28 18:26:53 -07:00
c13eade81c Merge branch 'master' into pieces-progress-bar 2011-05-28 21:59:20 +01:00
eb639c3722 AutoAdd plugin auto fill.
When adding new entries, the dialog is auto-filled with what's defined for the Downloads entry in the preferences.
When showing errors, use the dialogs module.
Added some tooltips to the dialog.
2011-05-28 19:43:25 +01:00
dc514d308c GTK ui dialogs now have deluge's icon set. 2011-05-28 18:59:04 +01:00
67b5cde128 Fix #1867.
Now, if any option is changed on a torrent's options tab on the GTK UI, the apply button is set to sensitive.
2011-05-28 11:42:09 +01:00
ef98d19ed4 Merge branch 'master' into pieces-progress-bar 2011-05-28 10:54:03 +01:00
94a7b2ebf1 Fix #1861 - AutoAdd Warning (column number is a boolean) 2011-05-28 00:14:01 +01:00
e0443943b5 Catch an IndexError occurring in Files Tab when scrolling through long list of torrents 2011-05-28 00:05:18 +01:00
dd78a75ca8 Fix #1860 - Files Tab TypeError (could not parse subscript as a tree path) 2011-05-28 00:05:12 +01:00
82712c80e1 Fix #1195 - Right-click selecting issue when switching between files and folders 2011-05-28 00:05:00 +01:00
a710bcaed4 Add F2 key shortcut to rename files in Files Tab 2011-05-28 00:04:55 +01:00
3a7c182f83 Add XDG_DOWNLOAD_DIR for default download folder #1788 2011-05-28 00:01:58 +01:00
d42778afa3 Show the checking icon for the Checking Resume Data state 2011-05-25 13:21:16 -07:00
724025092a Set the WM_CLASS name to Deluge 2011-05-25 13:18:12 -07:00
bd43f3c464 Small text updates 2011-05-24 02:00:05 +01:00
8464a938b2 Fix up displaying versions in the about dialog 2011-05-23 17:09:16 -07:00
b8fad45eaa Change Connection Manager Key Shortcut to Ctrl-M 2011-05-23 22:23:35 +01:00
b08e90ac2a GTK UI edit trackers dialog. Remove un-used attribute. 2011-05-23 09:37:02 +01:00
13a379ef6c Update certain torrentview columns to default to not visible 2011-05-23 01:06:37 +01:00
09e24df4bb Merge branch 'masterchanges' 2011-05-22 23:36:49 +01:00
019f2a0619 Fix Up/Down buttons in Edit Trackers Dialog 2011-05-22 23:22:37 +01:00
2fb874d486 Add ability to set columns as not visible by default by setting the kwarg default to False when adding the column 2011-05-22 15:12:11 -07:00
85b4ceec30 Feature #1308: Add Seeds/Peers ratio to torrent list view 2011-05-22 22:48:03 +01:00
b0599313bc Feature #1646: Add columns for per torrent upload and download speed limits 2011-05-22 22:35:20 +01:00
974f48380f Change default value of close_to_tray to False
Prevents default install of Deluge disappearing if tray icon is missing.
2011-05-22 22:19:36 +01:00
b3865d0a7f Fix GTK UI edit trackers dialog.
Fix an issue with the edit trackers dialog where editing, adding or removing trackers was not "saved" in client/daemon mode.
2011-05-22 21:56:16 +01:00
79c9dd3076 Add libtorrent version to user_agent string
Example: Deluge/1.3.900-dev Libtorrent/0.15.5
2011-05-22 19:20:40 +01:00
edb0c2e71d Modify setup scripts to be executable 2011-05-21 18:54:15 +01:00
1c58dce3c1 Supress gobject warning in filtertreeview and torrentview
In console the warning "g_object_set_qdata: assertion `G_IS_OBJECT (object)' failed" will appear. Quick investigation could find no solution with suggestions a python issue.
2011-05-21 17:32:20 +01:00
445f3c0123 Fix menu bug caused by Change Owner menuitem code
The right-click torrent menu would move/jump around when the option submenu was opened with the mouse, possibly due to a conflict between glade file and append menuitem code in menubar.py. Solution was to create a menuitem entry for Change Owner in glade file and update code to add submenu to this new entry.
2011-05-21 16:23:36 +01:00
eb15c96403 Add key shortcuts for menu items 2011-05-21 16:22:42 +01:00
71f411e458 Some comment explanation. 2011-05-19 00:29:30 +01:00
856a6cd1ab Pieces bar "calculation" bug fix. 2011-05-18 05:01:30 +01:00
99f2dbd178 Minor __doc__ naming change. 2011-05-18 05:01:30 +01:00
0e4747bf22 Lower debug messages level. 2011-05-18 05:01:30 +01:00
81637f4572 Add a nice border to the pieces bar. 2011-05-18 05:01:30 +01:00
25f086fa85 PiecesBar caching.
The drawings made on the pieces bar are now cached in "sub-drawings" kept in memory. If no data has changed, those "sub-drawings" are used. If data changed, redraw whatever is necessary.
2011-05-18 05:01:30 +01:00
6d57a29f1d PiecesBar rounded corners. 2011-05-18 05:01:30 +01:00
9b3f5783d5 Update ChangeLog. 2011-05-18 05:01:30 +01:00
b3492b07a1 PiecesBar
Now, either show the pieces bar or the progress bar, not both.
2011-05-18 05:01:30 +01:00
28def22625 PiecesBar enhancement.
The pieces bar will now draw status text, like a regular progress bar does, and for the overall progress, a semi-transparent overlay is also drawn.
2011-05-18 05:01:30 +01:00
427fe23bdc Minor comment cleanup. 2011-05-18 05:01:30 +01:00
da5c5d4b84 PiecesBar implementation.
We now provide an option to the user to see the states of a torrent's pieces, ie, completed, downloading, waiting, missing.
If the user has this option enabled, another 3 will be shown to him(on the GTK UI), which will allow him to choose the colors for each piece state.
2011-05-18 05:01:29 +01:00
438cbd2238 Correct the pieces states "calculation". 2011-05-18 05:01:29 +01:00
2d59b62317 Provide the option to the user to use the pieces bar or not(Glade file only). 2011-05-18 05:01:29 +01:00
19f32b1446 Provided a method to get the pieces information.
Each piece will return 0 for a missing piece, 1 for a not downloaded piece, 2 for a downloading piece and 3 for a downloaded piece.
2011-05-18 05:01:29 +01:00
9b812a4eec Extend RPC Protocol.
While adding the multiuser auth related stuff, RPC_AUTH_EVENT was added, simply to not touch how RPC_ERROR was handled. It was created to allow recreating the exception on the client side. Instead of adding another rpc event type, extend RPC_ERROR to send the proper data to recreate the exception on the client side.
2011-05-18 03:56:17 +01:00
e383187796 Fix #1281. Show a nice dialog stating that the client is incompatible on the GTK UI. 2011-05-17 22:50:05 +01:00
6151050ad4 PEP-8 2011-05-17 22:16:12 +01:00
9a3bf35cdf Include our custom lower log levels into python's logging. 2011-05-17 02:47:16 +01:00
6391970fad Updates to desktop file
Add magnet mimetype and tryexec key
Fix exec key to handle files and urls to conform with new desktop-entry spec
Update name, comment and category keys
2011-05-16 22:11:20 +01:00
0ba0e013b5 Force backwards incompatibility.
Force clients prior to 1.4 to fail authentication, this was we might reduce tickets like #1852.
2011-05-15 22:18:38 +01:00
552c898998 Fix #1844.
The submenu got lost on one of the glade files merges. Re-added.
2011-05-15 11:26:41 +01:00
bc5b4d902f Fix LP Bug #779074 - TypeError in on_key_press_event(): cannot concatenate 'str' and 'NoneType' 2011-05-12 22:42:13 +01:00
6a8e3f1c49 Minor code cleanup. 2011-05-11 09:06:21 +01:00
81ca9952e9 Moved core.conf config upgrade to core instead of pref's manager. 2011-05-10 20:15:33 +01:00
74618d5a65 GTK UI move storage fixed. Was still not allowing moves. 2011-05-10 20:13:26 +01:00
0c110c2408 Fix broken tests. Twisted deferred loops, must be stopped! 2011-05-10 11:21:24 +01:00
1ac997e7d7 Upgrade core config and handle empty AutoAdd watchdirs.
We now upgrade the core's config to include 'sequential_download'.
On the auto add plugin, if there are no watchdir, provide a default that will allow the GTK UI not to thrown an exception.
2011-05-09 15:47:10 +01:00
d4692bef42 AutoAdd Plugin. Remove line feeds from log messages. 2011-05-08 23:48:42 +01:00
77fc53afc0 Sequential downloads. Was querying for the wrong key on the torrent status. Fixed. 2011-05-08 23:46:55 +01:00
3b676eca40 Sequential downloads: Implemented in GTK UI torrent options tab. 2011-05-08 23:33:21 +01:00
ce3ce2c035 Sequential downloads: Implemented in GTK UI preferences dialog. 2011-05-08 23:11:51 +01:00
c8735b5cab Sequential downloads: Implemented in add torrent GTK UI dialog. 2011-05-08 22:55:55 +01:00
cc5f2ffe18 Implemented sequential downloads on core. 2011-05-08 22:39:11 +01:00
89b79c76a3 Multiple files prioritize first last.
Now `set_prioritize_first_last()` sets the first 2% and the last 2% of the pieces of each file on a torrent at a high priority, ie, it no longer works on just single file torrents.
2011-05-08 22:11:20 +01:00
837c39fdda Last seen complete checks.
Remove some un-necessary `lt.version_minor` checks since these checks will remain for a while, at least until deluge depends on libtorrent >= 0.16 which should preferrably not happen.
2011-05-08 21:58:26 +01:00
110026edbe AutoAdd plugin #1842
Fix bug #1842 and also implement "delete torrent file on torrent removal from session".
2011-05-08 21:38:53 +01:00
3b8ebf68a6 GTK UI menubar accounts retrieval.
Only ask for known accounts if we have the required level for it.
2011-05-08 21:36:10 +01:00
ffd344d0b5 On some "race" conditions, the torrent is removed before it's status could be retrieved. Return an empty status. 2011-05-08 21:35:06 +01:00
9d29ca7b29 Check against libtorrent >15 not >16. 2011-05-08 02:39:35 +01:00
38906468c1 Last seen complete
Update last_seen_complete when a status is queried for and that key is on the keys to get or it's a full status query. Either way, only "calculate" last seen at a minimum of one time per 60 seconds(simple caching).
2011-05-08 01:36:40 +01:00
95d7caf3ac Implement Last Seen Complete, on core and on GTK UI. 2011-05-07 20:22:55 +01:00
4044f52f77 GTK UI Torrent's options tab.
Set the apply button to sensitive if the value of a spin button changed. This was missing.
2011-05-07 15:54:10 +01:00
a7bd953169 GTK UI Connection Manager (#1824)
Warn the user if he's trying to connect to a local daemon that's not running and "start local daemon if necessary" is not enabled.
Extend and reuse the connection callbacks on the connection manager to re-use code.
2011-05-07 15:14:32 +01:00
8922717ff2 fix unrequired requests 2011-05-07 13:20:09 +01:00
117d50b728 fix a bug when the host_id doesn't exist 2011-05-07 13:20:04 +01:00
04af8965bc apply patch from #1742 2011-05-07 00:02:49 +01:00
d6f5e5b4ec fix #1537 editing trackers list, trackers have to be reselected 2011-05-06 23:44:19 +01:00
1f3a7bf44c Fix #1333 Peer list doesn't update automatically 2011-05-06 23:25:07 +01:00
2e62ced811 fix #1323 filter panels not scrollable 2011-05-06 22:33:10 +01:00
95819c79e5 Fix #1268, Torrent errors not displayed in webui 2011-05-06 22:23:25 +01:00
5ad21303c6 fix issue #1567, js from plugins not working with different base setting 2011-05-06 22:09:17 +01:00
922e64a07e fix issue #1799 2011-05-06 22:01:06 +01:00
30d70d2b9b apply patch from #1562 2011-05-06 19:16:20 +01:00
a06b350858 Correct log message. 2011-05-06 19:10:26 +01:00
06f025f4bd fix the widths on the input boxes, whitespace changes too 2011-05-06 19:03:05 +01:00
d362a6ceba fix the path given by the set-cookie header 2011-05-03 19:05:15 +01:00
138b8ae314 Sorry for the noise. Email change. 2011-05-02 05:02:46 +01:00
6f3bc5620f Fix #1824.
When connected to a client, and then trying to connect to another, the connection manager component will be stopped(while the connect deferred is still running), so, the ConnectionManager.connection_manager reference will be deleted. If that's not the case, close the dialog.
2011-05-01 07:41:44 +01:00
f2249d5803 Remove un-used import. 2011-05-01 04:46:54 +01:00
f26de83509 Don't run into loops when the auth file does not exist and we're trying to create it. 2011-05-01 04:44:42 +01:00
f6826a4f48 Fix #1822
Only query the core for the known accounts if connected to it.
2011-04-30 20:45:15 +01:00
dd3f78bd36 More changes related to automatic connections.
Auto-connecting on start of the gtk ui is now fully working.
Auto-staring localhost if needed is now also working.
Authentication failures now get passed correctly to the client implementation which will allow the user to enter username and/or password to complete authentication.
It's now possible to shutdown the daemon from the connection manager even if not on localhost, it just needs all required information to be present on the liststore.
2011-04-30 07:42:06 +01:00
63d0d0c69b GTK UI connection manager fixes.
Auto-connecting to daemon now works. Fixes #1815.
Auto-starting a `localhost` daemon now also works, the reconnecting attempts were not being "triggered".
When not connected to a daemon, "Quit & Shutdown Daemon" is not present. So #1818 is also fixed.
Some more work regarding #1819 was done.
Client now disconnects before shutting down the GTK UI.
2011-04-28 16:59:01 +01:00
1be59bb116 don't show decimals for 100% progress (100% instead of 100.00%) 2011-04-28 14:28:53 +02:00
751345fc28 minor function renaming to make things properly private 2011-04-28 14:28:53 +02:00
12ea65d188 show priorities for directories. fulfills feature request 1688 2011-04-28 14:28:53 +02:00
e950cca059 reset selection to top on alltorrent resume in case another mode has effected torrent list 2011-04-28 14:28:53 +02:00
a063095dad Make sure we have a config loaded in the connection manager. Fixes #1819. 2011-04-28 11:06:26 +01:00
39978d5ade Fix #1278 by keeping references. 2011-04-28 10:37:35 +01:00
9fa8748432 Fix some clean config dir issues.
Moved some auth stuff to `deluge.common` because they're also used on the GTK UI.
Now, if a user starts deluge in classic mode and tries to change it to client/daemon mode, he see's a dialog stating that the current session will be stopped. If he answers no, nothing is done, the classic mode pref is set back as it was. If he answers yes, all components are stopped and client is disconnected. At this stage the user can open the connection manager to start the daemon and connect.
If the user starts in client/daemon mode and switches to classic mode he see's a dialog stating that deluge must be restarted.
The GTK UI connection manager now loads it's default config with the localclient username and password. If not present in the auth file, the auth file will be recreated.
2011-04-27 22:06:13 +01:00
18b27d4b49 Remove a pref regarding auto adding in queue thinking it was from the core's previous AutoAdd. Re-Added. 2011-04-27 19:42:54 +01:00
f41f6ad46a Test fixes and #1814 fix.
All test were adapted, and some more were added to comply with the new multiuser support in deluge.
Regarding #1814, host entries in the Connection Manager UI are now migrated from the old format were automatic localhost logins were possible, which no longer is.
2011-04-27 19:32:13 +01:00
bb9a8509c8 Fix trying to load the AutoAdd component as it no longer exists in core 2011-04-27 11:03:43 -07:00
6694ac7a58 Merge branch 'master' of deluge-torrent.org:deluge 2011-04-27 17:30:09 +01:00
81d22eb730 When parsing the auth file, if an old format is found(with no auth levels), make sure that the localclient always has the ADMIN permission as he should. 2011-04-27 17:30:00 +01:00
47a9b18b89 enforce min/max values for float/int spin inputs 2011-04-27 18:09:20 +02:00
292929ba59 better handling of keyboard input in int/float spin inputs 2011-04-27 18:09:20 +02:00
cbcf413ffd use callbacks for mode switching when stopping alltorrents component. should fix bug 1686 2011-04-27 18:09:20 +02:00
4d8b34209b fix column trimming a bit 2011-04-27 18:09:20 +02:00
98a8be7131 avoid having the tests hang due to a failing to connect client! 2011-04-27 13:38:23 +01:00
2e68e0181c Remove some leftovers from the old multiuser branch. 2011-04-27 13:18:59 +01:00
e6773dfce1 Merge branch 'master' into multiuser-oldprefs 2011-04-27 13:15:05 +01:00
f56be66556 Update ChangeLog. 2011-04-27 13:06:26 +01:00
67a4fd49e9 fix problem when not showing name,state or queue columns. fix problem if there were no var length cols. 2011-04-26 22:59:48 +02:00
e992ac3eab ignore key presses that only makes sense when we have a state when we don't have a state 2011-04-26 14:18:25 +02:00
d05352db65 fix bug for selecting multiple torrents with cursor above last mark (bug 1689) 2011-04-26 14:03:49 +02:00
b1e0dd66eb handle files with [ and ] characters in them 2011-04-26 13:53:11 +02:00
897c2f981f Add help to torrent details mode.
fixes bug: 1687
2011-04-26 12:41:19 +02:00
91801e1632 Cleanup debug message new lines. 2011-04-26 10:14:39 +01:00
fa20e49a93 Fixed 2 bugs regarding torrent ownership change.
On the core, the code was not adapted to the new AuthManager. On The GtkUI, nothing was being shown to the user when errors occurred while changing ownership.
2011-04-26 08:37:20 +01:00
4432e6e6e3 Also handle moving the torrent files after adding them besides renaming or deleting(per whatchdir) 2011-04-25 16:38:49 +01:00
c225c045cb Better file modification detection. 2011-04-25 15:07:07 +01:00
e552c21f66 Automatically detect auth file changes and reloading those changes. 2011-04-25 14:43:44 +01:00
89d04a393b Upgrade old auth file, save it and reload it. 2011-04-25 14:35:01 +01:00
f1730dc4d4 Removed leftovers from the core autoadd. All autoadd features are now addressed by the AutoAdd plugin. NOTE: Console UI and Web UI should also remove the core auto add stuff. 2011-04-25 13:44:27 +01:00
fb5005e3f6 The AutoAdd plugin now supports multiusers. 2011-04-25 13:16:11 +01:00
51b5b23f76 Remove debug printing. 2011-04-25 13:12:18 +01:00
78e966946f Allow setting torrent ownership when adding new torrents. 2011-04-25 09:13:45 +01:00
936bd925d9 Some changes were left behind on last commit. 2011-04-25 08:12:46 +01:00
43e3fe2a1a Account Management Implemented.
Account management is now implemented for the GTK UI. Some changes to the core were required since the clients need to know which authentication levels exist, and, to expose account creation, update, and removal to the clients. The best effort is done to try not to compromise the auth file.
2011-04-24 17:38:35 +01:00
6ed3136c8e No server side logouts.
Do not try to for a disconnect on this branch, maybe on another one.
2011-04-24 17:19:57 +01:00
8195421c99 Some account management work. Not yet complete. 2011-04-22 18:51:51 +01:00
342da12d0c Merge branch 'master' into multiuser 2011-04-22 11:44:10 +01:00
5296fc7d4c Fix one more possible issue with regard to #1786 2011-04-22 11:42:48 +01:00
233e814547 Late import twisted's reactor, it allows the gtk reactor to be proper installed. 2011-04-22 11:33:45 +01:00
03325c5f48 Add some missing code 2011-04-22 11:27:14 +01:00
1a6742b1e2 Keep consistency on deluge.config. 2011-04-22 11:26:09 +01:00
154688a3e2 Implement __delitem__ on deluge.config.Config. 2011-04-22 11:26:09 +01:00
fe12552590 Now, when the authentication dialog appears, user fills in the password and hits ENTER, the authentication call will be made.
Implement tooltips on treeview's headers when adding columns.
Renamed the "public" state of a torrent to "shared", ie, shared among other deluge users. Allow changing shared state from clients and currently from the    GtkUi.
2011-04-22 11:26:08 +01:00
e63c33c496 Allow changing ownership of torrents. In order to achieve this, added deluge.core.set_torrents_owner(), deluge.core.get_known_accounts(), deluge.core.authmanager.get_known_accounts() and deluge.core.torrent.set_owner()`. So far only the GtkUi has this fully implemented. 2011-04-22 11:25:33 +01:00
105cb52cb0 Add method to return the current authenticated username. 2011-04-22 11:24:42 +01:00
3e0ea26e5f Remove unused method, duplicate log messages and add a method to get the logged in user's authentication level. 2011-04-22 11:24:42 +01:00
e44cac0eaa Since there's no default username for authentication, update hostlist to include the username.
Remove debug prints or extreme debugging. Minor code cleanup. Remove un-used imports.
2011-04-22 11:24:42 +01:00
86a1b801f5 Now it is possible to not even store the username on the hosts entry in the connection manager, both username and password will be asked to the user. WARNING: No more "localclient" automatic login, ie, username, is mandatory else, it will be asked to the user. 2011-04-22 11:24:42 +01:00
b3870ad6dd Use a specific response code for authentication requests. Recreate authentication request exceptions on the client end. 2011-04-22 11:24:42 +01:00
67ff83360f Use the exceptions from deluge.errors. 2011-04-22 11:22:19 +01:00
b2a16a0240 Move deluge errors to the errors module, they will be reused later on other parts of code.
Now, calling connect on client has two behaviours, if username/password is passed the client connects, authenticates and returns daemon info, if username/password is not passed, only the daemon info is returned. This might change a bit later on though.
2011-04-22 11:22:19 +01:00
e17c035521 Cleaned up previous commit regarding threads and the GTK2Reactor.
Now a dialog apears if the daemon complains about a missing password in order to authenticate. Asks the password from the user and retries to connect.
2011-04-22 11:22:19 +01:00
249398489e Removed problematic code. GTK2Reactor takes care of all that. 2011-04-22 11:22:19 +01:00
d44f59a0e7 Add some docstrings. 2011-04-22 11:22:19 +01:00
6c99204828 The GtkUi's connection manager now has the ability to edit existing host entries besides adding and deleting them.
It also asks for a password prior to attemting to connect in case the password is null, this alows host entries not to store the passwords on file like it has done so far.
NOTE: This is not yet the desired behaviour, ie, the daemon should simply complain if the authentication details are incomplete and the client should act accordingly. I had an issue with this though, I catched the errback the daemon was sending, asked the user for the password and re-tried to authenticate again. However, twisted always locked when I tried this. I'm investigating it.
2011-04-22 11:22:19 +01:00
1794f09b21 Make branch runnable. 2011-04-22 11:22:19 +01:00
b08a4679de Respect the torrents ownership and unless the logged in user is an admin, only return his own torrents plus all other public torrents. 2011-04-22 11:21:12 +01:00
bfc221fc18 Begin work on fixing up the Preference dialog
Split up the glade file for each individual page
2011-04-22 11:21:12 +01:00
5ad3a1666c Update the ErrorDialog 2011-04-22 11:20:15 +01:00
49d5ed6bde Hopefully, final fix for #1786:
We now make sure that a state file exists when trying to restore an order from it.
The best effort to restore the previous order is made, though, in some cases, since we're matching against names which are translatable, a match might not be found, in that case, continue the effort though skip the non matching column name. On next load, everything should be fine since the state file will include the, now in use, translation.
2011-04-21 20:55:01 +01:00
4b9209674e Merge branch 'master' of deluge-torrent.org:deluge 2011-04-21 18:31:03 +01:00
b9a688013f Fix #1786:
Don't reorder duplicate columns, need to dig how duplicate columns got into the state file, and also skip non visible columns.
2011-04-21 18:29:59 +01:00
387b746fae Merge branch 'master' of deluge-torrent.org:deluge 2011-04-21 10:41:15 +01:00
796109649d fix the client tests albeit in an ultra hacky way 2011-04-21 10:41:00 +01:00
d258794517 Merge branch 'master' of deluge-torrent.org:deluge 2011-04-21 00:47:01 +01:00
98f80c0eb6 Restore column order from state.
On the TorrentView's treeview, the column's position stored on state was being ignored, but event if that info was not being ignored and passed to the several `add_column`'s the order could not be added because the order the columns are added does not(might not) match what was stored in state. So, we now restore the ordering once all columns are added.
2011-04-21 00:42:36 +01:00
d18becc861 fix bug due to vim stripping regex being wrong 2011-04-20 18:37:39 +01:00
0503db85ea Merge branch 'master' of deluge-torrent.org:deluge 2011-04-20 18:34:02 +01:00
bcb636dda4 improve the core tests to use a built in webserver 2011-04-20 18:32:55 +01:00
5bc304470c Let's use what the stdlib provides us. Use email.utils.formatdate instead of strftime() a datetime object. 2011-04-14 09:29:40 +01:00
42e1e2fd20 Include proper Date header in email notifications. 2011-04-13 12:54:59 +01:00
bb0746c3e8 use os.sep and strip what's already in input box from complete options 2011-04-13 11:52:03 +02:00
19799d74b4 Include gif pixmaps in the package data 2011-04-09 22:36:12 +10:00
0d560bcd6f Add update-tracker/reannounce command for command-line/legacy interface 2011-03-29 14:56:39 +02:00
69b79756f2 Merge branch 'master' of git.deluge-torrent.org:deluge 2011-03-28 16:51:23 +01:00
fd248eb1fd split the auto_add_trackers textfield otherwise it breaks the label plugin 2011-03-28 16:51:03 +01:00
45ccd3b84a Fix libtorrent not compiling with boost libs 1.46 2011-03-26 17:33:26 +11:00
298b85c368 Improve autoadd filename matching (fixes #1614) 2011-03-26 17:33:26 +11:00
67add964de Apply patch from #1581 to add an option to enable the app indicator
interface
2011-03-22 17:16:50 -07:00
e81a279dc2 fix naming issue with close callback in popups 2011-03-19 12:38:55 +01:00
280781ded9 queue management in torrent actions 2011-03-13 12:53:13 +01:00
f30a2858ce convert the tests to use a local webserver instead of pinging deluge-torrent.org and damoxc.net 2011-03-08 14:43:09 +00:00
32b41fabd6 Handle redirection when adding a torrent by url 2011-03-09 00:44:42 +11:00
a0f9689664 Handle partial downloads due to incorrect headers (fixes #1517) 2011-03-09 00:40:15 +11:00
08843ccad5 support prefs that don't fit on the screen
remove superfluous log message
2011-03-08 12:21:45 +01:00
e0bb8869aa add some more columns 2011-03-08 11:34:59 +01:00
255af3c485 set status fields to get from visible columns 2011-03-08 00:35:55 +01:00
f35145b0a6 make alltorrents a component like it should be and get rid of alltorrentsstateupdater 2011-03-08 00:16:42 +01:00
f2d560351e add preferences for display and size of columns in alltorrent mode 2011-03-07 13:40:25 +01:00
62da60a0e4 break out each column preference 2011-03-07 12:37:23 +01:00
d9c1a56d44 use config params for columns to show 2011-03-07 12:14:36 +01:00
84f278dbcc show a 'scrollbar' of sorts for popups with a lot of text 2011-03-01 19:39:55 +01:00
356f298e9c update help display using new wrap_string.
re-wrap on resize

add some highlighting
2011-03-01 19:13:17 +01:00
5fb01dacc0 add a {!normal!} color scheme 2011-03-01 19:12:48 +01:00
8d541ad419 use new wrap_string function in MessagePopup 2011-03-01 19:12:05 +01:00
426eea154e add a wrap_string function that works properly 2011-03-01 19:11:53 +01:00
ccc047848a split long lines in torrent info popup 2011-02-28 20:22:49 +01:00
11d8332e43 make sure we're in interactive mode before checking for screen 2011-02-28 14:03:39 +01:00
2193240c66 update help for legacy mode 2011-02-27 17:15:12 +01:00
e43c532e63 remove screen.py
all functionality has been moved elsewhere at this point
2011-02-27 17:14:50 +01:00
930addb389 add 'legacy' mode, which is basically just the old deluge-console, for curmudgeons 2011-02-27 17:12:57 +01:00
fab1e8412d encode string before write to specified encoding 2011-02-24 14:18:49 +01:00
1cce30393b add interactive field to commander so command -h will work 2011-02-24 13:24:45 +01:00
510c81776f add status command 2011-02-24 13:24:35 +01:00
e7096d9509 Merge branch 'master' of deluge-torrent.org:/deluge 2011-02-24 12:13:06 +01:00
5ae242472f don't search for empty string in alltorrents.py 2011-02-24 12:11:14 +01:00
ee75786e40 handle the case where libtorrent doesn't know what files are in a torrent.
this is the case when torrent was added by a magnet link
2011-02-24 12:08:42 +01:00
87473f2cde support magnet uris in add command/dialog 2011-02-24 12:08:22 +01:00
b2f349c05d Remove unnecessary import 2011-02-23 11:22:29 -08:00
9ac0d62149 Remove some imports that are no longer neccessary 2011-02-23 11:21:47 -08:00
db46a97263 Merge branch 'master' of deluge-torrent.org:/deluge 2011-02-23 20:05:48 +01:00
4c2f9a1a0a un-revert main.py as it doesn't actually handle events. 2011-02-23 20:04:15 +01:00
64e38eac20 Revert "Fixed "PluginEnabledEvent" and "PluginDisabledEvent" the argument cannot be called name since that should contain the event name."
This reverts commit 078ed6ba71.
2011-02-23 11:01:59 -08:00
499a58f50d Revert 67ea05921c which changed how event handlers worked.
Unfortunately this will not work with plugins as they do not have the events defined and
the creation of the event object fails.
2011-02-23 10:47:16 -08:00
5f0f7204a8 don't use libtorrent anymore in add 2011-02-23 16:15:34 +01:00
62f6683730 support urls from add dialog 2011-02-23 16:12:49 +01:00
60d96c6f20 add add_spaces to InputPopup 2011-02-23 16:07:47 +01:00
d1efe5f1b4 support adding url arguments in add.py command 2011-02-23 15:53:14 +01:00
62421080ef better unicode handling and trimming 2011-02-22 18:04:16 +01:00
9e4ea0a671 don't trim rows
(basemode seems to get confused on strings with double-wide chars)
2011-02-22 17:18:12 +01:00
b11468c19b handle double-wide unicode characters 2011-02-22 17:17:55 +01:00
40a5722987 support -s STATE in info 2011-02-22 16:57:56 +01:00
956ea10a00 convert torrent_ids back into a list in case we need to remove from it 2011-02-22 16:56:54 +01:00
543fcf722c use os.path.commonprefix to do better completion 2011-02-22 14:58:40 +01:00
7f52472e9e add move command for console ui 2011-02-22 13:56:22 +01:00
5619991f2a add move storage option to torrent actions 2011-02-22 13:39:38 +01:00
2b04955128 don't double add current torrent on action popup 2011-02-22 13:39:20 +01:00
e83d540fe4 update help 2011-02-22 13:38:54 +01:00
4e5d88da82 import deluge.ui.common for TorrentInfo command 2011-02-22 12:34:29 +01:00
10816cb8f4 always have a torrents list, in case get_torrent_name gets called from a mode without get_torrent_name in new ui 2011-02-22 12:32:32 +01:00
5f8eda9204 Merge branch 'newconsole'
Conflicts:
	deluge/ui/console/main.py
2011-02-22 00:26:57 +01:00
b0c561dbbc add add_checked_input 2011-02-22 00:09:27 +01:00
1173f1c714 support globbing for multi-file add and have better fail reports 2011-02-21 17:44:12 +01:00
3da5cd9816 add get_torrent_name 2011-02-21 17:43:35 +01:00
d9d8762c8e add get_torrent_name 2011-02-21 17:41:28 +01:00
e16ee523a5 fix messagepopup height_req 2011-02-21 17:41:10 +01:00
3db7bcbfc7 make message popups a bit more sane 2011-02-21 16:30:49 +01:00
e1a3a431f0 support command line options again 2011-02-17 16:26:58 +01:00
9a3316f950 use '-' instead of '~' in progress bar 2011-02-17 16:04:54 +01:00
1789e8d03c Minor changes for command line usage 2011-02-17 16:03:11 +01:00
837322478b return deferred for proper command line behavior 2011-02-17 15:30:14 +01:00
ce2516ab2c search field is black,white 2011-02-15 20:15:43 +01:00
962bfc3d2c support searching torrent names in alltorrent view 2011-02-15 20:14:14 +01:00
4ff0fb19ee left arrow goes back to overview from torrent details 2011-02-15 19:36:17 +01:00
7a4006439b add preferences help 2011-02-15 19:10:57 +01:00
c015c3a57d update help a bit 2011-02-15 19:10:51 +01:00
8a9e732f95 lots of new preference work 2011-02-15 18:55:27 +01:00
0b3c408e64 make the edit trackers window resizable 2011-02-15 12:54:35 +00:00
d3a61bbda4 fix scrolling on the edit trackers window 2011-02-15 12:49:04 +00:00
c523958bf6 Fixes for gtk-ui translations 2011-02-14 23:50:08 +00:00
06003b3650 Fix translate issue for Trackers tree in sidebar 2011-02-14 23:49:45 +00:00
1e0005f572 Fix: os.join created root path in Remove_Empty_Folder if variable 'folder' had a leading slash 2011-02-14 23:49:04 +00:00
4a071ecba1 add an eventview 2011-02-14 12:38:18 +01:00
77eb1a5f82 prefs actually work. some tweaks to inputs to better support prefs
not all prefs available yet
2011-02-14 12:26:24 +01:00
ac8c928a5b don't always refresh on __init__ 2011-02-14 12:25:43 +01:00
23f64a5440 add back write method and keep track of events for (future) event view 2011-02-14 12:25:04 +01:00
98ca371b15 Sidebar: Enabled strings for translation and added icons to Trackers filter 2011-02-11 22:10:00 +00:00
f8737777b1 Fix #1527 - Converting unicode to unicode error in move_storage 2011-02-11 21:58:40 +00:00
e198ea14e4 Fix Create Torrent Dialog Box - Some buttons raise Type Error if no row selected 2011-02-11 21:58:32 +00:00
553f35eae5 Fix #1510 - Cannot create a torrent with only non-zero tier trackers 2011-02-11 21:58:24 +00:00
376a23e6fd Fix #1513: Unhandled Twisted Error in test_listen_port 2011-02-11 21:58:18 +00:00
077f35ec5c use selection input for cancel/apply/ok 2011-02-10 17:54:59 +01:00
00ab9ff499 support offset text/select inputs and select inputs with no message 2011-02-10 17:47:50 +01:00
20302021c4 initial prefs mode. doesn't do anything yet 2011-02-10 17:39:42 +01:00
9e5455793b remove unused code
this breaks command line right now, will put it back in later
2011-02-10 16:45:10 +01:00
7f6a1db89a start with a connection manager instead of just alltorrents 2011-02-10 01:12:14 +01:00
cdcab320fb add current_selection to SelectablePopup 2011-02-10 01:11:31 +01:00
ea22bb0b10 #1514 - Indicator Applet Patch 2011-02-09 19:15:34 +00:00
554f34a261 Fix #690 - Renaming folders does not remove old empty folders 2011-02-08 19:34:54 +00:00
ad2b13eb2c Fix #1248 - Deluge-console unicode support on redirected stdout 2011-02-08 17:36:09 +00:00
ce636ccd57 Catch a possible DivByZero error when moving folders around in fileview tab 2011-02-08 17:36:09 +00:00
053700342a Fix #1336 - Uneeded Horizontal Scrollbar shows in Files&Peers Tab 2011-02-08 17:35:57 +00:00
cd7805bfda make text input not go over width 2011-02-08 14:43:41 +01:00
79869faa53 #1494 - Add Downloaded and Uploaded columns to torrent view 2011-02-08 06:49:30 +00:00
b77f8929d6 oops, add torrent actions new file 2011-02-07 15:10:41 +01:00
e1d8025309 show torrent actions form details when 'a' pressed 2011-02-07 15:10:18 +01:00
183a97785b split off torrent actions popup 2011-02-07 15:01:07 +01:00
f748660cac show status message 2011-02-07 15:00:51 +01:00
cea6c817df Fix #1506 - max speed not restored on a yellow->green transition 2011-02-05 01:12:52 +00:00
b9ff47e10f Fix #755 - Can't set listen_ports through console UI 2011-02-05 01:12:48 +00:00
14746bf94d Fix #1450 Trailing white space in paths 2011-02-05 01:12:47 +00:00
87f871f40a Fix #1500 - Console crashes on command longer than terminal width. This error is raised if the cursor is off screen and is supressed with try-except 2011-02-05 01:12:45 +00:00
9f3ac37f25 Fix #1282 - Text for AutoManaged changed to 'On/Off' and localized 2011-02-05 01:12:44 +00:00
417a9f6e63 Fix #1373, #1386 - Creating and moving non-ascii folder names in MS Windows 2011-02-05 01:12:43 +00:00
ba6389bcac Updated help text for deluge-console on Windows 2011-02-05 01:12:42 +00:00
9bca1a72b1 Fix for deluge-console adding torrent files in Windows 2011-02-05 01:12:41 +00:00
e688b45448 Fix #1508 - TypeError in cell_data_queue() could not convert argument to correct param type 2011-02-05 01:12:36 +00:00
4c54cfedb9 Fix #1507 - Temporary file race condition in core/core.py:add_torrent_url 2011-02-05 01:12:35 +00:00
88039a0eda fix patch, missing deluge.common when adding the options 2011-02-04 19:57:31 +00:00
9a54beef78 add patch from #1473 2011-02-04 19:43:27 +00:00
b0a0574ae0 Apply patch from #1194 2011-02-04 19:37:42 +00:00
db64745862 fix priority popup title 2011-02-02 20:50:48 +01:00
0353a388b3 add option to action popup for torrent details 2011-02-02 20:49:27 +01:00
b41ebe1b89 don't show action popup if there are no torrents in the view 2011-02-02 20:49:11 +01:00
1952357f35 update help 2011-02-02 20:40:15 +01:00
6c8529b3ba updated file seperator 2011-02-02 20:39:57 +01:00
78ea5c9bd3 don't enter torrentdetails if nothing is selected 2011-02-02 18:32:03 +01:00
b35875e300 attempted fix of color/underline issue.
this is a bit of a hack, and seems to work some places, but not everywhere
2011-02-02 16:21:52 +01:00
ad498c6e42 Revert "remove special case white/black pair. doesn't seem needed and breaks white,black,attrs"
This does actually seem to break some terminals

This reverts commit ba3a093746.
2011-02-02 13:57:31 +01:00
d1b3aa54ad support setting file priorities in torrentdetails 2011-02-02 13:46:05 +01:00
d0346a104f don't need len() 2011-02-02 13:45:17 +01:00
5f888faceb handle resize in torrentdetail 2011-02-02 13:11:15 +01:00
f6f3a8e084 allow marking in file view (no actions just yet) 2011-02-02 13:09:41 +01:00
5dcc935852 fix for only drawing one effected line and only draw effected lines on marking 2011-02-02 12:50:40 +01:00
eba7c2bf17 add index value to directories in file_list 2011-02-02 12:44:07 +01:00
00fa074452 small fix for scrolling 2011-02-01 18:00:25 +01:00
5d46d2aee5 add torrentdetails state, allow state switching, move some formating to format_utils 2011-02-01 17:23:15 +01:00
007dd67ea1 only redraw effected lines on scroll. seems to get rid of the flickering problem :) 2011-01-29 14:04:32 +01:00
ff3c3f7148 add torrent can add paused. remove torrent works 2011-01-29 12:29:18 +01:00
68c04acf50 refactor + support selectinput 2011-01-28 22:42:04 +01:00
44676f282a use some caching to speed up row drawing.
still some flicker unfortunatly.  seems to be related to the length of the row line, not sure if there's much i can do there
2011-01-28 17:54:36 +01:00
182ec0cd97 specify hotkeys for filter/action popups 2011-01-28 17:34:03 +01:00
6f0b1fd7f2 support hotkeys in selectable popup 2011-01-28 17:33:51 +01:00
ba3a093746 remove special case white/black pair. doesn't seem needed and breaks white,black,attrs 2011-01-28 17:04:28 +01:00
b7e7a4bc49 Fix typo 2011-01-27 11:18:59 -08:00
ac18ecd1f0 Fix #1498: Use os.path.normpath on new_folder to remove any double slashes or other problems that could be in the string 2011-01-27 11:12:40 -08:00
2f6283ea39 initial checkin of new console ui
pretty alpha code, but it works and gives an idea of the direction the ui might go
2011-01-26 22:18:18 +01:00
b30499c6ac Fix #1484: trying to access the screen object when not using interactive mode 2011-01-16 15:59:29 -08:00
8c12c47d3e Add "none" as a log level to support quieting the logging messages. Refs #1470. 2011-01-02 16:06:28 +00:00
356808b02c Fix #1470. 2011-01-02 16:03:00 +00:00
1f800bf49a On a 64bit platform with old plugins, the deprecation code was unable to find out which was the caller module. This might also happen on other platforms although I was unable to reproduce it on x86. Anyway, handle it cleanly. 2011-01-01 18:33:41 +00:00
d1b4523733 Let log files be a little bigger, 50Mb is not that much anyway. 2010-12-28 01:58:38 +00:00
c00391a852 Merge branch 'master' into plugins-namespace 2010-12-28 01:45:50 +00:00
5841521133 Added missing import.
Removed log message that caused error. It was never logged anyway, even on the master branch before the improved logging branch was created.
2010-12-28 01:26:25 +00:00
7e2411289d Merge branch 'master' into plugins-namespace
Conflicts:
	ChangeLog
2010-12-13 12:37:37 +00:00
2fa8ca6753 Merge branch 'master' into improved-logging
Conflicts:
	ChangeLog
	deluge/plugins/autoadd/autoadd/gtkui.py
	deluge/ui/client.py
2010-12-13 12:31:20 +00:00
1c15df8e00 Merge branch 'master' of deluge-torrent.org:deluge 2010-12-12 17:50:13 +00:00
f282487806 fix bug #1355 2010-12-12 00:03:04 +00:00
078ed6ba71 Fixed "PluginEnabledEvent" and "PluginDisabledEvent" the argument cannot be called name since that should contain the event name.
Ported plugins on deluge's git to this new event dispatching style.
2010-12-11 05:42:45 +00:00
67ea05921c Implemented passing a copy of an event instead of it's arguments to event handlers. Necessary changes to the event handlers on deluge's code were made, plugins still need to be ported to this new style. 2010-12-11 05:11:18 +00:00
0f36a65aaf Update ChangeLog with the backwards incompatible notice. 2010-12-10 05:49:38 +00:00
90d23ce582 Revert e52018bfcd. Simply fail. It's documented on the ChangeLog. 2010-12-10 05:42:19 +00:00
860457ff48 Update ChangeLog. 2010-12-10 05:01:31 +00:00
e52018bfcd Dont make code that still uses the old "TorrentAddedEvent" fail, instead log a warning and make it work. 2010-12-10 04:59:05 +00:00
9bd11ab204 Update ChangeLog. 2010-12-10 04:35:41 +00:00
c164013725 Ported Feeder(although not working on current deluge), Notifications, Scheduler, Stats, Toggle and WebUi to the deluge.plugins namespace. 2010-12-10 04:31:51 +00:00
b9a8bf2409 Ported the Label plugin to the deluge.plugins namespace. 2010-12-10 04:09:25 +00:00
4c3d068f0c Improve create_plugin.py and the generated create_dev_link.sh. 2010-12-10 04:08:36 +00:00
c9e4d286c3 Ported the FreeSpace plugin to the deluge.plugins namespace. 2010-12-10 03:29:36 +00:00
e43146a4ac Simplify some code on create_plugin.py. 2010-12-10 03:25:39 +00:00
1c2eb0c737 Improve and port the create_plugin.py script to generate the plugins under the "deluge.plugins" namespace.
Any plugin not using the "deluge.plugins" namespace will get a `DeprecationWarning` printed on the console.
2010-12-10 03:15:36 +00:00
b0d77a4f20 Ported the Extractor plugin to the plugins namespace. 2010-12-10 00:35:51 +00:00
20635773b3 Ported "Blocklist", "Example" and "Execute" to the "deluge.plugins" namespace. 2010-12-09 23:11:20 +00:00
f17634ea63 Drop pkutil and simply use pkg_resources. 2010-12-09 22:18:59 +00:00
16f617d240 Initial commit to implement the "deluge.plugins" namespace package support. 2010-12-09 22:05:34 +00:00
1c7676bfe5 Finish last commit, forgot to revert some of the files. 2010-12-09 18:12:25 +00:00
63fa5bf85b Reuse existing "TorrentAddedEvent" instead of creating a new one. 2010-12-09 18:08:34 +00:00
6cefb49f28 Diferentiate adding an already managed torrent from adding a new, unmanaged torrent, to the session. 2010-12-08 19:33:05 +00:00
eeed72a977 Fix tweak_logging_levels(). 2010-12-07 14:21:45 +00:00
49e10ea0cf Fix bug introduced in previous commit. 2010-12-06 12:34:57 +00:00
26e45dcbc8 Make use of logging.handlers.WatchedFileHandler if deluge is running on python 2.6. 2010-12-06 11:59:37 +00:00
b7bc1fdb1d configmanager needs to be imported at a latter stage at least for the gtk frontend. 2010-12-06 11:45:17 +00:00
3b00a7de59 Swhiched the old style logging, ie, a single logger for all logging output to several loggers. This brings the ability to tweak the logging levels for each of the loggers, ie, we can have the "deluge" logger be at the ERROR level while having "deluge.core" at the DEBUG level, meaning we will only see log message for all of the deluge loggers above the ERROR level while still having all messages above the DEBUG level for the "deluge.core" logger and it's children. This kind of tweak can be achieved by adding a file named "logging.conf" to deluge's config dir and this is explained on the deluge.log.tweak_logging_levels function.
Passing `-r` to the cli's while also passing `-l` will make the logfile rotate when reaching 5Mb in size. Three backups will be kept at all times.
All deluge's code is now using this new style logging along with the git hosted plugins. For other plugins not hosted by deluge, which still imports `LOG` as the logger, a deprecation warning will be shown explaining the required changes needed to use the new style logging. New plugins created by the `create_plugin` script will use the new logging facilities.
2010-12-06 11:20:22 +00:00
14ec9464aa fix a bug that can occur when upgrading 1.1 config files 2010-12-01 10:21:26 +00:00
3d64f0d8da Fix #1283 Consistent icons and add localization to file priorities
Signed-off-by: John Garland <johnnybg+deluge@gmail.com>
2010-11-11 14:01:58 +11:00
87e3a5f515 rebuild the compressed javascript 2010-11-01 09:14:23 +00:00
75e9ff57de update the build file to include the spinnerfieldfix file 2010-11-01 09:13:37 +00:00
b180d2a900 remove the convert conf script that won't actually work anymore 2010-10-31 14:35:00 +00:00
1822c2bde9 fix a silly bug 2010-10-31 10:13:33 +00:00
40e6777c48 Merge branch 'master' of deluge-torrent.org:deluge 2010-10-31 09:18:26 +00:00
f88b24d507 apply 41ffee5 to master 2010-10-31 09:18:09 +00:00
593452ed63 update bbfreeze script 2010-10-29 10:11:40 +01:00
4197e129fe change location of httpdownloader as a temporary fix 2010-10-25 00:13:09 +01:00
0360cbe0b8 fix a bug in the MultiOptionsManager that didn't fire the right arguments in the initial event fire 2010-10-24 23:42:29 +01:00
d2f41fe7e5 apply patch from #1377 2010-10-24 13:30:40 +01:00
0a2e9a5324 include a file that fixes the SpinnerField onBlur method (no idea why it is set to emptyFn) 2010-10-23 22:22:00 +01:00
3c302088f6 fix the path to the loading gif (not that its actually used) 2010-10-23 21:24:06 +01:00
3b6bad2f13 fix up the tracker icon tests 2010-10-22 19:47:38 +01:00
6fd4b298f3 fix up the core tests that were erroring 2010-10-22 19:42:07 +01:00
2beec764c9 move tests back inside the deluge package, makes it easier to run trial on them 2010-10-22 16:36:52 +01:00
e5760ee341 Fix uncaught exception when quitting 2010-10-23 01:12:21 +11:00
45940b9064 Fix #1373 use of cyrllic paths 2010-10-16 12:56:00 -07:00
c97f809bdc Fix #1349 force a theme style with expander-size = 15 to show entries in the sidebar properly. 2010-10-15 19:32:13 -07:00
ae6837c88c create the toolbar with the rest of the UI 2010-10-14 13:54:26 +01:00
a827cf6c7a Keep a torrent paused after a forced recheck if it was paused to start. 2010-10-10 12:36:25 -07:00
f52e3c4aa0 add a check to ensure that the events loop doesn't continue indefinitely 2010-10-10 19:52:08 +01:00
8f7e307f33 wrap client.disconnect() call with a check to see if its classic mode 2010-10-07 00:14:21 +01:00
f1f6f137c3 Make sure config value strings are utf8 encoded (fixes #1369) 2010-10-03 18:33:57 +11:00
ff7ff8eac7 Move decode_string/utf8_encoded to common 2010-10-03 18:12:42 +11:00
4cb2bcae25 Fix sidebar not updating (#1365) 2010-10-02 23:55:51 +10:00
df95222849 Use better attribute / method names in blocklist 2010-09-26 11:39:17 +10:00
463fd3ac04 Fix attribute error in blocklist plugin 2010-09-26 11:30:58 +10:00
eb37c91866 Set locale to the user's default settings in the gtkui 2010-09-20 02:43:07 +10:00
7cd210a59b include missing theme images 2010-09-18 00:47:47 +10:00
eee27868a8 include the .order files 2010-09-16 12:16:07 +01:00
e5dec3f020 add all the other scripts to package_data 2010-09-16 08:52:16 +01:00
def1127c78 More clean-up of setup.py 2010-09-14 11:29:47 -07:00
847f2c2ebd Remove the custom 'install' class and include_package_data 2010-09-14 10:56:42 -07:00
fb49aa02a8 Fix preference page index when removing a preference page 2010-09-13 18:21:31 -07:00
f8dc66b773 Fix bugs with unicode torrents in AutoAdd plugin. 2010-09-13 02:23:10 -04:00
c17b466bae Fix bug in AutoAdd plugin where watchdirs would not display in gtkui when first enabled. 2010-09-13 02:23:09 -04:00
d9cdff9525 Increase max piece size to 8 MiB in create torrent dialog (closes #1358) 2010-09-13 08:50:29 +10:00
915db80a55 Fix VersionSplit behavior when comparing to a dev version. 2010-09-11 16:27:29 -04:00
350d4d7260 Add rpc to check if authorized to call a rpc: daemon.authorized_call() 2010-09-04 12:31:27 -07:00
4b92912577 AutoAdd plugin can now recover when one of the watchfolders has an unhandled exception. 2010-09-03 22:34:28 -04:00
a794223d96 Fix "adjustment with non-zero page size" deprication warning in autoadd plugin. 2010-09-03 22:34:27 -04:00
5811d372f9 Fix up some docstrings 2010-09-03 17:21:56 -07:00
0b2f2f2c8a Add TorrentFileCompleted event. 2010-09-03 17:11:37 -07:00
64022d7bc7 Add 'Owner' filter 2010-09-03 15:15:29 -07:00
bf715d90fd Save 'owner' and 'public' to the torrent state 2010-09-03 15:15:02 -07:00
fdbd9e6687 Fix issue when adding torrents without a 'session'. This can happen
when a plugin adds a torrent, like how the AutoAdd plugin works.  The
user that adds this torrent will be an empty string.
2010-09-03 14:28:16 -07:00
0a0383d075 Use a temp filename with add_torrent_url 2010-08-31 00:04:56 +10:00
5b1bed5a48 Update get_free_space test 2010-08-30 23:49:49 +10:00
7ed33192ec Ensure preferencesmanager only changes intended libtorrent session settings. 2010-08-26 01:31:53 -04:00
c82ba44be8 Fix scheduler so that it keeps current state, even after global settings change. 2010-08-26 01:22:14 -04:00
729daf331c Ignore global stop ratio related settings in logic, so per torrent ones are used. 2010-08-24 23:16:33 -04:00
db1835d942 Merge branch 'newscheduler' 2010-08-24 00:57:15 -04:00
7d4a316733 Add max active downloading and seeding options to scheduler. 2010-08-24 00:30:54 -04:00
da8629db97 Implemented search as you type capabilities to the treeview, ie, when the
treeview has focus and user starts typing, select the first matching
torrent name.
2010-08-24 01:38:05 +01:00
df573c66c6 Merge branch 'master' of deluge-torrent.org:deluge 2010-08-23 17:35:42 -07:00
29f61b58fb Fix key error after enabling a plugin that introduces a new status key 2010-08-23 17:34:30 -07:00
15ce2b71f9 Moved xdg import so it is not called on Windows, where it is unused. fixes #1343 2010-08-22 15:39:12 -04:00
116ccc21fd AutoAdd plugin changes
adds queue to top option
adds ability to append extension instead of deleting torrent once added
2010-08-22 00:31:41 -04:00
dee33745c8 Merge branch 'master' into multiuser 2010-08-21 13:00:47 -07:00
8586cda4e0 Fix unhandled exception when adding a torrent to the session 2010-08-21 12:53:44 -07:00
db9b5580d7 Fix issue where the save_timer is cancelled when it's not active 2010-08-21 12:53:21 -07:00
10aebd600a Add 'Owner' and 'Public' fields to the details tab 2010-08-21 12:42:01 -07:00
f0fe3c7879 Add 'Owner' and 'Public' columns to the TorrentView 2010-08-21 12:28:26 -07:00
33fd852bda Add 'public' torrent option to allow making a torrent publically viewable by other users 2010-08-21 12:25:05 -07:00
65c9dc5fa8 Add new torrent status key 'owner' for keeping track of who added the torrent to the session 2010-08-21 12:15:41 -07:00
7e2eea46d3 Fix man deluged not showing '-u' on its own line 2010-08-20 01:15:27 +10:00
01773e433f Fix #1341 issue where Config would try to cancel the save_timer when it is None. 2010-08-18 12:33:09 -07:00
ca5eaf4270 Add cache expiry check by key update times to fix issue where some status updates would not return
correctly if they were done < cache_time from the previous status request
2010-08-18 12:15:53 -07:00
7d64f057c7 Add additional test for get_torrents_status and fix the other one to properly invalidate the cache
time from startup before proceeding
2010-08-18 12:15:16 -07:00
48d016e97d Add test to demonstrate flaw in SessionProxy design. Need to keep track of update times for each
status key individually to fix this.
2010-08-18 11:06:10 -07:00
e9ce506d1c fix the script resource on windows 2010-08-14 17:38:30 +01:00
e0eb0bd06a add the apple iOS bookmark icons from #1339 2010-08-14 16:16:10 +01:00
9f992ec40d fix the system.listMethods json call when running in classic mode 2010-08-14 16:05:40 +01:00
ce8ef4f95b Add test suite for SessionProxy 2010-08-10 09:57:00 -07:00
4d0560eff2 Fix getting a torrent's status with an empty key list to return all the
torrent's status keys instead of an empty dict
2010-08-06 17:28:16 -07:00
d49cde1994 use the get_libtorrent.sh script to get libtorrent if it is missing 2010-07-22 21:13:26 +01:00
16a1173f1d change default version to 0.15 2010-07-22 18:18:15 +01:00
333d2f5562 add libtorrent fetch script 2010-07-22 18:17:51 +01:00
c7fe1bdef5 remove the libtorrent submodule 2010-07-22 18:05:46 +01:00
46a967fb8c a couple of fixes to stop the webui crashing when running within the gtkui 2010-07-18 23:11:02 +01:00
ca22e84858 Alternate tooltip when toggling session 2010-07-18 01:17:33 +10:00
20bd962e6a Add Toggle plugin 2010-07-18 00:56:56 +10:00
22a1448372 Only use an icon if it passes some sanity checks 2010-07-17 17:11:19 +10:00
722a5cd9e1 Use a blank icon when the tracker icon downloaded isn't a proper image 2010-07-15 19:17:17 -07:00
efecf38bcd Attempt to create a move_storage destination path if it doesn't exist 2010-07-15 10:51:06 -07:00
dfb75d67b9 Do not attempt to move a torrents storage if the destination path does
not exist
2010-07-12 14:45:13 -07:00
961d405921 Try to import system rencode before deluge.rencode to allow the use of the new rencode library at: http://code.google.com/p/rencode/ 2010-07-08 16:39:02 -07:00
e025b6b9db Fix hang when quitting in classic mode 2010-07-08 16:23:12 -07:00
bc5aa1bf71 Add logging the user when a torrent is added or removed 2010-07-05 21:08:15 -07:00
3cd30ea96a Use torrent state name instead of number if available 2010-07-02 18:09:21 -07:00
504751424f Use basestring instead of str and unicode 2010-07-02 15:19:42 +10:00
37a00a48a7 Fix uncaught exception when closing deluge in classic mode 2010-07-02 02:45:47 +10:00
2a2f5d90ae Fix typo 2010-07-02 02:43:32 +10:00
f0920f5638 more improvements to the shift select 2010-07-01 14:21:37 +01:00
43fb998651 fix select 'upwards' 2010-07-01 14:08:21 +01:00
148fcdbe37 allow for shift selecting in tree grids 2010-07-01 13:45:23 +01:00
de79bba540 Fix #1302 an uncaught exception in an state_changed event handler in SessionProxy was preventing the
TorrentManager's stop method from properly saving all the resume data.
2010-06-22 18:24:27 -07:00
d5881142aa Always look for -mt boost libraries first 2010-06-18 09:50:58 -07:00
494c468da8 fix typo 2010-06-12 22:47:59 +01:00
672668ccdb change bits to bytes, thanks to charles 2010-06-11 15:59:33 +01:00
538aed9147 Fix typo in label plugin - thanks konti 2010-06-11 00:49:42 +10:00
d800273891 Handle os.remove failing on windows 2010-06-08 03:19:30 +10:00
94f96c5165 Python independent version of previous commit 2010-06-08 01:55:48 +10:00
4b1d60c727 Fix console ui not liking paths with backslashes on windows (#1293) 2010-06-08 01:25:21 +10:00
cfe547b31a Print a more informative error message if the torrent file doesn't exist 2010-06-08 01:22:19 +10:00
f6195f775f Fix execute plugin only executing last event (#1306) 2010-06-08 00:17:22 +10:00
87879ab3b8 Only encode if necessary 2010-06-07 20:12:31 +10:00
81a837faed Fix unicode support in console ui (#1307) 2010-06-07 20:11:11 +10:00
c06f905702 Add some debug logging statements 2010-06-04 18:05:21 +01:00
f6f9e0234a Fix an error in the key 2010-06-04 17:37:53 +01:00
e1e1472a8f Fix saving the correct event name 2010-06-04 16:37:37 +01:00
b7e1fe1696 Save the execute config after adding/removing/saving commands 2010-06-04 16:31:51 +01:00
0314d0440f Fix typo in execute plugin 2010-05-20 00:04:43 +10:00
3226b1819d Fix man deluged not showing '-d' on its own line 2010-05-16 22:32:12 +10:00
4b8a85763c Fix remote save path dialog not disappearing after creating a torrent 2010-05-16 18:10:13 +10:00
ae4f2c3bb0 Fix only being able to click "remote path" once when creating a torrent 2010-05-16 18:08:33 +10:00
bc28b83062 Fix deluged crashing on windows when logfile's directory doesn't exist 2010-05-16 13:11:18 +10:00
2603c36e7d Revert "Fix trac wiki turning CamelCase words into broken links"
This reverts commit 81b56cce62.
2010-05-11 23:47:06 +10:00
81b56cce62 Fix trac wiki turning CamelCase words into broken links 2010-05-11 23:23:39 +10:00
649a2b6f8e Update email address and copyright 2010-05-11 03:51:45 +10:00
4caf81ef89 Fix new release check pref 2010-05-09 22:45:28 -07:00
65c33a37a1 Fix the naming of the some of the config set methods 2010-05-09 22:36:31 -07:00
eff17931eb Fix preferences manager not setting initial settings on start-up 2010-05-09 22:32:14 -07:00
b33c2abf82 Fix label plugin not remembering newly created labels 2010-05-09 17:50:39 +10:00
ba514f0b0e Remove unused code from label plugin 2010-05-09 17:39:45 +10:00
7f60867ae9 Update docstrings to use names from previous commit 2010-05-09 17:05:22 +10:00
71d8836118 Use better names for TrackerIcons' args 2010-05-09 17:01:15 +10:00
97d6f8ce80 Return the noIcon for empty strings as well 2010-05-09 16:43:22 +10:00
ca7f009e74 Raise IconsError instead of IndexError (fixes infinite looping) 2010-05-09 16:31:32 +10:00
f08e5176c3 Do not request a tracker icon if the host is "" 2010-05-08 20:06:15 -07:00
70161a54fa Simplify PreferencesManager by simply looking for the _on_get_<config key> method instead of registering a set function for each 2010-05-08 20:04:55 -07:00
a945d0a78d Use previously defined host variable instead of getting the tracker host from the TreeModel 2010-05-08 20:02:58 -07:00
245b799ccf Add test for tracker_icons for when requesting an icon for host that is "". This test results in an infinite loop. 2010-05-08 20:01:46 -07:00
0dc6c3ecfd Return 0 in get_free_space if the download_location is invalid 2010-05-08 20:00:41 -07:00
98f000cc70 rebuild deluge-all and ext-extensions 2010-05-08 16:18:48 +01:00
8d4daff068 update the build files for deluge-all and ext-extensions 2010-05-08 16:18:48 +01:00
79d68a5b9b fix the null comparison 2010-05-08 16:18:48 +01:00
412d0ee4f9 set the baseCls for the add label form panel to x-plain 2010-05-08 16:18:47 +01:00
e8788bde08 Make host_to_url support redirection and add another test 2010-05-08 16:25:16 +10:00
815a71fe8b Try favicon.ico if there's a HTMLParseError 2010-05-08 15:50:04 +10:00
fce16ba51f Fix relative redirecting in blocklist plugin 2010-05-06 23:27:04 +10:00
50cfd9c9b1 Update tests 2010-05-06 23:06:53 +10:00
369b03bffb Update version 2010-05-05 14:46:27 -07:00
e7907a63ee fix uploading plugins in shit browsers 2010-05-05 12:25:34 +01:00
cee416b1b5 fix expanding nested folders in the files tab 2010-05-05 11:55:21 +01:00
53a9c217e7 Fix tracker_icons not handling relative redirects 2010-05-05 04:05:52 +10:00
d6c8b13041 Handle trackers with incorrect / missing icon mimetypes 2010-05-05 03:19:54 +10:00
ba03356151 Add more HTTP status codes to httpdownloader 2010-05-05 02:49:55 +10:00
d28cf93686 Rename mimetype helper methods and rewrite to use a common dict 2010-05-05 02:31:05 +10:00
452656e09d remove some trailing commas that break the ui in IE 2010-05-04 12:02:49 +01:00
9c460266ac add _trial_temp to the gitignore file 2010-05-04 00:30:54 +01:00
bb0bd36c51 Properly fix creating torrents in the gtkui with non-ascii filenames 2010-05-04 00:28:24 +01:00
5ea7e21943 add some icon preloading and improve the statusbar css classes 2010-05-04 00:09:20 +01:00
facb4669e3 add the ubuntu icon 2010-05-03 22:01:20 +01:00
e4ef17975c stop parsing the html page once the parser has left the <head> of the page 2010-05-03 21:28:25 +01:00
c4b20aa595 Fix error when requesting a tracker icon for None 2010-05-03 13:24:54 -07:00
bc028998d7 Fix some tests in test_core 2010-05-03 13:13:26 -07:00
7e7da94a6e fix the Tracker resource for the webui 2010-05-03 20:52:38 +01:00
53930e0898 handle non-supported images/files in the icons folder 2010-05-03 20:38:57 +01:00
b13adbafbf add an ok icon and use it for the connection restored status 2010-05-03 20:32:22 +01:00
556c8b831a Update translation template 2010-05-03 11:50:16 -07:00
a6d10562f1 Don't request a tracker icon for labels or tracker states 2010-05-04 04:37:41 +10:00
a8ac98bb37 Update web ui to use new TrackerIcons 2010-05-04 04:37:41 +10:00
d7fa383da3 Update gtk ui to use new TrackerIcons 2010-05-04 04:37:41 +10:00
6ded75caef Remove no longer needed fetch_url 2010-05-04 04:37:41 +10:00
88929d4821 Rewrite tracker_icons.py (#995) 2010-05-04 04:37:19 +10:00
8747611e9e Add decorators module and test file 2010-05-04 04:33:21 +10:00
acba442ddb fix encoding issues where the users filesystem isn't utf-8 (needs testing) 2010-05-03 18:43:31 +01:00
5b0f93ba72 improve behaviour when webserver goes away 2010-05-03 02:14:51 +01:00
619092aee0 fix plugin info displaying upon select 2010-05-03 02:01:21 +01:00
89fb5b02d7 move the InstallPluginWindow class out of the PluginsPage file
convert the plugins grid over to a listview
2010-05-03 01:54:25 +01:00
75b69b1f11 fix setting the root node 2010-05-03 00:31:49 +01:00
f5eddafea9 tidy up the code for the files tab 2010-05-02 23:20:45 +01:00
d49e1eda79 fix updating the file tree in the file details tab 2010-05-02 23:00:05 +01:00
e86d2ad4e2 apply unicode patch from nullie, fixes (#1140) 2010-05-02 22:13:14 +01:00
5effdd4cd4 store listen_ports and outgoing_ports as tuples for the config set, fixes #1242 2010-05-02 18:32:21 +01:00
c2b4fad389 implement getting and saving label options 2010-05-02 18:16:07 +01:00
82a5b5262c fix the torrent grid, clear the torrents on disconnect, not logout 2010-05-02 18:16:07 +01:00
1b0e08b3d9 fix disabling the execute plugin 2010-05-02 18:16:06 +01:00
49ec3a1535 remove the paranthesis from the @exports 2010-05-02 18:16:06 +01:00
23544bd6b2 Close the connection manager on shutdown - patch from Jan Steffens 2010-05-02 22:39:25 +10:00
5766e04987 Fix deluge-gtk hanging on shutdown (#1247) - thanks Jan Steffens 2010-05-02 22:39:18 +10:00
0857af98d0 fix the spinner limits in the label options 2010-04-30 22:06:49 +01:00
5e78daf726 fix the spinners on the various preference pages 2010-04-30 22:06:32 +01:00
1efb700ed8 enable and disable the form fields upon the checkbox change 2010-04-30 21:34:28 +01:00
e0153e8bdc disable the JSON component upon webserver stop 2010-04-30 14:11:36 +01:00
b46562d932 disable the webui plugin settings and display an error message when deluge-web is missing 2010-04-30 14:04:15 +01:00
5c8eccdd82 reduce the size of the details panel 2010-04-30 13:31:17 +01:00
c45583e8e7 enable and disable the panel toolbar buttons upon selection change 2010-04-28 17:46:21 +01:00
ce46dcdf7a implement the webui so commands can be modified 2010-04-28 17:42:58 +01:00
63f5c8b116 add the icon-edit class, use the same icon as edit trackers 2010-04-28 16:58:07 +01:00
111bea19d9 fix #1240 and #1208 2010-04-28 16:43:14 +01:00
68f0e9ddc7 renderer the event column correctly and remove the bottom panel 2010-04-28 16:09:53 +01:00
5e1f6a8738 switch the gridpanel to a listview 2010-04-28 15:51:47 +01:00
28a313e74e fix up the label plugin making it more stable and work with the new filter panel api 2010-04-28 15:43:06 +01:00
5b6faa47b0 fix the header click event handler 2010-04-28 15:39:39 +01:00
0f12200f6f store the states as a dictionary 2010-04-28 15:33:05 +01:00
7420c6f12f use the header click event to ensure that the filters get updated
correctly
2010-04-28 15:29:40 +01:00
fb0adbcded return this.states instead of the store contents 2010-04-28 15:25:31 +01:00
59b7a175eb store the states without the zero values removed as this.states 2010-04-28 15:24:49 +01:00
cbcd277d91 remove windows line breaks (grr) 2010-04-28 15:19:28 +01:00
269e0b89b6 dont enable plugins twice 2010-04-28 15:10:58 +01:00
698a5ff475 update the deluge.config dictionary with the new values 2010-04-28 14:20:31 +01:00
fd122db7b7 change the multiple filters to be configurable, deprecating the show trackers with zero torrents option 2010-04-28 14:15:50 +01:00
67905b6f5b fix enabled plugins after connecting to a daemon 2010-04-28 14:00:39 +01:00
7df7f13e26 select the text when focusing the password field 2010-04-28 13:41:09 +01:00
066d199c78 fix setting a custom limit when one is already set
focus and select the spinner contents upon window show
2010-04-28 13:39:56 +01:00
c8c5e3449a add a window that allows you to quickly set a custom bandwidth limit 2010-04-28 13:28:47 +01:00
00dc5f0128 remove the button to launch the unfinished file browser 2010-04-28 13:28:00 +01:00
cd10555a8a construct the statusbar in the ui initialisation 2010-04-28 12:40:54 +01:00
158feaa8e0 integrate the statusbar menus into the statusbar and have the limit change handler in the deluge statusbarmenu class 2010-04-28 12:37:35 +01:00
3310cc636f move the statusbar menu class out into a seperate file 2010-04-28 12:03:07 +01:00
9849a16d2c rename files to match the classes they contain 2010-04-28 11:55:07 +01:00
bf28b3ac31 fix the connection manager when the ui disconnects from a daemon so it doesn't end up in a loop 2010-04-28 11:50:56 +01:00
759ae6356d remove the function wrap from the connection manager 2010-04-28 11:28:51 +01:00
c0fd70a856 fix removing the filter panels upon disconnect 2010-04-28 10:45:38 +01:00
028a35bfc8 fix adding an already removed torrent 2010-04-28 10:42:25 +01:00
fec735f948 fix the first item being selected upon creation 2010-04-28 08:42:29 +01:00
9f185da446 update the proxyfield comboboxes and switch some simplestores to arraystores 2010-04-28 08:24:37 +01:00
8414b9cfa9 fire only one event per check, pass an array of nodes
implement #1161 for the webui
2010-04-28 01:06:28 +01:00
91f44c2ad3 fire the same args as the OptionsManager changed event 2010-04-28 00:48:37 +01:00
31304d3397 lazily set the value if the items aren't rendered yet and re-enable setting the allocation in the add window 2010-04-27 23:58:30 +01:00
310b4bad31 allow the allocation to be changed again 2010-04-27 23:49:11 +01:00
9e7dde8997 change radiogroups so they can be used as a single form field 2010-04-27 23:48:04 +01:00
dfde04561f adjust the width of the columns in the con manager 2010-04-27 23:31:12 +01:00
545e4ef717 fix the change event on the spinner group 2010-04-27 23:26:31 +01:00
b1cf238489 show the preferences window when the protocol traffic and freespace icons are clicked 2010-04-27 23:19:52 +01:00
7fe5d37094 fix the spinnergroup widths 2010-04-27 23:18:03 +01:00
a7940d5bf9 use deferredRender: true on the card layout to fix the spinnergroups and
comboboxes
2010-04-27 22:56:02 +01:00
e0e2b1b350 improve the page switching 2010-04-27 22:05:15 +01:00
a58c391675 use blank classes for the sorter in the edit trackers window 2010-04-27 21:49:27 +01:00
9f46958f20 tidy up and convert the gridpanel to a listview 2010-04-27 21:40:55 +01:00
dd82f95975 split out the add connection window into a seperate file 2010-04-27 11:58:39 +01:00
67e27b9b7a fix reporting connection errors on the console (Closes: #1228) 2010-04-27 11:01:01 +01:00
1cc315878a complete the layout of the label options window 2010-04-27 10:31:53 +01:00
412b96ba55 xml escape notifications sent via libnotify (Closes: #1185) 2010-04-27 10:31:53 +01:00
d6b7917350 Fix test_add_torrent_url_with_cookies 2010-04-27 03:01:54 +10:00
8b23af062a add the layout for the maximum tab 2010-04-26 01:34:35 +01:00
3b1d038d2d add missing getFilter function and improve hasFilter 2010-04-26 01:34:35 +01:00
a47f9bc8dd make enabling the plugin more robust 2010-04-26 01:34:35 +01:00
466b245fdf make it easier to manipulate filters 2010-04-26 01:34:35 +01:00
bfdaa47aff add helper methods for adding and removing columns to the torrent status grid 2010-04-26 01:34:35 +01:00
c3290b4ac2 add the save path column to the grid 2010-04-26 01:34:35 +01:00
342001c642 implement the handler for the torrent menu 2010-04-26 01:34:35 +01:00
b4404feed7 add 2 new methods that return the torrent ids to make rpc calls easier 2010-04-26 01:34:35 +01:00
85c0725f83 add a method to get the current states in the filter 2010-04-26 01:34:35 +01:00
29634505e4 remove the old web templates 2010-04-26 01:34:35 +01:00
faa1752d04 select the first filter if the current selected one is removed 2010-04-26 01:34:35 +01:00
2edf19c187 fix displaying empty '' filters 2010-04-26 01:34:35 +01:00
42b3dc7dde add the ability to add labels
set the filter panel to show_zero
2010-04-26 01:34:35 +01:00
80f151be94 move the state updating into the FilterPanel to allow for a custom show_zero value to
be specified
2010-04-26 01:34:34 +01:00
c8ada0ba07 only enable the extra menu options if it is a label 2010-04-26 01:34:34 +01:00
e05384909a add inital options window layout
implement removing labels
specify a custom template for the label filters
2010-04-26 01:34:34 +01:00
3a12a50f3e allow custom templates to be specified for filters 2010-04-26 01:34:34 +01:00
5b0ce6b3d8 remove the function wrap and deluge.sidebar construction 2010-04-26 01:34:34 +01:00
9cde1f3e45 initial implementation of the label plugin webui, purely a mock up at the moment 2010-04-26 01:34:34 +01:00
1825ce09fb fix removing filters that no longer exist
add a filtercreate event
2010-04-26 01:34:34 +01:00
62158d7861 Renamed raiseError to raisesErrorsAs 2010-04-26 02:54:13 +10:00
4de8e57f56 remove some accidental alerts 2010-04-24 01:44:22 +01:00
a3d9b93480 register the execute plugin 2010-04-24 01:42:11 +01:00
7e12222d33 create a plugin registration system to allow for plugin loading on the fly
remove the plugin event handlers from the event manager
fix enabling/disabling plugins when the preferences page hasn't been rendered yet
2010-04-24 01:40:34 +01:00
bf2fc64ce0 remove an unrequired function() wrapping 2010-04-24 00:43:24 +01:00
3fdfedb7f7 revert previous change, we want remove_script to throw an error if the script doesn't exist
fix remove debug and dev scripts in the pluginmanager
2010-04-24 00:34:42 +01:00
01e847b997 fix the execute plugin disabling and change the namespace of the preferences page 2010-04-23 23:48:29 +01:00
50162694b5 fix plugin disabling 2010-04-23 23:47:10 +01:00
ade5f596f4 don't raise an error if the script isn't in the resource 2010-04-23 23:43:20 +01:00
8b7c1681ae fix the execute plugins webui section 2010-04-23 19:30:40 +01:00
2376e857d2 fix up the deluge-web plugin interface 2010-04-23 19:30:40 +01:00
d024c293ed Revert previous change 2010-04-20 20:08:08 -07:00
54617db03f Allow accessing network shares when adding torrents 2010-04-20 12:25:18 -07:00
70580e35db Fix starting plugins 2010-04-20 08:56:07 -07:00
8d02fc3db6 Fix #1238 starting plugins in the gtkui 2010-04-20 08:50:20 -07:00
112b0dc1f0 fix the zeroPad calls in the date function 2010-04-20 08:32:11 +01:00
3fcdcc8eec couple of tweaks to the plugin page layout 2010-04-19 23:17:27 +01:00
7711239452 add the updated override to FormLayout to allow for the field labels to be hidden/shown with field.show()/field.hide() 2010-04-19 22:29:11 +01:00
283cff7852 Apply patch supplied in #1235 to add the time to fdate 2010-04-19 22:27:12 +01:00
fb4bfe7656 re-add the SpinnerGroup type and enable the Network preferences page 2010-04-19 17:08:08 +01:00
070443f811 only use the fix for webkit browsers 2010-04-19 16:29:40 +01:00
76483bf766 restructure the ext-extensions folder and fix some copyright headers 2010-04-19 15:35:33 +01:00
dd1716c240 improve the selective downloading adding support for directories and don't recreate treenodes 2010-04-19 15:35:33 +01:00
c176ff900f fix updating the columns if the node hasn't yet been rendered 2010-04-19 15:35:33 +01:00
9e8d588a05 add a method to TreeGridNodeUI that allows column values to be updated 2010-04-19 15:35:33 +01:00
0fbbf4ac6c fix setting file download priority in the add window 2010-04-19 15:35:33 +01:00
61dd9a5589 Fix setting config values in the console ui including setting paths with
spaces in them
2010-04-18 18:07:26 -07:00
9a632fc3d3 1234: Add time to the torrents added date - patch from tobbez 2010-04-18 14:52:18 -07:00
e0f2c2473e fix error, use os.makedirs instead of os.mkdir, effectively mkdir -p 2010-04-17 22:13:17 +01:00
80e480854e Fix fsize by initialising gettext 2010-04-16 00:08:56 +10:00
86232cac8e Fix #1113 set move on completed to False after a success storage move 2010-04-14 15:49:21 -07:00
bba825703b refs #1180, old label preferences are removed from torrent when new label is set 2010-04-13 15:21:49 -04:00
3f3f7bb5b4 Fix #1225 by reverting change to fix #1180 since that isn't really
considered a bug and just causes more issues
2010-04-13 10:15:10 -07:00
047bdf9e3e Only pause torrents when importing blocklist on startup 2010-04-12 20:42:37 +10:00
0ae609c6df Apply patch from #1226 to allow use of certificate chain files 2010-04-11 23:14:07 +01:00
76fa8e707a Split out the OptionsPanel into seperate classes and files 2010-04-11 23:11:54 +01:00
fdc7d3d7fc Fix #1098 use triple quotes in the docstrings of the generated methods 2010-04-11 11:24:45 -07:00
35dfcf3a77 Pause transfers until blocklist is imported (#861) 2010-04-12 01:01:02 +10:00
f21dd242f6 Fix renaming files in add torrent dialog 2010-04-12 00:07:50 +10:00
8bafc9f966 tidy up and rename Remove.js to RemoveWindow.js 2010-04-09 22:13:42 +01:00
901d2d715c Fix #1222 do not try to set options on a torrent_id that is no longer in the session 2010-04-09 13:05:02 -07:00
02b71451c6 Fix enabling the Freespace plugin by initalizing self._timer on enable()
Stop the timer on disable()
2010-04-09 11:21:07 -07:00
6e737518d8 Fix splitting folders in add torrent dialog (fixes #1112) 2010-04-10 01:01:08 +10:00
addda6cfcc Fix #640 make file size suffixes translatable 2010-04-08 17:43:57 -07:00
afa283cd2d Add an errback for when calling a component's start() fails and revert it back to a Stopped
state in this case
2010-04-08 17:16:28 -07:00
84b33c3418 Fix get_torrent_status by creating a status dict from the cache after it's been updated 2010-04-08 17:09:55 -07:00
a15500d472 Fix menu item icons and glade warnings 2010-04-08 17:01:43 -07:00
7d4c791241 Fix #1180 properly set default options when switching a torrent label 2010-04-08 16:49:40 -07:00
4be615b084 Fix #1218 improper use of callLater 2010-04-08 15:00:07 -07:00
8e4d88f03c implement moving trackers up/down 2010-04-08 17:51:49 +01:00
38c85cf7bb convert the EditTrackers window to use a ListView and split out the various windows
into seperate files
2010-04-08 17:38:16 +01:00
bc165133d0 Fix get_torrent_status returning all keys when cache is outdated 2010-04-08 00:41:48 +10:00
117fe3bb43 Fix the sessionproxy when using keyworded filters.
The caching of state filters has been removed to simplify things a bit.  This shouldn't have too much
impact since the torrent status requests are still using diffs.
2010-04-02 15:53:03 -07:00
5dab17df89 Fix #1210 save sort column order in files tab -- patch from squisher 2010-04-02 12:46:18 -07:00
3560dac792 convert the PreferencesWindow over to using a ListView rather than a
GridPanel
2010-04-02 16:46:32 +01:00
c970a80030 finish converting the AddWindow over to a ListView 2010-04-02 15:44:26 +01:00
09de50ec18 import PIL.Image rather than just Image 2010-04-01 10:10:56 +01:00
78a1ef0cc5 Fix unintended revert of change 2010-04-01 09:55:16 +01:00
d2d9269c87 Close #1205 add free space icon to gtkui 2010-04-01 09:55:15 +01:00
0d091cdacc replace ∞ with its html code &infin; 2010-04-01 09:55:15 +01:00
ac7a1f0065 fix bug showing the menu via key in the torrentview (Closes #1191) 2010-04-01 08:30:30 +01:00
772653d872 Fix unintended revert of change 2010-03-31 20:14:39 -07:00
ce23ff34a7 Close #1205 add free space icon to gtkui 2010-03-31 18:15:29 -07:00
c1200ed63f use getHeaders which is backwards compatible with twisted 2010-04-01 01:19:46 +01:00
af17346ac6 return a valid version 2 filetree 2010-03-31 20:35:44 +01:00
e9a922f829 Fix #1145 show deluge instead of hiding if it is behind other windows 2010-03-31 11:47:54 -07:00
387ea4a911 fix when there is only 1 file 2010-03-31 17:42:46 +01:00
7f1dadf3cd remove all the trailing commas as ie doesn't like them 2010-03-31 17:21:16 +01:00
2417e8537b resize tracker icons if they are too big and PIL is installed 2010-03-31 15:40:40 +01:00
91692bc966 use object format rather than dictionary 2010-03-31 15:40:40 +01:00
4296344502 handle losing connection to the webserver so we don't get stuck firing off loads of ajax requests 2010-03-31 15:40:39 +01:00
7053163f88 use FileTree2 in the TorrentInfo class when specified
adjust the filetree walking functions to match the server side code
2010-03-31 15:40:39 +01:00
14d9f6b7ba fix displaying directory names
tidy up and fix the size of the files being displayed
tweak the layout of the OptionsTab
2010-03-31 15:40:39 +01:00
692ec5bb1b clean up the Url window a little bit and rename Url.js to UrlWindow.js
create the FileWindow on demand and change the filename to match the classname
2010-03-31 15:40:39 +01:00
6039280fb5 split out the AddWindow file into multiple files for easier management 2010-03-31 15:40:39 +01:00
48876fa45c tidy up the file window and fix using Deluge.Client still 2010-03-31 15:40:39 +01:00
ae54d3fa18 Fix creating remote torrents 2010-03-30 16:44:26 -07:00
47509ee705 fix up the FilterPanel and the css class for the selected item 2010-03-30 19:25:50 +01:00
47a80526b3 begin a tidyup of the sidebar, switching from a GridView to a ListView which is faster 2010-03-30 17:33:56 +01:00
183064f857 store the other menu item when we encounter it looping over for later 2010-03-30 14:31:36 +01:00
7c5dacba5f use Number.MAX_VALUE rather than 99999 2010-03-30 14:27:53 +01:00
1c807ad7c8 fix tracking spinner values 2010-03-30 14:27:41 +01:00
6d83556ba8 clear oldData when clear() is issued which fixes data disappearing in the details tab 2010-03-30 13:45:04 +01:00
de9ba4986d fix a couple of issues with the values in the status tab 2010-03-30 13:31:33 +01:00
2956a7db54 Keep track of newly added torrents in the SessionProxy 2010-03-29 18:49:41 -07:00
76de427b96 remove a needless loop in the update_ui() method call 2010-03-30 00:21:37 +01:00
e9df745dd0 move the ProxyField into the preferences package 2010-03-29 23:43:48 +01:00
bf224b0556 tidy up the encryption page 2010-03-29 23:43:20 +01:00
79e62e6069 add a fix for triggerfields in the preferences page 2010-03-29 23:35:53 +01:00
7b84f54974 make greater use of the SessionProxy 2010-03-29 20:22:15 +01:00
4ca14d68c1 make use of the sessionproxy 2010-03-29 20:12:08 +01:00
ee9c7d1971 Fix #1202 set self.state during instantiation regardless of the libtorrent state 2010-03-29 10:57:29 -07:00
7dff81b60b Fix some typos 2010-03-28 22:20:47 -07:00
66bd2e3030 Add sessionproxy.rst 2010-03-28 12:45:51 -07:00
da9af84dc1 Add new component SessionProxy
Use SessionProxy in place of core.get_torrent_status calls
2010-03-28 12:43:23 -07:00
0b44023f92 update all the copyright headers 2010-03-28 13:02:09 +01:00
dd8400558c use a platform agnostic way of combining paths in the FileTree 2010-03-28 12:16:35 +01:00
61b5659972 fix the toggle field and scrolling in the preferences window 2010-03-28 12:16:35 +01:00
c987b74d61 split out the ProxyField to a seperate file 2010-03-28 12:16:35 +01:00
c430ef9a84 Merge branch 'master' of deluge-torrent.org:deluge 2010-03-27 20:07:51 -07:00
7be5b4c8bc Add 2 new states to Component: Starting and Stopping
Fix issue where a Component could have it's start and stop methods called more than once while waiting for their deferreds to fire
2010-03-27 20:05:20 -07:00
ab38ca2ad4 fix the order of the data directory and add peer record ip address sorting again 2010-03-28 03:45:02 +01:00
4d5d31a2b0 add support for defining order via a .order file 2010-03-28 03:45:02 +01:00
eaa03a6f2c change a Deluge.Events to deluge.events 2010-03-28 03:45:01 +01:00
01bb9c4df5 initial commit of the big javascript refactor 2010-03-28 03:45:01 +01:00
46a6576c68 Fix test_component to properly return deferreds from it's test methods 2010-03-27 19:43:42 -07:00
0182641bbb Use the python diff for *.py 2010-03-27 18:51:50 -07:00
e939f17654 fix updating the peers grid 2010-03-27 15:00:48 +00:00
17903c78d4 update the sorter to point to the correct function 2010-03-27 15:00:47 +00:00
676c59c318 rename Deluge.Sorters to Deluge.data.SortTypes and reflect this within the file 2010-03-27 15:00:47 +00:00
4ec10575f3 fix the records names to match the json object we receieve 2010-03-27 15:00:47 +00:00
323638a751 add a new namespace for data records, Deluge.data
rename Deluge.Torrent to Deluge.data.Torrent
add new file Deluge.data.Peer that contains records in the Peers grid
add a singleton that contains sort functions
2010-03-27 15:00:47 +00:00
ce0dc49572 Update .gitignore file to work with git <= 1.6 2010-03-27 17:28:44 +11:00
3f0edee17a Add win32 files from 1.2-stable to keep in sync 2010-03-26 13:14:51 -07:00
ea65974dc2 Remove old win32 files 2010-03-26 13:13:58 -07:00
ddd0f40d4c Add .gitattributes file 2010-03-26 13:12:30 -07:00
12b2f47762 Merge branch 'master' of deluge-torrent.org:deluge 2010-03-26 13:10:58 -07:00
250471fe47 Add .gitignore file 2010-03-26 13:10:35 -07:00
1a26287a5a Merge branch 'master' into autoadd
Conflicts:
	deluge/plugins/pluginbase.py
2010-03-26 11:16:03 -04:00
5c42cfbf64 Fix pluginbase 2010-03-25 15:01:15 -07:00
1cfc4f522e Merge branch 'master' into autoadd 2010-03-25 17:56:20 -04:00
73db03a33b Fix up some docstrings 2010-03-25 14:43:15 -07:00
efe2c06347 remove some useless code 2010-03-25 17:41:15 -04:00
53fd0a57ee add quotes around attribute name 2010-03-25 15:55:01 -04:00
017d1e058e autoadd plugin will now transfer settings from core autoadd folder 2010-03-25 15:30:54 -04:00
e7e480cf3e Fix up some docstrings 2010-03-25 12:01:40 -07:00
c978c6d016 Fix test_alertmanager 2010-03-25 11:47:05 -07:00
8fb56f0410 Update versions in the man files 2010-03-25 10:49:51 -07:00
211d0bee5d Added autoadd plugin 2010-03-25 12:03:36 -04:00
e7c7b8f4db Fix typo 2010-03-24 22:55:45 -07:00
78f9f22a40 Raise a KeyError exception if trying to stop a component that hasn't
isn't registered
2010-03-24 22:52:03 -07:00
c8f2173a04 Use a hack to get the version instead of relying on pkg_resources. This allows the docs to be built without having to install deluge. 2010-03-24 15:36:28 -07:00
256ae0745c Update year 2010-03-24 14:29:17 -07:00
8dad06cfbd Fix some typos 2010-03-24 14:17:58 -07:00
b8270be10f Add ability for plugins to set their component update interval by
setting a 'update_interval' value in their object.
2010-03-24 13:29:41 -07:00
afbca066d7 Fix typo in super call 2010-03-24 13:24:04 -07:00
ee8531aa24 update the debug and compressed js files 2010-03-24 18:04:06 +00:00
7d27b847fb remove unrequired attributes from the button configs 2010-03-24 18:03:38 +00:00
73ec9b0338 Fix the progress bars for directories, was calculating the progress incorrectly 2010-03-23 23:45:52 +00:00
4005003003 remove the last of the resources that used absolute paths and move them to css with relative paths 2010-03-23 23:20:03 +00:00
3e4f2f94dd fix the progress bar usage 2010-03-23 14:36:34 +00:00
d39b5bd071 fix the name for the add window instance 2010-03-23 11:09:49 +00:00
52ea19249c Fix issue where plugins would try to be stopped after they have been
deregistered
2010-03-22 19:59:11 -07:00
a93bbc35a1 Merged test_versionsplit.py into test_common.py 2010-03-22 18:16:17 +11:00
79ab0f118f Add test case for deluge/common.py 2010-03-22 18:11:21 +11:00
9d13b17a3c Fix VersionSplit comparison to do a proper compare and not simply
against the version strings
2010-03-21 15:57:53 -07:00
6aacc6e75c add 2 extra debug logging statements to the Upload controller 2010-03-21 18:59:05 +00:00
c03f519f9a add some base parameter validation 2010-03-21 10:33:02 +00:00
c6caae848f Fix another problem with component change 2010-03-20 20:54:36 -07:00
5945b24476 Fix pluginmanagerbase using new component module 2010-03-20 19:29:36 -07:00
606b623d73 AlertManager will now cancel all pending delayedCalls prior to stopping. 2010-03-20 19:15:33 -07:00
16b832f7ab Fix importing libtorrent 2010-03-20 19:15:33 -07:00
b0714f625f Rewrite component module to handle deferreds properly
Add test_component
Fix test_core to work with new component module
2010-03-20 19:15:33 -07:00
670ad51de1 drop the Config resource and just include it in a script tag on the index page
this allows for dynamic base setting
add support for setting the base via a request header X-Deluge-Header
2010-03-20 14:14:46 +00:00
986e632475 add a missing Ext.namespace in order to create Deluge.preferences 2010-03-20 14:14:30 +00:00
f08c0e053c tidy up doc strings and change InstallPlugin to InstallPluginWindow 2010-03-20 13:35:21 +00:00
fd9dc2d892 add the new command line switches that deluge-web has 2010-03-20 12:41:51 +00:00
67bcaa267a allow the base path to be specified by a command line switch on deluge-web 2010-03-20 12:01:02 +00:00
5a9b671c85 add the jsdoc showing it extends from Ext.util.Observable 2010-03-20 11:26:54 +00:00
af9eeb02b0 rename Deluge.Events to Deluge.EventsManager 2010-03-20 11:02:13 +00:00
ff1ad9d764 fix logging out 2010-03-20 11:01:44 +00:00
7e5e28ea2b update to the new namespace format 2010-03-19 08:48:13 +00:00
51555cab83 fix the quick limits menus
fix displaying speeds with limits
2010-03-18 23:01:42 +00:00
dd866f07de big refactor to meet the new coding style to allow for tidier namespaces 2010-03-18 22:56:18 +00:00
26defff7fc fix building after the theme switch about 2010-03-18 12:41:07 +00:00
7947773a88 move the docs generating out of the js folder and include ext-js when generating the docs 2010-03-17 23:54:59 +00:00
ed03721789 upgrade to extjs 3.1.1 2010-03-17 23:17:13 +00:00
0f6cab42a8 reorganise the themes to make it easier to upgrade extjs 2010-03-17 23:13:32 +00:00
4031b9f94b ensure that we are definitely using the filename 2010-03-17 23:09:44 +00:00
a23648c657 fix the statusbar bandwidth limits (Closes: #1181) 2010-03-17 00:10:33 +00:00
9672480d39 add support for selecting multiple filters 2010-03-16 23:47:44 +00:00
7a115622df add "All" to the list of filters for tracker hosts 2010-03-16 23:44:38 +00:00
f7071b4428 fix the sidebar and torrent filtering (Closes: #1176) 2010-03-16 22:42:52 +00:00
296d790421 If the torrent has been added via a magnet link then try and extract the name from the dn key in the url. Fixes #1154. 2010-03-16 01:14:27 +00:00
228d623aef compress the response of Upload 2010-03-15 12:12:44 +00:00
e83737805d show the connection manager when the ui disconnects 2010-03-14 10:00:04 +00:00
2952a5a7a3 fix up the statusbar switching 2010-03-14 09:20:57 +00:00
21431f18e1 reset the torrents object upon a disconnect so there aren't any errors when reconnecting 2010-03-14 09:05:12 +00:00
4929ba3c44 pass in true to the formatter so fsize doesn't ignore zero values 2010-03-14 08:55:26 +00:00
81d28b686f add a failure callback when uploading a torrent file 2010-03-14 08:46:46 +00:00
e2840148af remove a torrent from the grid as well as displaying an error message 2010-03-14 08:46:46 +00:00
450d526eca Fix issue where the gtkui sometimes won't start if there is a stale lock file or socket in the ipc/
directory.
2010-03-13 12:17:34 -08:00
ae426eb0cd add support for asking the user to change their password if it is their first login 2010-03-13 18:42:46 +00:00
3e6c956ac6 change first_load to first_login in the ui config keys as well 2010-03-13 18:42:46 +00:00
3a54a9aebc change load to login as it seems more sensible 2010-03-13 18:42:46 +00:00
f6c058dd34 add a first_load config parameter 2010-03-13 18:42:46 +00:00
cd7681b909 Fix #1172 notify startup complete when adding torrents externally 2010-03-13 10:08:16 -08:00
d2dafe4180 update the libtorrent submodule to point to 0.15-stable 2010-03-12 10:04:47 +00:00
92837080cd add the libtorrent submodule pointing at RC_0_15 2010-03-11 23:06:47 +00:00
97c2d0346a remove libtorrent submodule that is tracking trunk 2010-03-11 22:59:34 +00:00
da9cb956a8 fix the submodule in master 2010-03-11 22:43:29 +00:00
0ed6eb8564 convert the port field from a "uxspinner" to a "spinnerfield", fixes #1170 2010-03-11 20:13:02 +00:00
f7f928f0b9 fix the entry point for web plugins 2010-03-10 10:39:20 +00:00
24ce77cdf0 add a home icon and corresponding icon class
adjust the file browser window title and add the remaining toolbar items
2010-03-09 23:48:56 +00:00
3a56af99c0 add the toolbar for the filebrowser in initComponent
add a browse button to MoveStorage
2010-03-09 23:40:29 +00:00
c1bf8c1da1 update the sort after an update 2010-03-09 23:32:12 +00:00
f825e8996a update the sort after an update 2010-03-09 23:26:54 +00:00
b919613a51 fix the spinner css classes to use relative paths 2010-03-09 23:06:24 +00:00
38802245b6 display the speed in the title bar 2010-03-09 22:48:33 +00:00
c6da126f55 fix the path to the spacer image when using a different base to / 2010-03-09 22:21:15 +00:00
84374fd83a use Deluge.config.base for the path to the status html page rather than just / 2010-03-09 22:19:01 +00:00
8de2d30de0 add forward and back icons for the filebrowser toolbar 2010-03-09 22:16:03 +00:00
a961947720 add a toolbar to the file browser 2010-03-09 22:16:03 +00:00
ae5071d6cb fix the button css adding !important to ensure that the background-image from them is used
use iconCls for the toolbar rather than fixed paths
2010-03-09 22:16:03 +00:00
00c896ff1d fix the paths of static content so a base config parameter can be used 2010-03-09 22:16:03 +00:00
0f126bcbd5 add the add and create icons to the css file 2010-03-09 22:16:03 +00:00
57fa3d8834 fix the tracker icons when used via a Proxy 2010-03-09 22:16:03 +00:00
e0a8fd70f5 use relative rather than absolute paths for icons 2010-03-09 22:16:03 +00:00
e2b78be264 improve support for a base config parameter 2010-03-09 22:16:03 +00:00
6fd3cd56ff fix the header year and file path 2010-03-09 22:16:03 +00:00
88004c0d54 build deluge-all to bring it up to date with the latest code 2010-03-09 22:16:03 +00:00
739636cc0b On queue_column_sort and seed_peer_column_sort, sorting is now made on a separate function, queue_peer_seed_sort_function so that code can be re-used and only the necessary treemodel lookups are made. 2010-03-08 03:08:13 +00:00
238e183851 Cleaned up the seed_peer_column_sort function. Code reuse is always better. 2010-03-08 02:52:09 +00:00
8a15a18361 PEP-8 and seed/peer sorting support. 2010-03-08 02:06:15 +00:00
2ed9f97bb0 add a stub file/class for a filebrowser 2010-03-07 19:16:20 +00:00
a1be15ffb2 update the libtorrent submodule to point to the public git repository 2010-03-07 19:16:20 +00:00
44d3e2fa2f Merge branch 'master' of deluge-torrent.org:deluge 2010-03-01 17:55:00 -08:00
2ce62bf19b Fix #1161 ask the user if they want to switch to Full allocation if
trying to change file priorities in the add torrent dialog while using
Compact.
2010-03-01 17:53:33 -08:00
3a86fd7068 give the fileuploadfield a width so the text field expands correctly 2010-03-01 22:45:35 +00:00
a69ed83e25 begin adding support for a base config parameter 2010-03-01 17:51:35 +00:00
e5c734fb05 Fix #1162 problem with the queued torrents dialog from not properly adding to the add torrent dialog if set to auto add 2010-02-28 16:58:19 -08:00
cfeae2baf4 Fix #1109 auto add halting when a torrent with invalid filename encoding is in the directory 2010-02-28 16:21:46 -08:00
0ffca9a1f6 Fix silly error from last commit 2010-02-26 14:49:19 +00:00
b8521e7e28 include the ability to profile the web server, code lifted straight from the daemon 2010-02-26 14:26:52 +00:00
50ae65b58a Use faster (non-regex) version of is_url. 2010-02-25 02:01:08 +11:00
4a7782af28 Fix #1143 deluge-console crashes when autocompleting non-existing
directory
2010-02-22 17:11:53 -08:00
5bbe8bec5c update the required libtorrent version to 0.14.9 to match 1.2-stable 2010-02-22 11:59:09 +00:00
a065f95075 Cross-platform fix for #1147. 2010-02-21 18:43:44 +11:00
8dd4d2f094 Fixed typo. 2010-02-21 02:32:24 +11:00
9ad59d5f48 fix #1148, saving execute commands, tuples can't be assigned to stupid me 2010-02-19 23:48:54 +00:00
7999bd1e8c now the size and speed formatters hide on 0 fix the status tab so it displays the same as the gtkui 2010-02-19 20:43:27 +00:00
c81b1620ca fix the doc for fspeed and hide if speed == 0 2010-02-19 20:22:37 +00:00
6d4cf138c8 fix #1147 in trunk as well 2010-02-19 19:50:24 +00:00
a011d6d659 Merge branch 'master' of deluge-torrent.org:deluge
Conflicts:
	libtorrent
2010-02-19 00:39:11 +00:00
1790a1cf2d add an additional check to ensure that the libtorrent folder has files in it 2010-02-18 18:23:36 +00:00
b5533a22bc need to not remove the libtorrent folder 2010-02-18 18:19:29 +00:00
6750e9f122 add libtorrent 0.15 branch as a submodule 2010-02-18 17:26:13 +00:00
04abf6d17b remove the libtorrent folder as we'll now be using git submodules 2010-02-18 17:22:49 +00:00
00734d14b6 update the ChangeLog 2010-02-18 02:32:27 +00:00
bb00387903 fix the peers progress renderer 2010-02-18 02:20:43 +00:00
ea365bf671 fix the cancel button in the edit trackers window 2010-02-18 02:02:32 +00:00
1d2a6f7f0e implement a better remote events system 2010-02-17 01:50:05 +00:00
7bd5ba3cdb use createDelegate and add the onHide method that stops updating the hosts grid 2010-02-17 01:34:42 +00:00
68b5f92ec0 build up the details tab html within the javascript as well as making it easy for plugins to add extra items 2010-02-10 23:16:17 +00:00
04242ba91c fix the broken torrent menu and use icon classes rather than straight icon urls 2010-02-10 22:35:47 +00:00
eef9d8ec13 update the copyright header year for all the js files
implement a new update method that will be compatible with the torrent status deltas
add a new script containing a record for a Torrent
2010-02-10 22:15:29 +00:00
0e9a691954 Fix weird gtk bug that breaks create dialog box's pieces size selection. 2010-02-04 11:17:26 +00:00
9b23ce9e06 Use the preferred locale encoding when renaming files on add 2010-02-03 02:41:24 +00:00
f9d2e96d39 fix the ip address sort function 2010-01-29 16:40:49 +00:00
caed5accea use get_host() in connect() 2010-01-29 15:35:51 +00:00
343521ca25 stop the torrent grid from resetting its position upon update 2010-01-29 11:04:26 +00:00
1d29f67a75 fix the progress bar in the grid 2010-01-28 22:49:56 +00:00
da8367de4d fix the row height 2010-01-28 18:43:30 +00:00
0647c4e3d7 use the BufferView to ease torrent loading in the interface 2010-01-28 18:39:16 +00:00
976824ad99 revert to the default theme if the selected themes stylesheet is missing 2010-01-27 20:23:15 +00:00
a4e12c1d94 change the favicon on the docs template 2010-01-27 11:14:05 +00:00
db4d0fabe7 remove the entry for jsdoc 2010-01-26 18:21:09 +00:00
25b282fdb8 add the full path to the info returned by the file tree 2010-01-26 18:20:43 +00:00
518a73079a fix some issues with the add window 2010-01-26 18:18:14 +00:00
0634592bd9 add a doc string 2010-01-26 18:17:24 +00:00
3e13fe1229 change the formatting 2010-01-26 17:42:17 +00:00
7125eab8b2 add a doc string 2010-01-26 17:42:02 +00:00
57a9e925a7 no need to have this wrapped in an inline function
add a solitary doc string
2010-01-26 17:35:18 +00:00
4afcae325a use createDelegate rather than bind, saving implementing our own method of setting a functions scope 2010-01-26 17:31:32 +00:00
dc764b2ad5 add some basic doc strings 2010-01-26 17:26:53 +00:00
454321614b update the doc strings 2010-01-26 17:07:23 +00:00
d39f6843c9 add the deluge docs template and a build_docs shell script 2010-01-26 17:05:48 +00:00
f63435db90 remove the old jsdoc-toolkit docs folder 2010-01-26 15:25:38 +00:00
8c3b6cb0db add a project file for ext-doc 2010-01-26 15:23:45 +00:00
a89d0d42aa rebuild the non-dev scripts 2010-01-26 14:03:14 +00:00
3368c4c67d re-enable a number of disabled scripts
use hbox for the buttonPanel and remove the pre ext3 hack
2010-01-26 13:59:25 +00:00
447cb52bf1 add .x-mixed-download to the priorities css
fix the way the directory stats are updated (parent directories weren't being updated)
2010-01-26 13:25:44 +00:00
2afd0a4e97 fix the progressbar renderer for the file tree
add a new file priority "Mixed"
add progress bars and priorities for directories using the new tree format
2010-01-26 13:18:16 +00:00
7727a98c45 add a second FileTree class that stores everything as a dict within the tree so information can be stored for directories 2010-01-26 13:12:32 +00:00
744f11e19b rename the TreeGridCustomColumn to TreeGridRenderColumn and add the column object to the template so its accessible from the renderer 2010-01-26 13:11:29 +00:00
0a86a30c2a Initialize session_id to -1 so that it will always return something even
if no connections to the daemon have been established
2010-01-26 02:42:30 +00:00
ec410fc1a9 Remove some debug code 2010-01-26 02:01:53 +00:00
7af689e57f change the priority renderer to return '' if there is no value 2010-01-25 15:10:14 +00:00
fa0d6b1aa0 Increased GTK UI limit for download / upload to 60000. 2010-01-25 09:46:08 +00:00
8fc4caa2f1 Wait on the session state before requesting torrent status updates 2010-01-25 04:58:01 +00:00
25afa04ba3 Use torrent status diffs in the TorrentView to reduce the amount of rpc
traffic from the core->gtkui
2010-01-25 00:15:12 +00:00
c202f7727f Add some rpc stats to the gtkui debug logging 2010-01-24 22:44:44 +00:00
d74050e7a6 partially working files tab added back in 2010-01-24 04:06:06 +00:00
c7635b0ff0 remove commented out line that scanned for the width which is redundant now width is a property of the renderer 2010-01-24 03:29:44 +00:00
0d069d0fe8 change the queue number server side 2010-01-24 03:27:43 +00:00
e441f96204 use Ext.ux.StatusBar 2010-01-24 03:01:12 +00:00
99197b2063 set the correct svn:ignore properties 2010-01-24 02:59:37 +00:00
92d19fd58d initial commit of the big js layout overhall (ui loads but there are parts missing) 2010-01-24 02:55:32 +00:00
b4b95c9423 Don't opitimise when doing a debug build. 2010-01-24 02:23:57 +00:00
e79f6ada2f Move the formatting of RPCRequests to a function so that it's not done every time a rpc request comes
in
2010-01-23 23:50:43 +00:00
0e0cc30128 Add ability to get the session id and validate it.
Fix up some docstrings
2010-01-23 23:41:06 +00:00
9b26f6ebee Fix up the build_debug so that it removes 'NDEBUG' from the CFLAGS 2010-01-23 22:33:24 +00:00
30280b0803 Remove debug print 2010-01-23 22:05:49 +00:00
fe6bcd62be remove all the torrents from the store upon logout 2010-01-23 20:34:32 +00:00
14cea4fbc7 change the data store to a json store to save translating the data into an array first 2010-01-23 15:50:32 +00:00
899ac7c86e remove starting the events manager upon client connect 2010-01-23 15:39:05 +00:00
39341f623f fix the formatting and change it so the events manager is started on the login event 2010-01-23 15:38:07 +00:00
42cbf4f5c6 change the default theme to gray 2010-01-23 15:37:04 +00:00
a3d98029f9 fix formatting and set Ext.USE_NATIVE_JSON to true 2010-01-23 15:35:44 +00:00
031f75a2bb disable the override to formlayout for the time being 2010-01-23 15:34:50 +00:00
a59332b4ef fix logging in 2010-01-23 15:34:32 +00:00
1b2d5bc6ad tweak the way the login is built up 2010-01-23 15:31:17 +00:00
f14b3a8459 fix typo 2010-01-23 14:38:28 +00:00
76fcfa498d add gzip encoding to responses that are just text 2010-01-22 12:39:33 +00:00
2073ae0221 change the default theme to blue for the time being 2010-01-21 21:17:18 +00:00
cd24acd74f upgrade to ext js 3.1 2010-01-21 21:01:02 +00:00
1ac0403f05 switch the css file in the server list 2010-01-21 20:28:10 +00:00
90e562ff98 update the rest of the css files 2010-01-21 19:53:02 +00:00
e010a789c4 remove the carriage returns 2010-01-21 19:50:55 +00:00
964d85d908 update the theme images 2010-01-21 19:34:05 +00:00
3068f006e2 remove the slate theme that is no longer supported 2010-01-21 19:28:40 +00:00
f4cf3d9893 convert spaces to tabs 2010-01-21 19:19:37 +00:00
708ad2e665 add a __contains__ method to the config class
fix upgrading old configs when the key doesn't exist in the old config
2010-01-20 21:04:40 +00:00
0819697c5b update the gettext.js generation script and gettext.js 2010-01-20 20:37:14 +00:00
0121d721cb Make sure all data is passed to pagePart. Accept x-gzip encodings. 2010-01-20 12:36:07 +00:00
a82b6e4fb5 add 2 new commands that allow for libtorrent to be built with debugging enabled 2010-01-20 12:08:29 +00:00
4420f2fae5 Fix hanging when using commands from the command-line
Fix displaying plugin command output on the command-line
2010-01-19 23:00:48 +00:00
f8f9438950 Fix #1128 Show an error dialog when unable to start a 'deluged' process 2010-01-18 02:36:03 +00:00
e211b6feca Update main window glade orientations 2010-01-17 22:18:45 +00:00
d9b9f22998 Completely disable gzip decoding when allow_compression=False. Add extra test. 2010-01-16 04:50:01 +00:00
aaa7dae18e Fix date in 1.2_RC changelog. Add release date to trunk changelog. 2010-01-16 04:21:25 +00:00
2de185adea bump version to 1.2.900 rather than 1.2.9.900 2010-01-14 14:17:05 +00:00
0e2dd9f389 Add gzip decoding support to httpdownloader (implements #1012). 2010-01-14 12:43:59 +00:00
cbac2fbd5a Fix typo. Remove obselete function. 2010-01-14 12:32:04 +00:00
be70305365 Make sure that the port test status image is always reset between tests. Added a "loading" image when the test is in course. 2010-01-12 03:15:50 +00:00
f586b91a59 Remove workaround for lt 0.15 when setting the trackers 2010-01-10 20:17:59 +00:00
623c5ab57b Fix displaying new release dialog in Windows 2010-01-10 19:47:31 +00:00
ed00536468 Add missing import(removed on a previous check-in???). 2010-01-10 16:26:41 +00:00
430b96f4f5 Do not save_state right away, but rather wait for the timer loop 2010-01-08 23:36:44 +00:00
ac66f305e7 Fix displaying root folder when using the 'path.utf-8' keys in torrents 2010-01-08 21:26:33 +00:00
8175b2af58 Use cStringIO to open zip files in python 2.5 2010-01-07 15:27:05 +00:00
4dbc93b1fa Rewrote call to use maybeDeferred (this handles methods that return deferreds).
Fixes #1114.
2010-01-07 00:45:47 +00:00
9b97c6a578 put the default password in the manpage for those too lazy to type "deluge default web password" in google 2010-01-05 14:07:16 +00:00
97375f1a7c Fix #1117 can't use the '3' key 2010-01-04 00:18:53 +00:00
6312ad4a7e Add rudimentary support for local files 2010-01-03 18:02:30 +00:00
b06f46ea7c Fix blocklist ignoring try_times.
Make blocklist print error messages on failures.
2010-01-03 16:27:05 +00:00
a570e67a4d Fix #1116 not being able to use command aliases when not connected to a daemon 2010-01-03 01:37:57 +00:00
221c9984d6 Fix #1115 not showing usage for the 'debug' command 2010-01-02 23:25:45 +00:00
ccc97f83a8 Yet, some more logging clean-ups.... 2010-01-01 22:49:02 +00:00
d557cda55c Clean-up logging. 2010-01-01 22:45:03 +00:00
eee6d4c030 The !FreeSpace plugin only calculates free-space on existing directories. Cleaned-up logging. 2010-01-01 21:44:55 +00:00
177ec7d5c2 Allow choosing which columns are seen on the torrent view by right-clicking it's headers. 2010-01-01 21:27:13 +00:00
f30a10f2b8 Add "Save Path" column to the torrent view. 2010-01-01 21:23:57 +00:00
1c665b7d2f Simplify logic flow a bit (should make local file support easier).
Improve docstrings.
2010-01-01 16:02:20 +00:00
717897b343 Don't apply 'stop/remove on completed' rules to torrents in a Queued or Paused state 2009-12-28 21:50:13 +00:00
7f33292aca Fix not being able to rename folder due to constant updating 2009-12-26 17:10:14 +00:00
3e67620e55 Fix torrent info name not being utf-8 decoded when root file/folder name is blank 2009-12-26 17:09:05 +00:00
bc8cacdbd1 Update svn:externals to point to libtorrent RC_0_15 branch 2009-12-25 21:33:01 +00:00
ec9564d0c1 #496: Remove deprecated functions in favour of get_session_status() 2009-12-25 21:29:47 +00:00
ffb241a4de Strip lines/spaces 2009-12-25 21:27:07 +00:00
d57b2b43ec Implement #457 progress bars for folders 2009-12-24 20:06:23 +00:00
19e2ab2187 Have the .desktop file run 'deluge-gtk' 2009-12-23 23:54:00 +00:00
8e7d4f2cd4 Change share ratio calculation to use the total done instead of the all time downloaded value. This change will make the share ratio calculation not use data downloaded in failed hash checks. 2009-12-23 18:44:00 +00:00
ef2ca43c3d Add in a '_' builtin method if unable to initialize gettext 2009-12-23 01:34:58 +00:00
8bedc613a0 Fix possible TorrentFinishedEvents being emitted on startup for already completed torrents 2009-12-23 01:28:33 +00:00
cd3221baf6 Fix exceptions when gettext/locale cannot be initialized properly 2009-12-21 19:41:31 +00:00
e0ebffb8fa More relaxed definition of what a commented line is in a blocklist.
Decorate readranges with raiseError rather than parse to increase performance.
2009-12-21 13:58:24 +00:00
5a8c443d50 Add another test to httpdownloader.
Make it compatible with python 2.5.
2009-12-21 13:48:00 +00:00
c7d52f3ce5 fix filtering on the tracker host, use == rather than in so tracker urls that contain another trackers url within them aren't picked up as well 2009-12-21 10:26:50 +00:00
fad6ba2193 Fix blocklist status icon not opening proper preferences page.
Show blocklist's file date using the locale's date / time representation.
2009-12-20 09:01:07 +00:00
22c9d7c0ee Fix some packing due to the last commit 2009-12-20 04:23:50 +00:00
3a864bcdad Plugin preference pages will now expand to fill 2009-12-20 04:18:21 +00:00
14f894959f Fix displaying folders in the add torrent dialog 2009-12-20 04:02:41 +00:00
6aebcef2b5 Fix file renaming 2009-12-20 03:45:14 +00:00
9e53e33c24 Fix #1104, #735 use path.utf-8 if available 2009-12-18 04:36:42 +00:00
62a336b7d8 Remove redundant variable. 2009-12-17 23:08:55 +00:00
0cc00ba5df Partial fix for #1103 if the per-torrent option for stopping at a ratio has been unchecked, then do
not stop it at the global setting.
2009-12-17 21:40:21 +00:00
a161bbfcb6 Fix #1095 incorrect piece size used when using some non-English languages 2009-12-17 21:27:04 +00:00
f03d1818fa Upgrade older confs instead of just dying.
Fix major logic error when checking if an update is needed.
2009-12-16 13:46:39 +00:00
13b2e7da26 Fix import on startup which got broken in previous commit. 2009-12-16 12:46:57 +00:00
377f8cf886 Fix blocklist not working for all locales (#1059). 2009-12-16 11:55:34 +00:00
72c9a46fa3 Apply #1100 sort plugins list by name 2009-12-15 17:37:05 +00:00
53b9cdebcd Fix #1099 use triple quotes on docstrings 2009-12-15 06:36:02 +00:00
dc9e2597da Fix showing the remove torrent dialog twice if using the delete key and pressing cancel in the dialog 2009-12-14 23:20:35 +00:00
bc27c2cdf7 Remove Notifications from list 2009-12-14 23:16:56 +00:00
a9631daf7f Fix #768 save tracker list for create torrent dialog 2009-12-14 18:46:08 +00:00
d1f6ca90fc Fix #1086 deprecated gtk.Tooltips usage 2009-12-14 18:20:51 +00:00
68749a7ad5 Fix #594 tray password dialog freeze in Windows
Made the password dialog prettier
2009-12-14 02:15:08 +00:00
5b94861fc9 Fix issue where stoping a daemon that you aren't connected to causes the gtkui to shutdown the
currently connected daemon.
2009-12-14 00:48:18 +00:00
a8697114c1 Fix #823 setting config values to -1.0 2009-12-13 22:47:15 +00:00
0042fb1767 Add #891 remove torrents by pressing the Delete key 2009-12-13 22:16:05 +00:00
b69e25e308 disconnect the client if getting information fails 2009-12-13 21:50:16 +00:00
3c24d72489 use metavar to change the output of --help by optparse 2009-12-13 21:49:10 +00:00
358b5f4b19 Fix issue where hosts will show up erroneously as Offline 2009-12-13 21:46:55 +00:00
43df21517e Disconnect from daemon if getting the info fails 2009-12-13 21:34:26 +00:00
43a5a9111b Fix autoconnecting to a host other than the first one in the list 2009-12-13 21:29:46 +00:00
773f65d708 Add an error dialog when trying to add a duplicate host
Center the add host dialog over the connection manager
2009-12-13 21:25:22 +00:00
cd7b5082a0 Fix #1036 autoconnecting to localhost daemon on start-up 2009-12-13 20:49:23 +00:00
f3f3b3669f Fix #782 do not ask for tray password when window is not minimized to tray 2009-12-12 22:38:26 +00:00
7e0d09a7bc Fix #692 no longer require tray password when quitting from the tray icon while the window is
visible.
2009-12-12 21:22:51 +00:00
42e904b63c reset the add torrent window on hide 2009-12-12 15:56:49 +00:00
35186faf78 Fix printing 'rm' command usage when called with no arguments 2009-12-11 21:19:48 +00:00
62dfd6a664 Implement #1063 option to delete torrent file copy on torrent removal - patch from Ghent 2009-12-11 21:00:12 +00:00
8212a66d5a fix #1075 (changing priority on a whole folder) 2009-12-11 20:45:59 +00:00
eac2a10a12 Fix possible exception when upgrading from a 0.5 state file 2009-12-10 21:28:51 +00:00
9f034657b0 Fix [6003] as it reverted a change 2009-12-10 21:15:56 +00:00
f7b3e11729 update some of the icons in the webui 2009-12-10 18:24:31 +00:00
b47f6badd7 disable the files and options tabs until a torrent has been selected 2009-12-10 17:45:40 +00:00
2ecb233b5b fix uploading plugins when the daemon is not localhost 2009-12-10 17:35:35 +00:00
040f1a5c6d fix the onResize method for the togglefield so it resizes the textfield to the correct size 2009-12-10 17:26:45 +00:00
a126081d2c implement installing plugins via the webui 2009-12-10 15:40:37 +00:00
104852d47e fix the upload_plugin method as it wasn't upgraded to deluge-rpc spec 2009-12-10 15:31:27 +00:00
a2cc2cdd8f remove the margin and padding from the bottom of the options fieldset 2009-12-10 14:35:10 +00:00
7650ebc373 fix enabling plugins on the fly 2009-12-10 14:32:55 +00:00
a4e8d1eb46 Fix using the console in Windows, but only in command-line mode 2009-12-10 01:26:26 +00:00
b9d2094a15 tweak the download prefs page so no scrollbars appear 2009-12-10 00:38:48 +00:00
3f383df479 improve the ToggleField widget, having the checkbox to the left of the
field rather than above it
2009-12-10 00:32:24 +00:00
1ba3955025 add tooltips to the statusbar items
add disk free space to the statusbar
2009-12-10 00:06:34 +00:00
0d3f364aac Apply cookie date fix from adios 2009-12-09 13:13:04 +00:00
d119fa3629 fix a bug in the execute plugin when move_completed is used the incorrect path was passed in 2009-12-08 11:24:56 +00:00
5129682727 tweak the sizes of some form elements to improve the layout 2009-12-08 02:09:03 +00:00
96becf60bd begin the makings of the togglefield widget that allows enabling of move completed/copy torrent files/auto add torrent files fields 2009-12-08 01:56:15 +00:00
9c3efd17cb Change the compressed js script to deluge-all.js to avoid naming conflicts on case sensitive filesystems 2009-12-01 17:11:07 +00:00
19455a7adf copy server.py across from the 1.2 branch 2009-12-01 13:02:46 +00:00
57c96477c1 Add button to Other preferences to associate magnet links with Deluge 2009-11-30 03:50:28 +00:00
f9c61bbc11 Fix #1085 only use ints for specific options to prevent unhandled exception 2009-11-29 21:32:56 +00:00
a80c4e18e7 Fix crash in Windows when creating a torrent 2009-11-29 07:38:29 +00:00
e73c65e602 Properly show 100.00% and reduce number of progress bar updates during a torrent creation 2009-11-29 07:37:29 +00:00
8c283875fb Register just 'deluge' not '/usr/bin/deluge' in the magnet uri handler 2009-11-29 01:45:46 +00:00
1353ce6903 Attempt to register as the default magnet uri handler in GNOME on startup 2009-11-29 01:40:30 +00:00
3136e5490f Add some checks for OSX since it doesn't support SVG icons 2009-11-29 00:52:00 +00:00
cffce4a706 swap the order of the buttons in the remove window 2009-11-26 14:59:04 +00:00
1c318504cf update the build script and rebuild deluge.js and ext-extensions.js 2009-11-25 18:52:00 +00:00
115a7c3795 rename deluge-yc.js to deluge.js in trunk 2009-11-25 18:51:19 +00:00
3fcb0e7ae5 exclude some more things from the sdist 2009-11-25 18:37:40 +00:00
a567b23262 prevent undefineds ending up as a key in the option manager 2009-11-25 18:37:06 +00:00
93468f342a Set batch_write to False in __init__ 2009-11-25 18:23:55 +00:00
635260e686 add the updated setup and new MANIFEST file from 1.2 2009-11-25 17:58:50 +00:00
94625c48b2 Fix loading the saved metadata when loading state with magnet uris 2009-11-25 01:55:51 +00:00
20dc0a5e8a Fix files list when using magnet uris 2009-11-25 01:41:50 +00:00
e6135aa2a9 Fix some accidental reverts 2009-11-25 01:00:25 +00:00
1cb42252b8 Don't throw errors when de-registering notifications.
If sound notifications is not possible or disabled, also disable the sound customization notebook page.
2009-11-22 08:14:09 +00:00
7812f7b4e4 Update the Notifications and FreeSpace plugins descriptions.
On the Notifications plugin, moved the Core and GtkUi notification implementations to `core.py` and `gtkui.py` respectively.
2009-11-22 06:56:50 +00:00
127b577440 If plugin is installed on an older client, known_events might not exist yet. 2009-11-22 06:13:11 +00:00
a5e8a9dc69 Only import gtk inside the GtkUi notifications implementation. Like this one won't need have gtk installed if only the daemon is running. 2009-11-22 05:58:32 +00:00
9bfa5f10b6 Since the WebUI does not yet do anything, remove it's entry point from the notifications plugin.
Cleanup debugging output.
2009-11-22 03:55:36 +00:00
67c0f8609b Merge Heads. 2009-11-22 03:08:28 +00:00
7061e09a8e Remove unused module. 2009-11-22 02:35:55 +00:00
e327d87ebc Moved all notifications into their own classes from which the Core, GtkUi, and possibly latter, Web, plugins inherit from.
The plugins now just handle configuration stuff.
2009-11-22 02:35:47 +00:00
c4f0920c18 Notifications are now working for the built-in TorrentFinishedEvent and the custom one for email, popup, blink and sound notifications. Sounds can even be tweaked for each of the events types.
Needs some code cleanup.
2009-11-22 02:35:37 +00:00
adb22bdfa5 Add the test module so that it can be version tracked. 2009-11-22 02:35:28 +00:00
01a43544d5 Remove un-used module. 2009-11-22 02:35:19 +00:00
8420d6105b Custom notifications now working for emails, popups, blinks and sound.
Blinks might need some changes because, there's no need to formar or gather extra info, so, it might not be needed to allow plugin developers to register custom handlers for it.
2009-11-22 02:35:12 +00:00
1b7a50f88b Checkpoint:
* Custom notification providers working for email.
  * Configuration through the GtkUI working.
2009-11-22 02:35:02 +00:00
8a6ec7232d Merge SVN and HG heads. 2009-11-22 02:34:51 +00:00
535940e2e6 Notifications(email, blink, popup, sound) are working both for classic mode and daemon mode.
Still need some further tests for using `component.get('Notifications').notify*()`.
2009-11-22 02:34:35 +00:00
0723a77214 First notifications plugin commit.
Working when not in classic mode. In classic mode, needs some more coding.
2009-11-22 02:34:23 +00:00
1f58910a38 Fix adding torrents with different metadata by storing the bencoded dict too. If we bencode the stored metadata dict, there is a chance the order of the dict will be different and change the info-hash. 2009-11-20 19:13:12 +00:00
634ecdeb1d Fix issues adding magnet uris 2009-11-19 04:51:19 +00:00
aa86aa6fe1 Fix issue where some torrents with special characters could not be added 2009-11-19 02:39:07 +00:00
789356d44d Fix exception on startup when the system tray icon is not enabled 2009-11-19 02:29:37 +00:00
2b3bd4f1f3 Change the event_list to be a dictionary of known_events and their docstrings 2009-11-16 00:39:15 +00:00
ad04b2a137 Add way to get a list of DelugeEvent classes 2009-11-14 23:42:04 +00:00
1a1ab4e780 Fix endless loop when trying to autoconnect to an offline daemon 2009-11-13 05:26:54 +00:00
330b8b3ced Fix autoconnecting to the next host in the list if the selected one isn't available 2009-11-13 05:22:38 +00:00
bdba9cd00a Fix #1071 issue where Deluge will fail to start if there is a stale ipc lockfile 2009-11-13 01:07:36 +00:00
f98c3adf2f Comment out a debug log 2009-11-10 18:28:27 +00:00
ec2c5ab937 Reduce height of Add Torrent Dialog by ~80 pixels 2009-11-10 02:45:36 +00:00
8dff2375d0 remove alpha from the title 2009-11-09 23:48:32 +00:00
4e2c0a70c4 Allow for colons in PeerGuardian/SafePeer lists' descriptions.
Check that the start & end range resembles an ip when checking a list's validity.
2009-11-09 08:54:13 +00:00
41353c9ae4 Force blocklist to re-detect the format when a download is forced.
Move remove_zeros to common.py and simplify / speed up.
Change debug logging lines to be more uniform.
2009-11-09 01:52:58 +00:00
e73052df1c Fix printing info, help, etc.. on the command line 2009-11-08 17:22:57 +00:00
9b8282010c Fix disabling/enabling plugins after switching daemons 2009-11-08 04:04:40 +00:00
dd67a935cb Fix #1067 import os 2009-11-06 19:22:13 +00:00
0a84bc73c5 Only try to stop LoopingCalls if they are running 2009-11-05 04:35:17 +00:00
baa177a1b1 Fix deleting old .fastresume files with fresh configs 2009-11-05 03:44:46 +00:00
fa5b7e7a66 allow commands that are .pyc files to be used 2009-11-04 23:49:07 +00:00
902ef3fa28 run the path from the add command through os.path.expanduser 2009-11-04 23:36:27 +00:00
8144d15689 add a basic move storage window that fixes #1057 2009-11-04 20:45:21 +00:00
dd860e67f7 remove the connected call upon an update to reduce the number of ajax calls 2009-11-04 19:54:59 +00:00
19d9c71b13 Allow the 'help' command to be called when not connected to a daemon 2009-11-03 22:08:18 +00:00
46906f5447 remove accidentally left in debug line 2009-11-03 14:48:24 +00:00
1893b92f37 make the delete key work in the console ui 2009-11-03 12:47:23 +00:00
fb1d7cfece Fix adding torrents from the Queued Torrents dialog 2009-11-03 03:25:57 +00:00
59b93f4d2e Fix showing the 'Other' speed dialogs in Windows 2009-11-03 03:19:30 +00:00
6880a142e3 Remove debian/ folder 2009-11-02 17:50:32 +00:00
3d76122666 escape the hyphens in the console and web manpages 2009-11-02 17:33:06 +00:00
0f81e2816f forward port the setup.py fix to trunk and update the 1.2 branch ChangeLog 2009-11-02 15:35:56 +00:00
59c7fcf854 Update translations 2009-11-02 01:35:13 +00:00
f6a4d19084 Add the clear() back 2009-11-01 17:49:32 +00:00
ec259d6aea Use batch writing mode in the help command 2009-10-31 22:05:35 +00:00
7983187818 Do not include an 'announce-list' key in torrents when there is only one tracker 2009-10-31 19:49:14 +00:00
2a4cf7cb56 Improve 'info' command draw speed 2009-10-31 18:52:52 +00:00
3b07cc40bd Don't bother clearing the screen during a refresh 2009-10-31 18:44:27 +00:00
fd24e1c17c Fix crash when string length makes line longer than terminal width 2009-10-31 18:43:48 +00:00
f876c17efd Fix crash when removing multiple torrents 2009-10-31 05:50:01 +00:00
ee7f4e452d Fix adding torrents when not showing the add torrent dialog in Windows 2009-10-31 00:08:53 +00:00
7c10dd4c0e Fix #1052 crash when issuing commands while not connected to a daemon 2009-10-30 20:06:07 +00:00
a110ad1d20 Fix improper dos line endings 2009-10-30 19:08:23 +00:00
7c2a2af1f0 Fix displaying non-ascii strings in the console ui -- patch from Ian Martin 2009-10-30 18:00:13 +00:00
6d2d3c0fd0 Fix torrent name being blank when root folder is renamed to /
Update changelog (for previous commit as well)
2009-10-30 00:15:22 +00:00
888997372c Make sure renamed files are utf-8 encoded. 2009-10-30 00:02:25 +00:00
5991abcec5 Use filename suggested by content-disposition header.
Closes #1040.
2009-10-29 06:02:20 +00:00
675d1219cd Consider 0 unlimited when displaying limits in the statusbar 2009-10-28 17:43:29 +00:00
a1e4c51c9c fix #990, showing 0 as a limit when it means unlimited in the statusbar 2009-10-28 17:38:35 +00:00
93e3d2acf6 need to actually continue from the loop otherwise another error still occurs 2009-10-28 13:33:27 +00:00
219f745e68 create a method to escape all possible forms of newlines in a translation as well as the quotes 2009-10-28 13:24:37 +00:00
d6e18f7729 fix displaying the protocol speed in the webui
also update the update_ui method in json_api so it gets the status more like how the gtkui does
2009-10-27 11:39:53 +00:00
d27d7c6733 fix the eta sort order in the webui 2009-10-27 11:16:55 +00:00
831b81529c update the ChangeLog so andar doesn't beat me up
fix displaying tracker urls with & in the url in the gtkui
2009-10-27 11:07:30 +00:00
826f1a2be9 add < and > escaping to the html escape method 2009-10-27 10:57:47 +00:00
e17bd472a8 fix actually escaping (foolish me had left it commented out) and also only update if there has been a change 2009-10-27 10:34:07 +00:00
de82302c67 create a simple html escape method and escape the fields in the details tab 2009-10-27 10:26:59 +00:00
81949449ae fix a couple of bugs in the M.O.M and fix the options tab and file priorities in the torrent add window (success!) 2009-10-27 10:25:16 +00:00
acc850dab9 fixes #1046, changing the option name in the ui rather than the core which would break the other uis 2009-10-27 09:12:22 +00:00
208eef713a Fix #1047 move completed does not work if saving to non default path 2009-10-27 03:08:47 +00:00
dbe90d2882 Use custom user-agent when downloading files with httpdownloader. 2009-10-26 13:58:42 +00:00
3153a545ca Update translations 2009-10-26 01:54:19 +00:00
65545df485 modify the M.O.M so the API is practically the same as the O.M, so the only method that accepts an id is changeId 2009-10-25 17:48:28 +00:00
29d01993c9 Fix typo, update plugin info. 2009-10-25 13:42:11 +00:00
9627b7cb92 Fix exception when using the 'halt' command 2009-10-24 19:49:20 +00:00
c068384845 Fix create_plugin.py script 2009-10-24 05:51:26 +00:00
92eb10be29 Fix #215 ETA sort order 2009-10-24 04:56:10 +00:00
c6d4208a29 Fix previous commit [5864] 2009-10-24 03:47:35 +00:00
c6eaec6998 Fix #799 translate connection status 2009-10-24 02:04:19 +00:00
b77e846744 Fix starting plugins when the pluginmanager is started 2009-10-23 23:23:38 +00:00
566d3c5ebf Fix possible exception when trying to load pre-1.2 plugins 2009-10-23 01:15:30 +00:00
6eee4fb31f Fix 'autostart localhost if needed' option 2009-10-23 01:07:46 +00:00
36e74e05ca fix removing torrents that fail to download when added via url 2009-10-21 20:30:07 +00:00
2289b5f173 fix switching the options when a different torrent is selected
fix showing the private flag
2009-10-21 20:15:16 +00:00
f6b5eb0a0c fixes to the M.O.M and the options details tab, still not 100% though 2009-10-21 19:48:44 +00:00
d70edb245b show the infinity symbol if ratio is less than 0 2009-10-20 22:45:32 +00:00
21701cb096 fix setting bandwidth limits via the statusbar 2009-10-20 22:33:18 +00:00
da2a7ef138 fix setting the add options in the mom 2009-10-20 21:53:54 +00:00
3f1d769ffc merge changes into trunk 2009-10-20 21:44:27 +00:00
9c491c13cc Add option to create torrent name sub-folders in extract folder
Fix issue where the plugin would not stop extracting files after being disabled
2009-10-19 02:10:43 +00:00
bdc173cf4b use os._exit() rather than exit() when forking 2009-10-14 15:53:31 +00:00
4ae439a99a Pause the TorrentDetails component when the window is minimized.
Clean up the pause/resume component code in mainwindow
2009-10-14 15:49:55 +00:00
04217e16d4 big bunch of fixes to the M.O.M along with a couple to the O.M 2009-10-13 16:21:28 +00:00
4a00edc066 move the parameter type converting into a seperate method 2009-10-13 15:22:24 +00:00
aa274eca74 improve the forking code 2009-10-13 15:20:45 +00:00
c0b5bcc7d3 add the option to fork the webui 2009-10-13 11:32:40 +00:00
551d38c7a0 fix a bug in the connection manager where the host list wasn't refreshed after a host was added 2009-10-13 09:56:49 +00:00
c3f433500b allow setting of the value without firing an event 2009-10-12 16:45:28 +00:00
23c949d4ec give names to both the radio buttons so they end up in a group (duh) 2009-10-12 16:44:30 +00:00
3d85791a03 fix a bug in converting non-boolean values back to boolean in the options manager 2009-10-12 09:53:13 +00:00
a3636ccdb7 Fix saving torrent state on fresh configs
Do not try to call doIteration() on the reactor if it has already stopped
2009-10-11 18:46:35 +00:00
e0111271a3 change the value of torrent.queue from -1 to 99999 so the grid sorting works the same as the gtk ui 2009-10-10 14:06:08 +00:00
44217fd977 add a man page for deluge-web 2009-10-10 13:45:31 +00:00
6274a32ca1 Add man pages for deluge-console and deluge-gtk
Update the other man pages
2009-10-09 16:26:10 +00:00
11c0e9a304 Likewise in trunk.. 2009-10-09 00:40:46 +00:00
844f98db04 Fix path errors when adding torrents externally in Windows 2009-10-09 00:19:07 +00:00
3c69822761 Modify setup.py to allow building without libtorrent/ 2009-10-08 02:51:49 +00:00
3a90109724 Likewise in trunk 2009-10-08 02:43:54 +00:00
ce0968e6dc Update gettextize.sh script to use proper encoding
Regenerate deluge.pot
2009-10-05 00:00:37 +00:00
2e6b21aa85 Add script to regenerate the POTFILES.in file
Update the POTFILES.in file
2009-10-04 23:48:18 +00:00
8a5ccbc2d4 Update setup.py 2009-10-04 23:19:34 +00:00
718a12b492 Update ChangeLog and README 2009-10-04 23:07:24 +00:00
34b25d77f1 Fix blocklist plugin 2009-10-04 22:47:27 +00:00
b680ff48e5 Use new method to add plugin tab
Stop graph tearing
Patches from Ian Martin
2009-10-04 19:25:10 +00:00
9a0b6030e6 Allow plugins to properly add tabs and have them restored upon restart - patch from Ian Martin 2009-10-04 19:24:15 +00:00
0e532c7f4e Commit #1019 allow up to 4 MiB piece sizes 2009-10-04 19:15:35 +00:00
384a828795 Commit #850 make urls clickable in the comments field 2009-10-04 19:11:37 +00:00
5c481c3b13 A few fixes for the blocklist plugin 2009-10-04 19:09:06 +00:00
c3193f3c70 Add support for forward slashes in config setting 2009-10-03 22:53:21 +00:00
cb36beded4 Fix #1018 issue with 2nd level folder rename in the gtkui and save resume data on file/folder renamed 2009-10-03 22:10:38 +00:00
fbd6db859f fix bug in the tracker icons resource 2009-10-03 20:44:19 +00:00
d28e5998b9 Commit Ideal's one fastresume file patch with some tweaks 2009-10-03 00:15:43 +00:00
0a9cccb5e8 Fix up the sizing of the downloads preference page 2009-10-01 10:51:27 +00:00
5be72551f0 add copyright header 2009-10-01 10:46:35 +00:00
e1f68fb8fa fix the package name in common
change the script name in webui
add copyright headers to the js file and change indentation
2009-10-01 10:45:59 +00:00
365d21ed04 rename deluge-execute.js to execute.js 2009-10-01 10:43:03 +00:00
2d10f88714 add the missing s to %(filename)s 2009-10-01 10:40:48 +00:00
3d83dab4a1 add a GPL copyright header to the javascript plugin template 2009-10-01 10:39:09 +00:00
c17eb14dd2 remove the paranthesis from the export deco since they aren't needed anymore 2009-10-01 10:36:10 +00:00
95af21eca9 fix up the webui side of the plugin, even if it is skeletal 2009-10-01 10:35:46 +00:00
8fd03cb9ac remove the template folder, since the webui no longer uses templates 2009-10-01 10:33:50 +00:00
9d6aeaecdb add the common module that now exists in most plugins 2009-10-01 10:33:02 +00:00
02e7a7d361 fix web plugin entry point 2009-10-01 10:32:20 +00:00
a0a8c598da move the code that updates the buttons in the CM depending on the host status into a single method 2009-10-01 10:25:11 +00:00
eae452dbe4 change indentation to 4 spaces 2009-10-01 10:12:56 +00:00
3baa1a18d4 disable the connect button if the host is offline 2009-10-01 10:09:21 +00:00
6b13eeeb38 change the _libtorrent module so that the included libtorrent is checked for the correct version also (incase people have been following svn and the version requirement changes) 2009-09-29 09:24:16 +00:00
9fafa31afe fix silly bug in the setup script. bad damoxc. 2009-09-29 09:20:25 +00:00
fd9bf112c4 just some whitespace changes 2009-09-28 16:53:52 +00:00
3f8abf1e34 move the stateful stuff to Deluge.js before any other js has executed 2009-09-28 16:48:02 +00:00
d075ac888e use the version check within deluge so the correct version is checked for 2009-09-28 15:18:51 +00:00
a4d1fbd0bd Fix unbound local error when adding a torrent fails. 2009-09-26 16:25:16 +00:00
66402b7526 Remove some unnecessary dependencies 2009-09-26 03:15:09 +00:00
0be6d83d92 Remove 'state_location' and 'config_location' preferences and all references from the code. We should use configmanager.get_config_dir() instead. 2009-09-25 00:57:22 +00:00
7749f99828 change the labelAlign to top and icnrease the width of the fields 2009-09-24 16:42:36 +00:00
51b15c78a8 add a comment and remove one of the OLD_CONFIG_KEYS 2009-09-24 15:56:42 +00:00
5c5a0712b0 only try and load the old config if the file exists 2009-09-24 15:55:21 +00:00
fb154eaba9 Set the maxValue of the port spinner to 65535 2009-09-24 14:26:05 +00:00
9df5269fee give a bit more love to the connection manager, updating buttons when the host status is updated as well 2009-09-24 08:41:00 +00:00
8270c397da fix bug in the start_daemon method 2009-09-24 08:37:20 +00:00
e0671a0daa fix bug in the stop_daemon method 2009-09-24 08:35:40 +00:00
1b6d92c778 add a start_daemon method 2009-09-24 08:33:35 +00:00
401aa28ba8 update deluge-yc and ext-extensions 2009-09-24 08:11:11 +00:00
9bdcb04cb3 change the spinner strategy so it's an integer 2009-09-24 08:08:43 +00:00
68b4af839f disable the remove button and the stop daemon button when no host is selected 2009-09-23 19:10:44 +00:00
ce449e7b3b fix bug when upgrading old passwords on new logins 2009-09-23 18:16:08 +00:00
a23812f880 Fix #1014 autoadd should verify that the autoadd location is a directory 2009-09-21 05:39:43 +00:00
0d2c73063c Fix previous commit to recursively copy the args 2009-09-19 05:41:36 +00:00
9c40b777f3 Make a copy of the args and kwargs when making a daemon call in classic mode.. This makes it's
behaviour to the same as when making a RPC
2009-09-19 05:16:33 +00:00
3f8441af6a Update the about dialog and have it show the core version and libtorrent version 2009-09-19 00:18:14 +00:00
3901f3e6b2 update the create_plugin script allowing for the new webui plugin stuff 2009-09-17 07:36:13 +00:00
5645d6644d update the example plugin with the new webui plugin stuff 2009-09-17 07:27:33 +00:00
2f49c5cfa7 rewrite the plugins page using the new get_plugins method in the web json api
update the grid when a Plugin{Dis|En}abledEvent occurs
2009-09-16 09:53:49 +00:00
037fbcaaa7 store remote events and register them when the events are started 2009-09-16 09:39:30 +00:00
f831cdce9a add a method that returns both the available and enabled plugins to reduce the number of AJAX calls required 2009-09-16 09:38:46 +00:00
443b4854b4 remove the test children accidentally left in 2009-09-16 09:38:17 +00:00
13109f8a1f just a couple of small tweaks 2009-09-16 09:03:30 +00:00
e4fb98bd02 add a working javascript loader
implement the core code for disabling/enabling plugins on the fly
2009-09-16 09:02:26 +00:00
b2390b8ff4 have the plugin manager remove the scripts and directories from the server when a plugin is disabled 2009-09-16 08:42:39 +00:00
92ecb3fe87 don't enable plugins until connected to a daemonm 2009-09-16 08:32:33 +00:00
63aa818c47 remove the seeds status key from the Peers key list 2009-09-15 11:51:03 +00:00
dcfa83bf09 remove the js loader, doesn't work correctly 2009-09-15 07:29:08 +00:00
cd0f4f69fb have the help button open the user guide on the wiki 2009-09-15 07:28:09 +00:00
dd519f936c tie up the find more button so it opens the plugins page on the wiki 2009-09-14 21:28:02 +00:00
45840727e9 add a js loader class, taken from http://www.extjs.com/forum/showthread.php?p=272104 2009-09-14 16:32:23 +00:00
137be4c8f1 add a method to gather the plugins resources for when they need to be loaded after the ui 2009-09-14 16:31:59 +00:00
6fc1e23fce indicate whether the UI is in debug mode via an additional script tag in the index page 2009-09-14 16:24:47 +00:00
3c02a499a5 stop a session from subscribing to the same event more than once server side 2009-09-14 16:04:52 +00:00
fc1b1a6aa8 improve the plugin manager so that it handles the adding and removing of scripts 2009-09-14 15:56:09 +00:00
b164fef0c5 extend the Deluge.Events class to include support for subscribing to the remote events 2009-09-14 15:55:36 +00:00
daab4aade6 fix a KeyError in the JSON component
implement the EventQueue for the server side handling of events
2009-09-14 15:41:12 +00:00
aa4202b9ed add enable/disable methods to the JSON component
remove the empty enable/disable plugin methods from the web api
2009-09-14 10:36:40 +00:00
da5697490d change the scheduler plugin to use the new plugin architecture 2009-09-14 10:26:59 +00:00
63b02f28d1 change WebPluginBase so it has empty enable/disable methods (web plugins don't need to enable/disable themselves, it's optional) 2009-09-14 10:26:29 +00:00
e7095195f7 fix enabling plugins when the UI is created
change Deluge.Plugin so it implements the enable/disable methods that merely fire events that the plugins can use
2009-09-14 10:19:15 +00:00
4df98df1f2 change Deluge.Plugins to an object rather than array 2009-09-14 10:07:56 +00:00
3d33696c94 add copyright headers to all the preference pages 2009-09-14 10:05:53 +00:00
fef34b3f6f fix the plugin base class scope in the constructor
enable plugins when the UI is initialised
add an array for plugins to put in
2009-09-14 10:02:35 +00:00
7d495e2a16 add a javascript base class for plugins 2009-09-14 09:44:35 +00:00
77253f835c return a 404 if no resource is found, also enable the JSON component when the server starts 2009-09-14 09:25:27 +00:00
3367d0af48 improve the LookupResource class so plugin resources can be put in a sub directory 2009-09-14 09:23:46 +00:00
5e829ca160 tidy up the config dictionary and add default_daemon option 2009-09-14 08:18:29 +00:00
0bc97733bf Do not fail to start if deluged.pid contains no data 2009-09-13 17:17:37 +00:00
7343c5bb39 Fix typo and logic error. 2009-09-13 15:33:45 +00:00
2b46224ef1 Readers raise ReaderParseError when parsing b0rks.
on_import_failure, now handles parse errors.
2009-09-13 14:45:23 +00:00
0952f84d6c Detect now handles creating a reader.
Finished writing detect_format and hence auto_detect (could it really be?)
is_valid() doesn't need to take in a filename (already has it).
2009-09-13 13:51:00 +00:00
d6597bdc22 Added is_valid method to readers.
detect_format now takes in optional compression type.
2009-09-12 14:25:38 +00:00
5573d7ef7d fix indentation 2009-09-10 14:26:14 +00:00
1ebb490e4e fix an AlreadyCalledError when getting a hosts status 2009-09-10 14:19:05 +00:00
a78ab9529f Fix up the Execute plugin's gtk code 2009-09-09 20:47:12 +00:00
3d4e05b5e0 Run the plugin's show_prefs callbacks before the preferences dialog's show() 2009-09-09 20:04:04 +00:00
9c641bb6d0 Fix more indentations 2009-09-09 17:08:00 +00:00
9c6ff72a83 Fix indentation 2009-09-09 17:05:13 +00:00
c0276a541c improve the WebPluginBase class, registering it with the json rpc-api and adding space for scripts/stylesheets 2009-09-09 16:51:44 +00:00
c333ad4f6a remove obselete plugin base file 2009-09-09 16:39:35 +00:00
0ddb1526a1 Add 'plain' as a possible ico type 2009-09-09 05:12:41 +00:00
aca9e853d7 change UTC to GMT and add a method for generating the expires int and string 2009-09-08 09:55:19 +00:00
2caee15f7f Pretty up the Proxy preference page by dynamically showing/hiding fields as needed 2009-09-07 20:47:51 +00:00
b849a4b451 Fix #1009 enabling a plugin twice in the gtkui
Prevent plugins from being enabled more than once in pluginmanagerbase
2009-09-05 19:32:01 +00:00
d1c6e551a9 another patch from David Mohr adding basic cookies support in core 2009-09-04 16:30:56 +00:00
82682dbb2d applying patch from David Mohr replacing the Timer object with LoopingCall 2009-09-04 15:58:41 +00:00
4e3f4128fa Apply patch from David Mohr to make core.py more 1.2 compatible 2009-09-02 22:36:34 +00:00
a6ab62f7ce re-set the _session_id cookie updating the expires time 2009-09-01 22:39:34 +00:00
5d85af9adf Add SSL exception to license in the about dialog 2009-08-31 22:16:39 +00:00
9712d1c16f Updated the feeder __init__.py for 1.2 2009-08-31 19:07:11 +00:00
753e17d612 importing the feeder-plugin for porting to 1.2 2009-08-31 18:55:51 +00:00
7a09ef5356 add the beginnings of the plugins preferences page 2009-08-27 19:13:45 +00:00
f10bf6961b Add PluginEnabledEvent
Add PluginDisabledEvent
Add event handlers to enable/disable plugins on events
2009-08-26 16:59:29 +00:00
6ca835314e add a method for grabbing plugin info 2009-08-26 08:53:58 +00:00
32ed499b2a connect up the key-press-event and have the context menus pop up when the menu key is pressed 2009-08-24 22:13:54 +00:00
bcbe3108c9 ensure the port is a Number 2009-08-24 20:08:03 +00:00
00882ac867 Hide the 'Open File' menu option when connected to a remote daemon 2009-08-23 20:46:31 +00:00
df72c38f22 ensure that the value is a number 2009-08-21 01:06:22 +00:00
24db5bd72a make sure the value is a float 2009-08-21 00:57:08 +00:00
a75405feb0 working version of the proxy preferences page with field hiding, config saving, the whole shebang 2009-08-21 00:50:56 +00:00
aa97b5a273 allow the preferences config panel to overflow and tweak the pages so only the ones required to overflow do so 2009-08-20 23:50:59 +00:00
80634db44c Fix num_pieces calculation 2009-08-20 22:27:40 +00:00
1b3448ad91 add spinner strategies to all the spinners on the bandwidth page 2009-08-20 01:23:04 +00:00
f127d1c451 decrease the margin-top on the server fieldset 2009-08-20 01:19:18 +00:00
e2fb2ddd03 tweak the layout slightly 2009-08-20 01:12:43 +00:00
e05e0b4e35 add support for binding an option to multiple fields 2009-08-20 01:08:09 +00:00
9962206907 include yet more preferences (ssl, port, certificate locations) 2009-08-20 00:55:58 +00:00
937f8715a4 only output config keys that the ui needs in /config.js 2009-08-20 00:54:57 +00:00
54083e0a7e remove some unused configuration values 2009-08-20 00:47:27 +00:00
88471024d9 have the option manager return the field from a bind 2009-08-20 00:47:02 +00:00
e676bcf576 add the session timeout to one of the options on the interface preferences 2009-08-20 00:32:32 +00:00
1a635e8860 only return deferreds for those methods that require it 2009-08-20 00:31:31 +00:00
7d0ccb8847 fix returning the call when the method doesn't return a deferred 2009-08-20 00:27:34 +00:00
ea3f8b7d34 fix the message boxes on the return of the password change call 2009-08-20 00:12:41 +00:00
56aca8f2f9 rewrite the interfaces preferences page as a class
implement password changing
2009-08-20 00:05:35 +00:00
c94c9c36e4 have the change_password method accept an old_password parameter for extra checking
move the password checking logic into a seperate check_password method
2009-08-20 00:04:55 +00:00
865027b3ec increase the expires time each time a session is checked for authentication 2009-08-19 23:30:36 +00:00
9f3ef6556a add an isObjectEmpty method to Ext to test to see if an object == {}
fix a couple of bugs in the options manager
only call core.set_config if there are changed options
call all the pages onApply method if they have one
2009-08-19 23:17:50 +00:00
b4547c0bf0 add a show_session_speed option
add a get_config() method to the web api
2009-08-19 23:16:19 +00:00
219a509bee Fix terminal resizing support 2009-08-19 22:13:58 +00:00
39a09f2704 Fix piece size calculation 2009-08-19 02:14:29 +00:00
4ca5f9a371 Use piece_sizes in KiBs
Fix bug with webseeds
Fix bug with multi-level directories
2009-08-19 01:45:55 +00:00
4014b3fba9 remove an extra creation of the options manager 2009-08-18 22:19:09 +00:00
97163b7cb0 change the session timeout to be configurable 2009-08-18 22:04:58 +00:00
199a307cd9 Add 'cache' command to the console ui to display the cache status 2009-08-17 20:21:02 +00:00
3d3f7e53f9 Fix docstring 2009-08-17 20:20:45 +00:00
fed7392a5d Add a 'plugin' command to the console ui to enable, disable and list available/enabled plugins 2009-08-17 20:09:22 +00:00
fb4e4856d1 Show an error instead of crashing when trying to use a command option without a required argument 2009-08-17 19:13:09 +00:00
2b31544754 Fix console ui from crashing when the terminal size is shrunk 2009-08-17 18:02:56 +00:00
06ecfceb74 Fix print torrent info to the console 2009-08-16 17:13:34 +00:00
66eaa4071d Add the auth level to the RPC Export docstring
Fix up docstrings in the rpcserver module
2009-08-14 23:11:22 +00:00
2681acbc8d Add 'RPC Exported Function' to the beginning of every docstring on rpc exported functions 2009-08-14 22:47:28 +00:00
567a42b0ec Fix some docstrings 2009-08-13 05:02:39 +00:00
74ed19b5f2 Do not use property decorators as 2.5 does not support .setter et al 2009-08-12 21:18:39 +00:00
f562e8aff3 remove log messages as they don't work 2009-08-12 08:20:19 +00:00
8ef55c380e add a log message stating which json encoder is being using 2009-08-12 07:24:10 +00:00
c35535edc3 Print libtorrent version in the log 2009-08-12 07:22:13 +00:00
bd5998ec05 Remove gtkui.rst for the time being 2009-08-12 07:17:21 +00:00
c33cf71b62 stop using get_stats and fix the protocol overheads in the statusbar 2009-08-12 00:59:19 +00:00
b431368b67 remove cruft in the preferences folder 2009-08-12 00:43:40 +00:00
58c3b60ca7 add a new preferences page for encryption 2009-08-12 00:42:48 +00:00
a207e1010b increase the width of the spinners on the bandwidth page 2009-08-12 00:19:33 +00:00
5376ae307a Add maketorrent.rst 2009-08-12 00:11:08 +00:00
b74fdcf558 fix calling core methods 2009-08-12 00:10:07 +00:00
1cfc057b05 Add new maketorrent module 2009-08-12 00:09:22 +00:00
c9b8428106 change onLogout to logout 2009-08-11 23:58:19 +00:00
2c65d21b0b remove rogue print statement 2009-08-11 23:57:54 +00:00
3ed6e28adc fix the scope of the each loop 2009-08-11 23:56:35 +00:00
7f597aff70 fix for when the login window hasn't been rendered 2009-08-11 23:55:01 +00:00
6b8ff92fe2 improve the connection manager 2009-08-11 23:43:56 +00:00
3e8c17b071 complete the new auth system using cookies & sessions 2009-08-11 23:39:58 +00:00
1b17d66576 add a missing method 2009-08-11 23:15:42 +00:00
444272344e change it so the event is only subscribed to for a single fire 2009-08-11 23:15:20 +00:00
7c0590f399 fix a bug when firing the error event 2009-08-11 23:14:38 +00:00
c0d0498f36 Add rst files for all the modules 2009-08-11 23:05:13 +00:00
ba909ebcc9 add an error event to the rpc client 2009-08-11 22:53:53 +00:00
074c2f85a5 return if stats is null or false 2009-08-11 22:51:37 +00:00
6334820a5d stop the update_ui method from calling core methods when the client isn't connected
make the current http request available to exported methods via a __request__ global that gets set before each call
2009-08-11 15:22:59 +00:00
2de8069c9f add an onOk event handler that saves and closes the preferences window 2009-08-10 10:24:45 +00:00
78df3d10ce fix update calls in a few places 2009-08-10 09:58:51 +00:00
01ec3f5b5a change runCheck to update 2009-08-10 09:56:43 +00:00
33d889aaf8 add dump and load methods to the json module if it isn't simplejson 2009-08-10 09:46:57 +00:00
2bece0e03d add everything aside from encryption to the network preferences 2009-08-07 07:33:35 +00:00
38aaea29a0 increase the icon size to 64 so it doesn't look crummy in application switchers that use large icons 2009-08-07 07:31:27 +00:00
c2361f5865 update javascript to ext 2.3 2009-08-07 07:10:55 +00:00
bf0218d785 update the doc string for export 2009-08-07 07:09:53 +00:00
c154301dbd Add a force recheck command to the console 2009-08-06 20:16:23 +00:00
299add850c Have the console command 'info' display all torrents info when no argument is given 2009-08-06 20:15:52 +00:00
7b9fe6ea94 working implementation of the port configuration 2009-08-06 19:03:08 +00:00
5af8fec10a add a spinnergroup widget to make the port sections in the network preferences easier 2009-08-06 18:58:37 +00:00
9bf89455e6 Get the number of rows/columns on refresh() 2009-08-06 18:21:18 +00:00
8425e9915d Move the add_torrent_url_with_cookie url to our server 2009-08-04 01:01:26 +00:00
fa2dedda73 add an override to setValue within the ext spinner extension so setValue amounts are run through the strategy 2009-08-03 22:26:18 +00:00
f216ffe54e Add a comment 2009-08-03 21:45:03 +00:00
ea57cad95b call check_ssl_keys prior to listenSSL 2009-08-03 21:41:53 +00:00
ee573b4816 Add a check_ssl_keys() function that will check for the keys and generate them if needed 2009-08-03 21:39:06 +00:00
352ec837d5 add a webui plugin to core and gtk for integrating the web interface with the core 2009-08-03 21:37:35 +00:00
706c52dd1b Move generate_ssl_keys() out of RPCServer 2009-08-03 21:34:07 +00:00
ac9be780cf Revert 5619
Fix find_json_objects when there is a newline at the end of the string
Add test for find_json_objects
2009-08-03 20:27:03 +00:00
5f561dabda fix a bug in the Config class relating to the config directory 2009-08-03 19:49:47 +00:00
c0ce36b216 only stop the port/socket if one exists
add a start_reactor=True param to the start method
2009-08-03 19:23:27 +00:00
76587be1a7 change the pluginmanager component name to Web.PluginManager 2009-08-03 19:21:53 +00:00
e496fda499 fix for when there isn't a save timer yet 2009-08-03 19:04:54 +00:00
704435f721 Config copies the defaults dict now since it is mutable
Fix saving with the save_timer after setting an item
Add test for testing the save timer
2009-08-03 18:43:05 +00:00
e8b04c1542 Add a test for saving the config 2009-08-03 17:39:12 +00:00
abc3964f73 Reset the config_files when the config directory changes 2009-08-03 16:56:01 +00:00
c2299b793c add .gif images from the images folder also 2009-08-03 16:27:45 +00:00
1f817b3d56 change it so starting in ssl mode is left up to the server
add a stop method that doesn't stop the reactor
2009-08-03 15:40:58 +00:00
a14f4f6869 Fix get_deluge_icon 2009-08-03 14:40:24 +00:00
4cfa6485d7 remove the paranthesis from the decorators in core.py 2009-08-03 11:46:49 +00:00
92a37b7d81 Make sure url, filename and headers are strings before downloading. 2009-08-01 03:00:04 +00:00
9b0d4f6118 Add support for cookies when adding a torrent by url.
Don't set torrent if torrentId is null.
Fix typo.
2009-08-01 02:38:30 +00:00
ded6bb9566 Change the config format
Add test_config
2009-08-01 02:26:26 +00:00
838cef1c36 Fix shutdown handler with GNOME session manager 2009-08-01 00:15:05 +00:00
eef9345e8b Add test file for httpdownloader. 2009-07-31 23:53:23 +00:00
d5f7df8a96 Fix issue where the column state wouldn't save if not using English 2009-07-31 18:47:42 +00:00
aeb087eb3d add the cache preferences page 2009-07-31 08:35:28 +00:00
bdaf0062af Don't clobber the label config 2009-07-31 07:52:01 +00:00
a528f78529 Properly unload Execute plugin when disabling it 2009-07-31 07:40:50 +00:00
2334fff388 Add support for the deluge-gtk start script 2009-07-31 00:57:04 +00:00
983e37d4ab Make sure the 'quit and shutdown daemon' menuitem is shown when switching daemons 2009-07-31 00:46:42 +00:00
ee442536a8 Fix properly disconnecting from the currently connected daemon when connecting to a different daemon 2009-07-31 00:39:09 +00:00
2089fd1823 Add gtkui.common.get_deluge_icon() and use it 2009-07-31 00:18:35 +00:00
26af4214fa add the other preferences page 2009-07-30 23:49:34 +00:00
1429b87da7 disable all the textfields that should have accompanying checkboxes 2009-07-30 23:49:05 +00:00
b8b292c7fb convert the other icons that i could see to the icon theme 2009-07-30 23:46:03 +00:00
91c5028701 use the icon theme's icon where available 2009-07-30 23:41:27 +00:00
974b9a5f3c Fix showing some menuitems when disabling classic mode due to an already running daemon 2009-07-30 23:38:14 +00:00
e6cf3a2fd9 Fix saving column widths when quitting from the tray with the window hidden 2009-07-30 23:23:16 +00:00
2447ed4425 add the indent class and also apply it in the options tab 2009-07-30 23:14:12 +00:00
48ba81b61b add a strategy to the daemon port spinner 2009-07-30 23:13:49 +00:00
63af59ab46 finish the queue preferences page 2009-07-30 23:11:28 +00:00
ccaf4e65f7 Increase the seed time limit spinner max value to 10000 2009-07-30 22:51:44 +00:00
5998eea0bd hide all the preferences page upon the first page change and don't set the width/height 2009-07-30 22:32:58 +00:00
0c4cc4d0e2 fix the dodgy splitter positions on the spinners 2009-07-30 22:26:23 +00:00
8ad774cd3c build the config panel in the initComponent method 2009-07-30 22:14:37 +00:00
c383345cd9 Use the proper download_location when adding a newly created torrent to the session 2009-07-30 22:04:23 +00:00
9c4b6afc05 listen to the 'check' event on the field also incase it is a checkbox 2009-07-30 21:50:16 +00:00
c76e67b109 convert the daemon preferences page into a class 2009-07-30 21:42:04 +00:00
525ffee93e Fix up some docstrings 2009-07-30 21:41:51 +00:00
15dd22812d Fix a bug in the sidebar states when show zero is checked 2009-07-30 21:37:01 +00:00
f07c0d9894 Implement better version check when importing libtorrent -- account for minor version numbers 2009-07-30 21:27:36 +00:00
d685b2ddd6 Move the VersionSplit class to deluge.common 2009-07-30 21:14:50 +00:00
90789982f7 fix the config names of some of the fields 2009-07-29 16:35:52 +00:00
abb05829dc disable setting bandwidth limits via the statusbar for the time being
make the uxpsinner fire the change event when they spin
2009-07-29 16:16:03 +00:00
ee16bffbbd add a cookies field to the url window 2009-07-29 16:05:27 +00:00
97a7890a28 fix a bug in the add torrent via file in browsers other than FF 2009-07-29 10:17:10 +00:00
9b56fab8a1 fix the build script to include the multioptionsmanager and rebuild 2009-07-29 09:59:10 +00:00
999803fce5 set the server to always run in debug mode if 'dev' is in the version 2009-07-29 09:11:19 +00:00
0ac8e39dda build and commit the compressed copies 2009-07-29 09:01:11 +00:00
f031ec5628 increase the widths of the textfields and pass in inputValue rather than value to the radiogroup 2009-07-29 08:58:28 +00:00
5ec004b2ff use item.el.getValue() to compare the value when picking the radio in the radiogroup 2009-07-29 08:55:24 +00:00
a62c545d4a fix a bug in setValue for the RadioGroup 2009-07-29 08:22:19 +00:00
82a4367aa9 use boolean values rather than string values for the radiobuttons 2009-07-29 08:19:45 +00:00
f4b34637dd add the new bandwidth pane in the compressed file 2009-07-28 23:37:11 +00:00
21f09a636a an initial attempt at the bandwidth pane 2009-07-28 23:33:37 +00:00
58b5c1a68f the first iteration of the preferences window that loads AND SAVES preferences (at least the paths in the downloads section) 2009-07-28 22:39:32 +00:00
be07281207 allow set to take an object of options and also update bound fields after the set 2009-07-28 22:31:57 +00:00
deac8e0128 add a property to the field object since we can't use a bi directional lookup in javascript :( 2009-07-28 22:04:00 +00:00
174d974da8 tweak the doc strings (although jsdoc-toolkit still seems to be failing) 2009-07-28 21:51:58 +00:00
eb889c1e33 change the way bound fields work within the optionsmanager 2009-07-28 20:58:24 +00:00
34b0289f24 change Deluge.OptionsManager to only handle a single set of options, and add Deluge.MultiOptionsManager to manage multiple sets 2009-07-28 18:01:58 +00:00
ed4a741e4d make the config constructor parameter optional 2009-07-28 16:53:40 +00:00
9e10012004 make the deprecation warning on get_stats say that its coming from get_stats 2009-07-28 07:39:30 +00:00
ba6f30dad1 Add a deluge._libtorrent module to handle importing libtorrent
Use the new module
2009-07-26 03:26:18 +00:00
100dd1e2a7 Fix test_client 2009-07-25 04:05:00 +00:00
ac36c6b3ee Blocklist now uses get_ip_filter.
Added docstrings.
2009-07-25 03:57:45 +00:00
ac28a01e0b download_file now returns the filename of the downloaded file
when the deferred is successfully fired.
Updated the docstrings in HTTPDownloader.
2009-07-25 03:56:33 +00:00
2731d5be17 Fix get_free_space test 2009-07-25 01:49:05 +00:00
a8c79d1954 Use the deferred returned by getPage in test_listen_port. 2009-07-25 00:54:56 +00:00
22a982430c Remove _update method 2009-07-25 00:41:20 +00:00
25f96f57bb Remove some unnecessary code
Clean up docstrings
2009-07-25 00:39:25 +00:00
e24ba6a025 Change core.test_listen_port to use twisted instead of urllib
Add test for test_listen_port
Remove some unncessary code
2009-07-25 00:30:45 +00:00
321e042a06 Move the InvalidTorrentError check to torrentmanager.remove 2009-07-24 23:40:03 +00:00
5977647528 Add get_free_space() to core 2009-07-24 23:36:43 +00:00
f6d3c108f7 Add InvalidTorrentError. 2009-07-24 10:32:14 +00:00
034606b203 fix the remove torrent dialog 2009-07-23 22:30:08 +00:00
037871e1b3 Fix up some docstrings
Add some deprecation warnings
Add more tests for core
2009-07-23 21:19:01 +00:00
fbaa8db003 Update some docstrings 2009-07-23 04:23:41 +00:00
1b7be24bdf Change core.remove_torrent to only accept one torrent_id, not a list
Added test for core.remove_torrent
2009-07-23 04:14:08 +00:00
0ca5a10d5e Couple more tweaks to the docstrings 2009-07-23 00:46:23 +00:00
0fa403929a update the docs for the ui common module 2009-07-23 00:42:38 +00:00
996d8fd2cc Test commit 2009-07-23 00:27:43 +00:00
5f89f5239e add autodoc for ui.common
fix some docstrings in the json_api module
2009-07-23 00:24:07 +00:00
94891cb1f6 Test commit 2009-07-23 00:23:48 +00:00
d7168f5f49 Test commit 2009-07-23 00:20:57 +00:00
129f3bb7c7 Test commit 2009-07-23 00:19:43 +00:00
1291fd52d1 Test commit 2009-07-23 00:13:54 +00:00
41b3d555c3 Test commit 2009-07-23 00:09:13 +00:00
3af616adb1 Test commit 2009-07-23 00:07:27 +00:00
d972a0c951 Test commit 2009-07-23 00:06:44 +00:00
a29cd7bf1e Test commit 2009-07-23 00:01:21 +00:00
5ca119827b update documentation about the webui 2009-07-22 23:53:30 +00:00
aef0a4616f Don't depend on sphinx to build 2009-07-22 23:52:18 +00:00
5278c82580 Add a version for twisted-web too 2009-07-22 23:40:58 +00:00
a1e41d1fe6 Add required version for twisted. 2009-07-22 23:35:54 +00:00
50ba89659c Remove some unncessary code 2009-07-22 23:06:24 +00:00
ead063e279 Add a 'build_docs' command to build the documentation 2009-07-22 23:04:48 +00:00
85c49595ee update the doc string for add_torrent_url 2009-07-22 20:56:08 +00:00
e5021cdbc8 remove the docs/build folder
revert the removal of the __rpcapi file for auto-generating the rpc api docs
2009-07-22 20:50:06 +00:00
46b5e9b406 exclude docs and tests from find_packages also 2009-07-22 20:31:16 +00:00
f1c192b996 just autodoc the Core and Daemon classes rather than use the RpcApi class 2009-07-22 20:23:16 +00:00
063c8b3980 add the deluge remove js script to the debug list
add a css class for the windows icon
2009-07-22 20:11:18 +00:00
fafe2d3bea add a new window for removing torrents that allows the torrent data to be also removed 2009-07-22 18:57:24 +00:00
88c77f063d Update to the latest ez_setup.py 2009-07-21 18:02:49 +00:00
c9228c99a7 Updated docstring in add_torrent_url.
Wrote test for add_torrent_url which tests sending headers.
2009-07-21 02:45:16 +00:00
698d37f535 setup automatically generating the core's rpc api 2009-07-20 10:51:33 +00:00
8a25bd4adc add a page on deluge-rpc 2009-07-20 10:25:21 +00:00
891bc9df89 use configmanagers get_config_dir rather than get_default_config_dir 2009-07-20 10:08:29 +00:00
6bb4d857c2 add some logging showing pkey/cert locations when starting the webserver 2009-07-20 09:57:17 +00:00
2591845512 Fix error when trying to install. 2009-07-20 09:41:44 +00:00
3c74a8e4bf update the docs, creating a simple structure for user orientated documentation 2009-07-20 09:36:16 +00:00
8bb70f1671 rebuild the docs 2009-07-20 09:09:53 +00:00
c62258fa48 move docs out of the deluge package 2009-07-20 09:02:09 +00:00
cd7b202d9d moves tests out of the deluge package 2009-07-20 09:01:43 +00:00
ae5011ec92 setup the build_spinx command 2009-07-20 09:00:47 +00:00
dcccc3f4de add_torrent_url now uses httpdownloader's download_file.
This also allows it to send request headers.
As a result it can download torrents from sites that require cookies.
2009-07-20 08:47:32 +00:00
3a94a33b56 just return the deferred created by httpdownloader 2009-07-20 08:39:46 +00:00
a2893cc1b7 change download_torrent_from_url to use the httpdownloader module 2009-07-20 08:20:17 +00:00
e1ee5c3436 Blocklist reader's read() now calls callback with two arguments: start and end.
This will allow us to better detect when a blocklist reader fails to parse an entry.
Renamed is_valid to is_ignored to make the purpose of the function less ambigious.
2009-07-20 04:49:55 +00:00
8fbe456410 change BLANK_IMAGE_URL to /images/s.gif rather than http://extjs.com/s.gif
begin converting D.P.D to a class
2009-07-16 13:25:00 +00:00
9aec641965 set the mimetype for the documentation 2009-07-16 09:43:36 +00:00
45eb817301 make the locations of the pkey/cert configurable 2009-07-16 09:24:55 +00:00
aa05a27d28 use the same ssl key and certificate as the daemon (will add the option to specify a different one later) 2009-07-16 08:58:05 +00:00
0490df5a42 clear the options panel when the add window is closed 2009-07-15 18:56:41 +00:00
2450599789 trim the trim variable so there is no decimal point 2009-07-15 18:54:58 +00:00
929a501453 remove the borders on the GridPanels 2009-07-15 16:43:42 +00:00
ba91b6e587 Updated imports.
Added decompresser and reader dicts.
Make import_list actually import list into libtorrent session.
Begin auto-detection of blocklists.
2009-07-15 14:00:57 +00:00
4df5fe20ce Use wiki formatting in DEPENDS 2009-07-15 03:06:58 +00:00
35136b652d Update README and add a DEPENDS file that lists the dependencies 2009-07-15 02:50:26 +00:00
e9d7b71fe8 Changed decompressers names.
No longer use new module, decompressers will decorate an un-instantiated class.
2009-07-14 04:59:35 +00:00
c9a622b846 Prevent exception when clicking 'Rescan Plugins' button when not connected to a daemon 2009-07-13 21:55:34 +00:00
f42e8c4316 Show an Error dialog if starting the core in classic mode is unsuccessful 2009-07-13 21:44:21 +00:00
d0fb657ada Fix exception when quitting in classic mode 2009-07-13 20:23:17 +00:00
fbba1795ad Make the test port button insensitive when not connected to a daemon 2009-07-13 19:45:30 +00:00
0f453eb8f1 Fix some deprecation warnings regarding spinbuttons page adjustment size 2009-07-13 18:27:08 +00:00
bdcc0047a8 Fix opening the preferences window when not connected to a daemon 2009-07-13 18:26:40 +00:00
c4c6d1d511 Fix syntax error 2009-07-13 18:04:26 +00:00
f1350da011 Removed old code from get status. 2009-07-13 05:15:03 +00:00
4c9d01efe8 Removed type combo box from gtkui (will be auto-detecting type).
Removed old format readers.
Added new format readers and decompressers.
2009-07-13 05:12:26 +00:00
c7db93e954 rebuild docs 2009-07-12 23:33:54 +00:00
26b4f4020b disable the options tab in the add window (will complete post release) 2009-07-12 23:33:34 +00:00
2156d1f6f6 large changes within the optionsmanager
fix the details panel to reflect this
add setting of file priorities in the add window
2009-07-12 23:27:41 +00:00
324679de1f build the compressed version 2009-07-12 23:26:52 +00:00
3b810f5ce3 fix a bug in the radio group setValue when the buttons haven't been rendered yet 2009-07-12 23:23:05 +00:00
9762853d32 add a try/except block testing for openssl support before adding it as an option to the commandline 2009-07-08 18:07:12 +00:00
e9541ab7c6 Fix setting cache options 2009-07-08 07:10:15 +00:00
6a78e51475 Fix race condition when blocklist is up to date.
Make import_list return a deferred to prevent error (still doesn't do anything).
Fix typos.
2009-07-07 06:51:47 +00:00
2b789b501b Better fix for last commit.. AuthManager will now raise a BadLoginError if the username or password
does not match
2009-07-06 21:09:22 +00:00
b6793f7268 Fix client.connect() not firing the errback when a login attempt result is 0 (meaning no
authorization)
Fix console connect command
2009-07-06 20:00:41 +00:00
66243d1859 allow for the scope to be specified when calling the walkFileTree method 2009-07-06 11:51:06 +00:00
4cefabe2db add a generic method for walking the file tree in the add window 2009-07-06 11:36:12 +00:00
c2e3f3d228 Store removed columns' state so that plugin's columns are restored properly 2009-07-06 07:05:39 +00:00
9238fab360 Likewise for Windows close/shutdown events 2009-07-06 06:51:54 +00:00
594bc7cb9f Have the gnome "die" signal call gtk.main_quit instead of shutdown 2009-07-06 06:50:40 +00:00
c53af6af33 Fix status reporting. 2009-07-06 06:49:34 +00:00
b3a3b9e4f1 Fix loading old configs with version numbers 2009-07-06 06:38:06 +00:00
2909e285fc Fix restoring vpaned position when window is maximized
Fix stopping gtkui with ctrl+c
Fix showing the connection manager window in the certain of the window if maximized on start-up
2009-07-06 06:29:45 +00:00
efa125ac83 Fix starting plugins when enabled 2009-07-06 05:18:18 +00:00
cdddc38780 Put string conversion from last commit in correct place. 2009-07-06 04:54:45 +00:00
1f2072f8c2 Make sure last_update is an ascii encoded string. 2009-07-06 04:40:57 +00:00
d8e265011a Several blocklist fixes. 2009-07-05 18:38:51 +00:00
1b997b2349 The default format version and file version should be 1 2009-07-05 17:42:36 +00:00
e9f62ea08c Fix typos in blocklist core.
Remove reset_ip_filter and block_ip_range from deluge core.
2009-07-05 16:27:22 +00:00
75338d8a9e Make sure child folders of renamed folders are properly renamed in the torrent options 2009-07-05 16:25:05 +00:00
1b29d267cc Add / to the end of folder names when renaming 2009-07-05 16:19:47 +00:00
f221a39bcf Updated config values names in gtkui. 2009-07-05 06:20:19 +00:00
76bc45a3bf Add some tests for core 2009-07-05 01:17:38 +00:00
2ced8ad189 Change add_torrent_magnets to add_torrent_magnet
Have add_torrent_magnet return a torrent_id on successful add
2009-07-05 00:09:49 +00:00
054ab20402 Use deluge.configmanager.get_config_dir() to find the state folder location since the 'state_location' key in the config may be wrong if the config folder has changed 2009-07-04 23:59:38 +00:00
8c23baa4e2 Modify add_torrent_url to return a deferred that returns the torrent_id as a result if successful 2009-07-04 23:06:14 +00:00
7815f22a73 Stop some LoopingCalls when stopping components 2009-07-04 22:53:10 +00:00
061cd96096 Have add_torrent_file return a torrent_id on successful add 2009-07-04 22:52:41 +00:00
191d83c4be Added check to see if blocklist should be downloaded when load on start is enabled.
Updated function names in gtkui.
2009-07-04 17:05:50 +00:00
5b4d138baf Fix renaming files with / in them 2009-07-04 16:49:18 +00:00
016e99b728 Add a dep to the apt-get list 2009-07-02 18:51:26 +00:00
34def2524f Fix typo 2009-07-02 18:13:37 +00:00
a8b83281ab If a exported method returns a deferred, the rpcserver will now wait for it to fire before sending either the RPC_RESPONSE or RPC_ERROR message back to the client 2009-07-02 18:10:13 +00:00
85c32f0403 Use stored last_update for conditional get. 2009-07-02 15:40:13 +00:00
8e69a82881 Begin rewrite of blocklist (core) using twisted. 2009-07-02 15:29:57 +00:00
d317d5c857 update the sudo apt-get install line 2009-07-02 08:23:24 +00:00
0c0cfaf597 Clean-up the tests and add some new ones 2009-07-02 04:16:37 +00:00
883e61909f Fix deregister_handler 2009-07-02 04:10:20 +00:00
b9a2bf786c Write out the new auth file right away and do not re-read the file if doing so 2009-07-02 03:48:03 +00:00
bbb087c04a suppress only deprecation warnings 2009-07-01 13:56:36 +00:00
74627f682a use only "twisted" in the module arg as that suppresses all warnings from twisted 2009-07-01 13:51:56 +00:00
958c6334b0 suppress depreciation warnings generated by twisted 2009-07-01 13:49:39 +00:00
65697faca5 remove unnecessary import 2009-07-01 13:45:56 +00:00
d3d991d8aa Added support for sending headers when using download_file.
Allows HTTP conditional GET for servers which support it.
2009-07-01 10:02:45 +00:00
d592c0370c HTTPDownloader now "raises" a PageRedirect error when it encounters a temporary redirect or permanent move.
This allows the callee to download the file from the new location.
2009-07-01 08:45:09 +00:00
a66910e50b Move reparent_iter to common
Add support for 'spliting' folders in the add torrent dialog
2009-06-28 00:56:36 +00:00
2ccebaca3b Move 'add_peer_dialog' to peers_tab.py where it should belong.. 2009-06-27 22:49:01 +00:00
23944abc4c Optimize walk_tree() by only getting the base_path once for all siblings 2009-06-27 22:30:01 +00:00
2d379b3c67 Make the cache refresh button actually work 2009-06-27 22:13:50 +00:00
cdf2f79c66 fix some indentation issues 2009-06-27 11:36:34 +00:00
3194f0f994 Add ability to rename files prior to adding them in the gtkui 2009-06-27 02:24:21 +00:00
0a9a6b4816 Add ability to rename files prior to adding with the option "mapped_files" which is a dictionary of {index: filename, ...} 2009-06-26 23:31:47 +00:00
6fb180ed23 add checkboxes to folders and change all the child checkboxes on a change 2009-06-26 18:43:38 +00:00
1edafe2b6c sort out some whitespace 2009-06-26 18:40:48 +00:00
790a10e317 Fix #535 fix saving column widths 2009-06-26 05:29:48 +00:00
abf6de8462 Add a Cache preferences page to adjust cache settings and examine cache status 2009-06-25 23:58:54 +00:00
88e494c197 Fixed stats url encoding. 2009-06-24 05:41:30 +00:00
182845ce3e Fixed #916.
Removed unused code.
2009-06-24 03:22:06 +00:00
a7c2e596d9 Use a more efficient sort to put the torrent state list in queue order 2009-06-24 02:54:39 +00:00
139519d7d1 Fix error when sending stats (quote_plus expects string not list). 2009-06-24 02:35:24 +00:00
33ac5beba5 update the stored option in the onFieldChange event handler 2009-06-23 23:20:11 +00:00
2debe69e34 proxy the check event from the child radio boxes to the radiogroup 2009-06-23 23:18:25 +00:00
c5a21e2be9 add in a radiogroup to facilitate in hiding compact/full allocation as one field and extend Ext.form.RadioGroup so it provides the setValue and getValue methods 2009-06-23 23:10:13 +00:00
e94129135b add the options form layout to the options tab of the add window 2009-06-23 18:46:25 +00:00
b75e17069f change the command options help string a little 2009-06-23 18:22:11 +00:00
b13efa08ff add ssl support to the webui webserver 2009-06-23 18:21:25 +00:00
148afede5b Check to see if the files_list for the torrent_id is available when receiving file_renamed or
folder_renamed events
2009-06-23 17:36:01 +00:00
a29904fefd fix bug in get_hosts if host[x:y] is not a list 2009-06-23 10:02:22 +00:00
76d3c2567e fix the files tree for when there is only 1 file in the torrent and also fix the file size in the add torrent window 2009-06-23 09:37:28 +00:00
2e0bd1bd3c fix an error in the doc string for add_torrents 2009-06-23 09:36:30 +00:00
46163b992f split out getting host status from getting the host list to greatly improve performance of the connection manager 2009-06-22 18:28:51 +00:00
4b934a07ba dummy function now accepts arbitrary number of variables.
metafile uses hashlib instead of sha library.
2009-06-22 14:11:02 +00:00
206718de08 fix adding hosts to the connection manager 2009-06-22 07:58:59 +00:00
7bdc595dd0 fix the error callbacks in the client 2009-06-22 07:56:45 +00:00
f6b90c0097 improve the docstring for the add_torrents method 2009-06-18 08:25:14 +00:00
9a55987ecb fix removing connections from the connection manager 2009-06-17 19:07:30 +00:00
dd85ca3c3e add another escaping slash 2009-06-17 14:51:07 +00:00
12757ef7e8 fix the gettext generation script so that resulting apostrophes from a translation are escaped 2009-06-17 13:57:11 +00:00
9370911ee1 use changeId in the clear method of the options tab 2009-06-17 06:42:37 +00:00
7bc81fbaf9 add a changeId method to the OptionManager 2009-06-17 06:36:55 +00:00
7dfce33065 rebuild the docs 2009-06-16 18:15:28 +00:00
d5f92b506a change the arg from doc to docs 2009-06-16 18:15:09 +00:00
4edb79bcd7 add in support to the optionsmanager for binding form fields 2009-06-16 18:14:23 +00:00
3458b238d8 Add option in Preferences to change the listen interface 2009-06-12 16:12:00 +00:00
ca7f33db1f Get the Stats plugin working again.. sort of.. It still needs a lot of work. 2009-06-11 01:06:08 +00:00
520be10e4d Fix turning off Classic mode dialog
Fix showing the connection manager icon on the toolbar depending on classic mode setting
2009-06-10 22:50:57 +00:00
e36ca0e5ba Fix calling set functions 2009-06-10 22:43:43 +00:00
9495fffeac Show a progress window when downloading torrents from URL
Add ErrorDialogs when trying to add bad torrents and when downloading of torrent fails
2009-06-10 22:35:47 +00:00
e7158c499f Fix dialogs so that they do not run another gtk main loop, but rather run within the current
twisted mainloop
2009-06-10 22:23:49 +00:00
a82a5277a5 Add a httpdownloader module to download files using twisted 2009-06-10 20:18:22 +00:00
4c43980d66 Fix #518 remove header in add torrent dialog to save vertical space 2009-06-10 18:39:14 +00:00
c274da9245 Move the 'Find More Plugins' button down to reduce horizontal usage 2009-06-10 18:34:27 +00:00
7ddb5db6ed Fix the set functions so that you are able to register more than one per config key
Likewise for the config change callbacks
2009-06-10 18:15:52 +00:00
853138e4ee If a 'localclient' entry is not in the auth file, then have the daemon add one. 2009-06-10 18:11:14 +00:00
aa4c783601 tweak the setup script so the web plugin has the correct entry point
implement the webui server side plugin
add a page to the preferences window in the javascript
2009-06-10 16:37:21 +00:00
227e464b63 Fixed typo in seeking. 2009-06-10 14:28:37 +00:00
06b19538fd provide 2 helper methods for adding and removing scripts from the webserver 2009-06-10 13:27:55 +00:00
110af0c2fc fix indentation 2009-06-10 13:27:22 +00:00
29f72a244f Remove statusbar icon when disconnected from daemon 2009-06-10 05:38:59 +00:00
5cdb5f41e4 Make the default schedule all Green 2009-06-10 05:37:28 +00:00
f2002f9077 Fix division by 0 2009-06-10 05:34:06 +00:00
79746c5bc6 Fix svn:externals 2009-06-10 04:44:51 +00:00
267c7408d7 Get the blocklist plugin kind of working.. Still needs some lovin'. 2009-06-10 03:42:33 +00:00
581dcb8202 Force str when calling session.load_country_db() 2009-06-10 03:08:41 +00:00
72d3b0a549 Fix exception when tracker column is not enabled 2009-06-09 21:44:24 +00:00
b430899862 Only move a torrent due to 'move on complete' when some data has been downloaded 2009-06-09 00:35:43 +00:00
ff25a7e969 Torrent creation fixes in regards to web seeds
Fix adding torrent to session after creation by setting the proper download location
2009-06-08 21:57:02 +00:00
95cd5e4932 Remove some more externals 2009-06-08 20:07:47 +00:00
edd3b5d847 fix a bug in the spinner to force the decimal precision to be displayed 2009-06-05 07:39:45 +00:00
db36e9dbfa disable the move storage menu item, this won't be active until the remote file browser has been added
add decimal precision to the spinner strategy (although it doesn't seem to be working?)
2009-06-05 07:19:47 +00:00
ef3b22691b Apply the global bandwidth settings on plugin disable to prevent slow limits from staying in effect. 2009-06-05 02:10:41 +00:00
d4c7134746 Only require 2.12 in preferences dialog 2009-06-04 17:46:15 +00:00
0eee49891a Update Changelog and README 2009-06-04 17:42:57 +00:00
86fca4b43b Remove GeoIP.dat from tree
Add configuration option to set the GeoIP db location, default is /usr/share/GeoIP/GeoIP.dat
2009-06-04 17:25:06 +00:00
a24c07a9bd Fix some issues with creating torrent files, was putting the announce list in the wrong key
Add support for using a system installed GeoIP db file.  It will look for /usr/share/GeoIP/GeoIP.dat first and try to load that
2009-06-04 16:57:53 +00:00
49e27a33bf Update the GeoIP db 2009-06-04 16:20:28 +00:00
b28f75d92d Add support for lt 0.15 2009-06-04 02:26:56 +00:00
b8ab51dc0f Revert trunk to use lt RC_0_14 branch.. 2009-06-03 21:34:14 +00:00
77adcc4b37 Change the svn:externals to point to libtorrent trunk 2009-06-03 21:15:41 +00:00
5c75d3664c remove no longer needed alert 2009-06-02 22:34:02 +00:00
1b9e3c00c8 rebuild docs
improve the options manager, adding events
sort disabling of fields in the options tab
2009-06-02 22:13:16 +00:00
616561ca6d disable all tabs on startup
tweak the options tab layout
2009-06-02 16:51:26 +00:00
b56bb9e2be stop an error in the peers tab if no data is returned
add the code to enforce the sidebar_show_zero option
2009-06-02 12:34:54 +00:00
b54c73d466 Fix the disabling and clearing of the torrent details tabs 2009-06-02 12:19:22 +00:00
f26870ad19 Update ChangeLog 2009-06-02 04:01:46 +00:00
54af19f249 Add Scheduler plugin 2009-06-02 00:57:52 +00:00
c4782e91f0 Update create_plugin script a bit 2009-06-02 00:57:04 +00:00
1091054b38 Add ability to run individual set functions 2009-06-02 00:56:05 +00:00
502fa6983e fix setting prioritize first/last from the options tab 2009-06-01 23:46:35 +00:00
bf3b0bf5c6 remove the # from the copyright comments 2009-06-01 22:51:36 +00:00
ed36526a24 fix the progress bar in the files tab 2009-06-01 22:23:47 +00:00
ff262acbdf change the progress bar to auto width again 2009-06-01 21:36:12 +00:00
3f525293ca tweak the widths so the ui can be used more easily on a resolution of 1024x768 2009-06-01 21:27:23 +00:00
c9ba8b1583 fix the class name for time_added 2009-06-01 21:26:17 +00:00
87355e0490 use inline if/else to set the value of auto managed and also run through gettext 2009-06-01 20:13:05 +00:00
e71c562612 Fix #950 renaming a parent folder into multiple folders 2009-06-01 19:29:15 +00:00
30efe143fe Catch exception when trying to open config file 2009-05-30 01:32:25 +00:00
019c78db47 Add some command line options to the daemon to set the listen
interfaces, -i and -u
2009-05-30 00:22:14 +00:00
d29934a534 Add a "Find More Plugins" button the Plugins pref page that links the user to the Plugins page on the wiki 2009-05-29 00:31:59 +00:00
ea829d0826 Show libtorrent performance warnings in the debug log 2009-05-28 23:55:34 +00:00
63f1874ae8 Modify the Config class to version the config files now.
Add ability to register converter functions for config files to convert them to newer versions.
2009-05-28 23:43:45 +00:00
d1c47982a8 Optimize get_tracker_host by storing the tracker_host value 2009-05-28 19:16:58 +00:00
fa728510dd This should have been in the last commit.. 2009-05-28 19:16:28 +00:00
4dc2f7d9d0 Fix up docstrings in AlertManager and do some minor optimizations 2009-05-28 19:15:32 +00:00
8c587f7330 Add support to profile the daemon using the --profile option 2009-05-28 18:28:33 +00:00
bf2f4ee860 remove debug alert 2009-05-28 10:37:09 +00:00
aa866d5187 improve the optionsmanager
implement setting torrent options via the options tab
rebuild the docs and js file
2009-05-28 10:36:06 +00:00
c8de0b897d Show hosts as Offline when they are initially added to the listview
Select the first host in the list on show
2009-05-28 01:15:38 +00:00
bbdcf7534c Make chardet a non-optional dependency in 1.2.x 2009-05-27 19:18:13 +00:00
629b239739 add a couple of extra methods to the option manager
updateOptions in onRequestComplete in the options tab
2009-05-27 16:31:36 +00:00
ea2a79a903 improve some of the docs in Deluge.UI 2009-05-27 15:51:24 +00:00
9b860c9b3c add a build_docs method to build.sh and rebuild the docs 2009-05-27 15:24:37 +00:00
5b6ecc2b4e rebuild the deluge js 2009-05-27 11:50:50 +00:00
91a471e781 fix setting the download priority for files in the files tab 2009-05-27 11:49:27 +00:00
668683f369 add a new class for managing a options throughout the ui 2009-05-27 11:35:52 +00:00
b5e0222689 Make the global move torrent on completed option a template for newly added torrents to allow
turning off the movement - patch from Plisk
2009-05-27 02:59:44 +00:00
6c023c111f Fix the extracting command call
Touch up the gtkui config a bit
2009-05-27 02:32:00 +00:00
b883ffc474 Fix exception when trackers are disabled from the sidebar 2009-05-25 22:55:42 +00:00
9324134d8f Prevent some uncaught exceptions when systemtray is not enabled 2009-05-25 06:07:26 +00:00
360790876b Fix not using the encoding used in the torrent file to decode some strings 2009-05-25 02:27:33 +00:00
fa9d39c5fb Fix typo 2009-05-21 19:33:12 +00:00
d45e2de1c9 Add InformationDialog
Use InformationDialog instead of ErrorDialog in AddTorrentDialog
Make dialog in GtkUI translatable
2009-05-21 00:18:53 +00:00
2374d44c70 Add error dialog popup when trying to de-select files in the add torrent
dialog while using compact allocation
2009-05-20 23:46:27 +00:00
d2b5e69a5e Add an ErrorDialog 2009-05-20 23:42:03 +00:00
b4a329474a Fix #943 exception when options is None 2009-05-20 21:39:02 +00:00
f78cf72544 Create a BaseDialog class 2009-05-20 21:09:50 +00:00
1d006e1368 Handle shutdown() better 2009-05-20 20:11:57 +00:00
447620f89f Add some extra include dirs for when building on OS X using Fink 2009-05-20 18:51:37 +00:00
2741623e91 Add some more information to the error message when trying to run
multiple daemons
2009-05-20 16:53:32 +00:00
5f8a1ed971 Fix up daemon start-up code a bit.. 2009-05-20 16:11:54 +00:00
0a33931c6b Detect when a daemon is already running in the same config folder.
When the gtkui is run in classic mode with an already running daemon 
process, prompt the user to turn off classic mode or exit.
2009-05-20 01:07:58 +00:00
5afeabd56d attempt to set the icon via the icon theme before falling back to the logo (as in the statusbar) 2009-05-19 23:49:31 +00:00
11351e1544 remove the disable in the options tab
disable all tabs when there is no torrent selected and enable them when there is
2009-05-19 22:47:51 +00:00
323d8133b0 set the mime-type propety on all the html files 2009-05-19 22:33:45 +00:00
1b0ffe748c update the options tab and set the torrent values
improve the docstrings in a few of the javascript modules, and include the
generated documentation.
2009-05-19 22:30:59 +00:00
038c92376a build up the layout for the options tab in initComponent, allowing for easy storage of the fields. 2009-05-18 22:51:06 +00:00
716c0ee564 Update man page to refer to console instead of null 2009-05-18 22:07:51 +00:00
d67477f6e2 Add OpenSSL exception to all GPL headers 2009-05-18 21:51:49 +00:00
c4a247018b Fix up the console ui so that command-line options work again.. Also,
use the new UI class for the 'deluge-console' script.
2009-05-18 21:35:16 +00:00
56735452a8 Clean-up CoreConfig a bit 2009-05-18 21:34:24 +00:00
df21107e3f Improvements to the new UI class and improve how ConfigManager handles
setting the config directory
2009-05-18 21:34:03 +00:00
62bc9d1844 make use of the DeferredList rather than chaining one request after another 2009-05-18 17:43:29 +00:00
1a3e38b1f5 Set some sane defaults for peers/file tabs column widths 2009-05-18 16:26:26 +00:00
bb12f74ae6 Remove unnecessary file 2009-05-17 17:05:28 +00:00
100227f4e1 Added filemode support to setupLogger.
This allows log files to be appended to if desired.
2009-05-17 12:28:03 +00:00
ac418d5935 Potential patch for libtorrent @ 3507 2009-05-17 12:19:14 +00:00
982aaff2a1 Remove icon_size property from toolbar to prevent gtk warnings 2009-05-16 05:47:35 +00:00
8da20c042f Fix some config file locations when using a non-default config directory 2009-05-15 18:09:59 +00:00
be5e12e1e4 Have authmanager return ints instead of strings for the auth level 2009-05-15 17:48:03 +00:00
a7e70509b0 Remove needless del 2009-05-14 23:14:09 +00:00
78d0439d6f Move countries.py to ui/ since it's only used by the UIs 2009-05-14 18:16:16 +00:00
19e21606cd Fix exception when timing out trying to send notification email 2009-05-13 20:52:51 +00:00
5606925aa0 Fix #934 use 'name.utf-8' if available and decode the file path before
joining it with the prefix
2009-05-12 20:22:21 +00:00
397434f7ca Update deluge.pot and a couple i18n tweaks 2009-05-12 18:10:52 +00:00
090e1a035e Implement #259 show tooltip with country name in the peers tab 2009-05-12 17:52:01 +00:00
90e05827dd Remove 5 minute config save timer as it's not really needed and it's
preventing gtkui from starting
2009-05-12 17:48:47 +00:00
65583cfe12 Add some more stuff to the new ui class 2009-05-12 17:07:17 +00:00
c754fc7c74 Remove dep on gobject and replace with twisted.reactor.callLater 2009-05-12 16:57:35 +00:00
54bfbb888b Update deps to include pyxdg 2009-05-12 16:27:41 +00:00
0ab8fa4871 Remove gobject timer and replace with a twisted LoopingCall 2009-05-12 16:15:06 +00:00
901038b3c2 improvements to the doc strings 2009-05-11 19:31:29 +00:00
2b4ca765fa move the config_directory attribute to a property that gets lazily set 2009-05-11 10:28:59 +00:00
7aea3a290e Fix up error message when not specifying a directory with the --config option and add this to 1.1.x 2009-05-11 04:10:05 +00:00
128b40641f Apply #932 minor ti_name optimization 2009-05-10 19:28:23 +00:00
2d2f8f7700 Remove some useless code 2009-05-10 19:11:06 +00:00
384eee2744 Fix showing non-utf8 encoded torrents in add torrent dialog -- this adds an additional dependency on chardet. 2009-05-09 17:46:13 +00:00
96c399f7f5 Optimize ti_name a touch 2009-05-09 03:42:39 +00:00
f12f02fff8 Fix #921 detect if user has json-py installed and add dumps and loads attributes to it 2009-05-09 03:18:54 +00:00
5b3528c9d1 Torrent name is now changed when the root folder or file is renamed 2009-05-09 03:05:43 +00:00
876a01ff84 Fix some debug output when not using utf8 2009-05-09 03:02:11 +00:00
f7bb2f330b Fix #927 add support for more boost versions 2009-05-09 02:59:42 +00:00
00ca3e158b Prevent page headers from moving when adjusting window size 2009-05-08 00:10:03 +00:00
3276de91c3 document the methods 2009-05-07 19:14:02 +00:00
7e291268bb improve the password convertion methods 2009-05-07 18:02:08 +00:00
aeb5e8311b don't delete the salt 2009-05-07 17:51:01 +00:00
107daa57b5 commit the record after updating it 2009-05-07 17:50:16 +00:00
af4c73a594 big change to the webui auth system
added converting of old 1.1 config files
added converting of old md5 passwords to sha1
2009-05-07 16:27:22 +00:00
2766c103e2 change the config class to return true or false on a save to show whether or not it was successful 2009-05-07 15:32:21 +00:00
c59857b802 add config_file as a property to the Config class 2009-05-07 15:09:13 +00:00
007c9bd2a2 finish implementing the edit trackers window 2009-05-05 22:59:34 +00:00
da81704b74 remove pointless if 2009-05-05 22:35:25 +00:00
1480459019 fix tier whilst adding trackers 2009-05-05 22:33:17 +00:00
84b30aa11a add the layouts for the add and edit windows 2009-05-05 21:50:30 +00:00
763a422a15 increase window side and add stubs for the add/edit windows 2009-05-05 20:23:10 +00:00
83ff72490c load the trackers into the grid 2009-05-05 19:29:04 +00:00
712bfcfef1 add edit trackers to the debug list 2009-05-05 19:14:12 +00:00
caafffb484 remove another space 2009-05-05 19:07:05 +00:00
b254385666 remove space in the description 2009-05-05 19:04:53 +00:00
554181a590 add basic edit trackers window 2009-05-05 18:00:32 +00:00
0b1b6d65de update the header 2009-05-05 17:59:38 +00:00
9b25b63664 Add Extractor plugin 2009-05-02 02:13:23 +00:00
9a94b3719d Some changes to the create_plugin script to work properly with 1.2 2009-05-02 02:11:36 +00:00
5b87af0e46 Fix per-torrent move on completed stuff - patch from Plisk 2009-05-02 02:07:11 +00:00
32fc0db2e5 Remove duplicate code 2009-05-01 20:21:25 +00:00
62b0d0b094 Prevent exception when clicking on the Connect button when no host is selected 2009-05-01 17:28:57 +00:00
12dded627e change so INCLUDEDIR not existing in the env won't throw an error 2009-04-30 16:17:50 +00:00
afeb7cf8b1 Use directories listed in INCLUDEDIRS 2009-04-30 16:15:09 +00:00
4c03fad512 change how pages are attached to the preferences window, using the title of the passed in object rather
than having to pass in one
2009-04-30 07:13:23 +00:00
d09cd4908e tidy up the code attaching the script 2009-04-30 07:12:35 +00:00
6669dbb4a0 fix the layout of the options tab 2009-04-29 20:45:07 +00:00
d011c61971 use list comprehension over lambda 2009-04-29 20:15:56 +00:00
e856e65db5 Add path tab-complete to the add command 2009-04-29 02:41:10 +00:00
96b38188fc add a doc string 2009-04-28 15:59:56 +00:00
b4e56e923b don't fire the connect event until the client has finished reloading
it's methods
2009-04-28 09:09:08 +00:00
a579c3b2c7 fix "Expand All" from the context menu 2009-04-28 08:56:03 +00:00
68f5afa89c remove comma causing breakage in IE 2009-04-28 08:54:56 +00:00
d4d7f054f3 remove torrents that are no longer in the update from the grid 2009-04-28 08:39:04 +00:00
78b5c06776 improve the torrents grid, updating existing entries rather than just
reloading the whole grid
2009-04-28 08:35:27 +00:00
7b72d79d32 Made TrackerIcons a component to prevent trying to get an icon multiple
times
Fixed showing the wrong tracker icon in the TorrentView when the icon 
could not be retrieved from the tracker
2009-04-28 02:35:08 +00:00
925dcd43b8 Fix up tab-completion to use the commands 'complete' method 2009-04-28 01:15:12 +00:00
d4cfebadbc fix adding torrents on windows 2009-04-27 22:19:18 +00:00
9ed37e070c Return if bad torrent_info 2009-04-27 22:14:49 +00:00
f2364b8531 add some test web plugin code 2009-04-27 22:02:26 +00:00
16d695f077 enable and disable plugins at start/stop
convert the directories to a list in the lookupresource
2009-04-27 22:01:34 +00:00
137d0f8ebf fix the order of the stylesheets 2009-04-27 21:33:50 +00:00
154e671ecc rebuild 2009-04-27 21:16:15 +00:00
f811fcc549 fix the comment 2009-04-27 21:15:59 +00:00
a7a13636e6 add a loading css style for when the torrent doesn't have its info yet 2009-04-27 21:14:43 +00:00
200e348f7d fix removing torrents from the grid 2009-04-27 20:50:54 +00:00
b88542f105 rebuild the compressed script 2009-04-27 20:49:50 +00:00
858291517e add torrents to be added to the grid before their info has been
retrieved with a url or filename in place of the torrent name
2009-04-27 20:48:39 +00:00
2ac545dec6 Clean-up signal handling since twisted.reactor handles it now 2009-04-27 18:50:41 +00:00
725198fc4d fix handling close on windows 2009-04-27 18:46:30 +00:00
9f2b98bf4b fix showing the add torrent window 2009-04-27 18:14:07 +00:00
6b4f36cbf3 add placeholder file for the infohash window 2009-04-27 18:12:49 +00:00
993c654917 split out Deluge.Add into seperate smaller files
add back adding torrents via file
2009-04-27 18:09:37 +00:00
cb14a2dd22 Remove mapping.py 2009-04-27 18:04:20 +00:00
d856f8501e fix the add window so torrents can be added via url again 2009-04-27 17:43:42 +00:00
370b4ae805 pass the requestOptions to the success and failure callbacks 2009-04-27 17:21:35 +00:00
c267c36b7b Add scrolling with page_up and page_down 2009-04-27 17:17:44 +00:00
204f055c7e clear the cookie rather than setting it to false 2009-04-27 13:56:53 +00:00
e837493757 add basic session support 2009-04-27 13:01:20 +00:00
c4cdd70a4e change the "ready" event to "connected" and fix the failure event
handler
2009-04-27 12:55:42 +00:00
a9392f9002 fix the onLogout handler if the window hasn't been rendered yet 2009-04-27 12:53:58 +00:00
253d08d2f9 fix emptying the panels hash 2009-04-27 11:30:30 +00:00
e6244920e6 Fix typo 2009-04-27 00:30:21 +00:00
5a71e82875 Fix #902 cannot remove torrents 2009-04-26 18:27:46 +00:00
322495cfd5 Fix 'debug' command and update some copyright headers 2009-04-25 22:42:46 +00:00
641ac7356c Clean-up eventlog a bit 2009-04-25 21:11:44 +00:00
a1038203c1 Add support for setting config values 2009-04-25 21:09:07 +00:00
b852051bb7 Add 'is_finished' torrent status key 2009-04-25 07:29:08 +00:00
753b93089f Change color tags to '{! !}'
Add support for viewing config values
2009-04-25 00:31:07 +00:00
6d33ff9902 Add '__getattr__' to CoreConfig to access the dictionary directly 2009-04-25 00:30:11 +00:00
4878743d68 Clean up 2009-04-24 22:53:02 +00:00
c02a647427 Show proper units 2009-04-24 22:52:45 +00:00
64b4255b94 Fix adding torrent to list on TorrentAddedEvent 2009-04-24 22:52:19 +00:00
b2626ea6aa Fix calling 'set_event_interest' when registering a handler after connecting 2009-04-24 22:50:44 +00:00
42242efe66 Fix up formatting of peers list 2009-04-24 21:35:37 +00:00
c846d584a0 improve the new style ui class to start the logging 2009-04-24 19:07:00 +00:00
972393d9ea Fix up info command 2009-04-24 18:50:54 +00:00
4939b8c72e use keys() rather than getKeys() 2009-04-24 18:32:03 +00:00
3b744ae978 set values to blank rather than the initial bogus values first used 2009-04-24 18:31:17 +00:00
1d5bc7669f Fix cursor position when moving through the history 2009-04-24 18:21:31 +00:00
714cd0ed80 Fix missing text if it's before a color tag 2009-04-24 18:19:04 +00:00
9a43ec8258 add a config resource that outputs the uis current configuration
update this in Deluge.js
2009-04-24 18:14:59 +00:00
0523ec1837 assign the cookieprovider to Deluge.UI.cookies 2009-04-24 18:09:58 +00:00
c718c2bf30 Change titlebar update interval to 2 seconds 2009-04-24 17:58:11 +00:00
18950cc1ef add yui compressed version of ext-extensions-debug.css 2009-04-24 14:41:55 +00:00
0a80098576 move ext-extensions to ext-extensions-debug 2009-04-24 14:41:28 +00:00
dbf685f178 Fix uncaught exception when the remove torrent button is pressed when no torrents are selected 2009-04-23 22:55:52 +00:00
45a6ea5a19 Fix deprecation warning 2009-04-23 20:30:09 +00:00
3c47c7ef77 Fix creating torrents in Windows
Fix displaying improper progress when creating torrent
2009-04-23 20:21:01 +00:00
37b3c07025 remove trying to stop the reactor, we can just call reactor.stop() and
shutdown will be called
2009-04-23 12:36:59 +00:00
fac65e9bb0 fix shutdown not being called when killed 2009-04-23 12:33:51 +00:00
465d98eeed add 2 debug log statements 2009-04-23 11:54:42 +00:00
6cd5a7de30 rename Spinner.cs to ext-extensions.css and add in the fileupload and
columntree css
2009-04-23 07:44:19 +00:00
d18a88c46a remove mooui stylesheet 2009-04-23 07:41:20 +00:00
c73966bdd1 fix starting the web via deluge -u web
allow the theme to be specified in the config file
2009-04-23 07:26:14 +00:00
b43e0f6eaa add the layout to the options panel 2009-04-22 07:12:15 +00:00
cadfb5632f fix updating on tab change 2009-04-22 00:12:12 +00:00
6d4eae15a5 add basic options panel 2009-04-22 00:07:55 +00:00
a63e5c594c add the peers tab 2009-04-22 00:04:16 +00:00
d916d36603 remove call to getFields as it's no longer required 2009-04-21 23:46:04 +00:00
8bac2b4597 Add the files tab back 2009-04-21 23:43:46 +00:00
1df462cf0b comment out the debug alert 2009-04-21 23:41:22 +00:00
5db7a5a21b remove the old mootools rpc client 2009-04-21 22:18:11 +00:00
431271d453 update the build script to match the new script names and rebuild the
compressed script
2009-04-21 22:03:40 +00:00
db00f4690d fix changing the limits on via the statusbar menus 2009-04-21 21:59:15 +00:00
9df1ec2193 remove pointless privatising 2009-04-21 21:46:20 +00:00
ee5cfc8cff updated __debug scripts list and some css 2009-04-21 21:45:56 +00:00
1157fc1eeb commit all new-style code so it can be versioned, NB: this is in a
broken state currently.
2009-04-21 21:41:18 +00:00
e1e45753de add a reloadMethods function to use instead of simply creating a new
client
2009-04-21 21:36:32 +00:00
b62a5d7329 fix calling the success/failure callbacks 2009-04-21 20:34:41 +00:00
1f212b8a38 extend Ext.util.Observable rather than reinventing 2009-04-21 20:27:25 +00:00
1be29dc319 ext based Deluge.Events 2009-04-21 20:15:49 +00:00
fb85e76a1f fix missing torrent_id in on_alert_state_changed 2009-04-21 18:32:34 +00:00
cf0d155e99 rewrite the rpcclient using ext 2009-04-21 17:27:55 +00:00
be1a1fc0be Fix loading improperly created torrents with mismatched encodings 2009-04-21 17:16:19 +00:00
4fde1b4a2f Fix typo 2009-04-21 16:32:53 +00:00
0e10f608b9 check to see if .build_data exists in check_file before running the grep
don't remove the concatenated files if the compression fails
2009-04-21 09:27:59 +00:00
10b11f36c7 remove the mootools dependence and also rebuild gettext.js anyway 2009-04-21 09:08:05 +00:00
a60bf912fb fix displaying the host-list 2009-04-21 07:26:20 +00:00
9d583b8c51 completely rework deluge-torrent.js into a self-contained ext class
add .build_data to svn:ignore on js
add in the first build of deluge-yc.js
2009-04-21 07:17:49 +00:00
b72ec252af fix building deluge-yc.js, was including $ALL_FILES rather than
$DELUGE_FILES in the cat
2009-04-21 07:15:32 +00:00
c17af41940 Fix up some commands 2009-04-21 02:43:20 +00:00
9da95552f3 move the progressbar renderer helper method to deluge.js 2009-04-20 22:32:42 +00:00
d795a66ae9 Add missing files 2009-04-20 22:01:52 +00:00
111b64d38b fix checking the free diskspace on windows 7 2009-04-20 21:05:05 +00:00
f82c67f36c fix importing the ui start method 2009-04-20 20:40:44 +00:00
503169ce76 fix serving binary files on windows 2009-04-20 20:26:03 +00:00
2f44899521 add back in the old WebUI class and rename the import in ui.py so
compatibility isn't broken
2009-04-20 20:11:31 +00:00
cd050bf8e7 rename from web to webui 2009-04-20 19:56:35 +00:00
e3dea5ee8a Fix some typos 2009-04-20 19:20:33 +00:00
b605048d23 Force 16x16 pixbufs in tracker column 2009-04-20 18:11:22 +00:00
7bdf8bffd8 Fix the quit command 2009-04-20 03:51:15 +00:00
b3ee54fcdc Clean-up some of the code in the torrentmanager alert handlers to
prevent uncaught exceptions during shutdown
2009-04-20 02:28:06 +00:00
22c9fffad8 Fix issue where cannot resume torrent after doing a 'Pause All' 2009-04-20 00:02:36 +00:00
e08c51e10c Update to asio 1.4.1 2009-04-19 21:40:09 +00:00
73e58c20c8 Add event logging 2009-04-19 19:57:06 +00:00
28bc5c839e Fix displaying lines that are longer than the number of columns 2009-04-19 19:55:40 +00:00
e0f8369e91 Only emit a TorrentStateChangedEvent when the state has actually changed 2009-04-19 19:51:11 +00:00
6c9dd4d5c9 Show a Paused state when a Checking torrent is paused 2009-04-19 19:50:39 +00:00
2589baf0e2 Fix event handler de/registering 2009-04-19 19:50:12 +00:00
b60dc2d4ca start new ui class 2009-04-19 13:46:11 +00:00
0905695910 Add tab completion support 2009-04-18 22:27:54 +00:00
df00d28af4 Remove unused variable 2009-04-18 18:53:16 +00:00
e1c5c0b3ff Re-add input string during refresh
Do not fsize config values
2009-04-18 18:46:01 +00:00
3ac0cace6b Fix starting the console ui 2009-04-18 18:28:35 +00:00
56a1c50bc6 Add a defer property to use to check when the CoreConfig is ready 2009-04-18 18:27:35 +00:00
00d078a5ea Fix some uncaught exceptions if the session is not authorized 2009-04-18 18:19:47 +00:00
99e981dbf8 Add some missing files 2009-04-18 18:14:57 +00:00
2542745c16 Add tracker icon to Tracker column 2009-04-18 17:46:14 +00:00
08b3ce97b3 change it so instead of modifying the list at render it uses a completely seperate list when being run in debug mode 2009-04-18 16:30:14 +00:00
491f4a4438 move the classes in deluge-ext to ext-extensions and remove deluge-ext 2009-04-18 16:20:07 +00:00
843deae4cd move the contents of the spinner files into ext-extensions-debug.js 2009-04-18 16:14:56 +00:00
2ead8be0d4 script to combine and compress the deluge javascript 2009-04-18 16:11:18 +00:00
e5459eda49 move mootools-bridge.js to mootools-bridge-debug.js and create the
yuicompressed mootools-bridge.js
2009-04-18 14:52:13 +00:00
70b7fa908f remove the gettext calls from the dictionary, and add hinting for the
generation script above instead
2009-04-18 13:00:18 +00:00
286619f4e3 add FILE_PRIORITY_CSS and run FILE_PRIORITY through gettext 2009-04-18 12:50:34 +00:00
9cf9d74f5c change Deluge.ProgressBar xtype to deluge-progressbar 2009-04-18 12:49:46 +00:00
067f0c3713 Start work on new Console UI .. Don't expect anything to work, cause most of it doesn't. 2009-04-18 05:35:03 +00:00
a513f9c12a Fix typo 2009-04-17 21:24:49 +00:00
b6f40a8115 Move CoreConfig component out of GtkUI since it's UI independent 2009-04-17 21:09:14 +00:00
8fef414054 begin messing about with the plugin manager 2009-04-16 22:03:50 +00:00
74ac41e686 remove Roar 2009-04-16 20:00:27 +00:00
9be54918fb generate the <script> and <link> tags dynamically 2009-04-16 19:59:34 +00:00
134bed774c fix semi-colon in the login window
change themes back to a static.File resource
2009-04-16 19:38:54 +00:00
427cc63803 create a LookupResource and use this instead of the static file resource
to serve images, javascript, css etc. as it allows plugins to add lookup 
directories.
2009-04-16 19:36:30 +00:00
9d8a104264 give focus back to the password field after the messagebox is closed 2009-04-16 18:17:33 +00:00
23ec87724e add the bandwidth page 2009-04-14 21:50:58 +00:00
9daf288da1 Fix starting the daemon in OS X 2009-04-14 20:40:29 +00:00
7fb5e546e8 partially working preferences window (ui wise) 2009-04-14 20:36:13 +00:00
2e4762a586 tidy up the login window code, extend Ext.Window instead.
focus the password field upon the login window being displayed
2009-04-14 20:09:48 +00:00
b71ac41ff1 Fix displaying IPv6 peers in the Peers tab 2009-04-13 18:02:49 +00:00
3c09d38504 Move some prints to log.info 2009-04-12 20:07:41 +00:00
ad2b771e5d Fix starting the webui with a logfile option 2009-04-12 19:59:54 +00:00
386ca2fa68 Fix #883 segfault if locale is not using UTF-8 encoding 2009-04-09 16:40:52 +00:00
67ee535d09 fix text colour when viewed in epiphany 2009-04-09 09:23:14 +00:00
85ad5314fe Make the autoadd update interval 5 seconds as intended 2009-04-09 00:10:05 +00:00
c28574502c fix page switching 2009-04-08 21:25:46 +00:00
8a51a5e978 make the close button close the window 2009-04-08 20:35:35 +00:00
62375c7109 implement page switching 2009-04-08 20:28:39 +00:00
e3171671f0 remove margins as this is a borderlayout config option 2009-04-08 20:24:50 +00:00
0c0d81e2c3 regenerate gettext.js
add a number of translation fixes
2009-04-08 09:02:26 +00:00
02d7fbd3ba add "Date Added" field 2009-04-08 09:01:37 +00:00
8c93241ef6 fix the line number 2009-04-08 09:01:09 +00:00
908760d3a9 add back the _ alias to the lambda unicode gettext function 2009-04-08 08:52:40 +00:00
c57900d4f6 fix rendering of templates when translations bring in utf-8 characters 2009-04-08 08:39:17 +00:00
030c5b51d4 update the "serving on" string 2009-04-08 08:37:41 +00:00
855385227a set gettext.js's charset to utf-8 in the content-type header
don't use NamedTemporaryFile for the Upload resource as the delete kw 
arg was only added in py2.6
2009-04-08 08:22:02 +00:00
891b1120a3 select first row in the onShow event 2009-04-07 22:07:27 +00:00
c93a3b4680 add the ability to load the ext-all-debug.js by specifying ?debug=true
in the url
2009-04-07 21:26:32 +00:00
4e0a4fabfb begin the preferences window 2009-04-07 20:25:49 +00:00
1c8ebc198a add an alias to Deluge.Formatters.plain 2009-04-07 19:54:40 +00:00
2631f09315 fix the sidebars margins whilst collapsed 2009-04-07 19:54:06 +00:00
b71c31cc46 add script to scan the javascript files for gettext calls and
autogenerate gettext.js
2009-04-07 17:54:57 +00:00
6fb66382cc remove all unused html files
render templates as unicode by default
2009-04-07 15:18:02 +00:00
f7b5b20c63 Show an error message if --config option is not a directory 2009-04-06 23:20:32 +00:00
5541164661 load the options panel form defaults 2009-04-06 21:47:55 +00:00
a9f26e0827 Update LICENSE in trunk too.. 2009-04-06 21:17:26 +00:00
434c69492a remove the border from the form 2009-04-06 20:31:46 +00:00
4ddc92f55d stop the scrollbar being displayed when "compact" is selected 2009-04-06 20:29:45 +00:00
5caeff733e tweak the dimensions to eliminate white space 2009-04-06 20:11:40 +00:00
485a1f3487 add buttons to the form 2009-04-06 20:04:54 +00:00
9885e530cb finalise the layout of the options tab in the add window 2009-04-06 19:46:30 +00:00
5c54aff46e reduce the height of the login window 2009-04-06 18:59:28 +00:00
0501537045 add a tracker renderer 2009-04-06 18:17:04 +00:00
1719ece036 fix the icons path 2009-04-06 18:03:43 +00:00
248eb7341c use the setup.cfg file to tag the build as -dev 2009-04-06 14:54:20 +00:00
5b8f9f29b8 Fix loading torrent files in Windows when the path is non-ascii 2009-04-05 23:10:41 +00:00
3c4b511e6b Fix displaying torrents with non-utf8 encodings in add torrent dialog 2009-04-05 18:31:43 +00:00
322dffa105 begin implementing the options panel logic 2009-04-04 13:02:26 +00:00
5acd9f3f21 actually commit ui.common this time 2009-04-04 11:32:34 +00:00
ca316750e8 tidy up imports 2009-04-04 11:31:07 +00:00
895f16b883 tweak the options form layout 2009-04-02 23:11:01 +00:00
4b8a267c57 fix the l.getSize error caused by the options tab 2009-04-02 22:55:47 +00:00
8ebb9af5fc add more to the options form 2009-04-02 21:50:34 +00:00
d6e9c2141e need to store the filename in the info dict that gets returned by the server 2009-04-02 20:59:15 +00:00
1f63e3de1a remove get_torrent_info from ui.common
add an "as_dict" method to TorrentInfo
utilise the TorrentInfo class rather than get_torrent_info
2009-04-02 20:55:46 +00:00
5162d5d7e2 begin to add the options form and also fix the binds on the got_torrent_info calls 2009-04-02 20:40:24 +00:00
00bfd1a442 disable add by info hash and create torrent buttons 2009-04-02 20:10:59 +00:00
3ce6f6bb88 fix displaying the "Browse..." button next to the file upload field 2009-04-02 20:03:10 +00:00
031ec92799 handle an invalid torrent file and show an error message box 2009-04-02 19:43:08 +00:00
b1c992da61 rename Deluge.Ui to Deluge.UI 2009-04-02 19:40:41 +00:00
b07715862f clear the files tree on add/cancel 2009-04-02 19:28:27 +00:00
a7ad189bd0 add adding a torrent via file upload 2009-04-02 19:26:32 +00:00
df6a905226 handle no file being uploaded cleanly 2009-04-02 18:57:41 +00:00
061c06a164 fix the file upload resource 2009-04-02 18:50:45 +00:00
793e120957 change it so the tracker error filter doesn't have an icon 2009-04-02 18:22:08 +00:00
03dac27147 tweak the options form layout, settings fixed column widths 2009-04-02 18:13:29 +00:00
221d1875ff fix the spacer image trying to be retrieved from extjs.com 2009-04-02 18:09:34 +00:00
7fb8fc40d7 fix the progressbar renderers and move the theme specific code from deluge.css to xtheme-slate.css 2009-04-02 15:02:33 +00:00
c99b4ddfea fix button text color in the gray theme 2009-04-02 15:01:40 +00:00
0cb662cde8 give some default values and limits to the spinners on the options tab 2009-04-02 11:01:10 +00:00
672a4debae fix the options tab form layout 2009-04-02 10:56:49 +00:00
c6deb9ec8b fix rendering the form on the options tab (this fix is a little hacky, might be worth looking at the ext or mootools adapter for a better fix 2009-04-02 10:24:55 +00:00
6897cd8b6b improve removing of torrents by adding a "torrentRemoved" event 2009-04-02 09:54:06 +00:00
71ef3f3ddc change the fileuploadbutton back to just a button, we'll open a new window, it'll be a cleaner solution 2009-04-02 09:37:21 +00:00
d3c6bfe91f fix clearing the tree in IE 2009-04-02 09:33:21 +00:00
29a9253108 fix the options tab layout in IE 2009-04-02 09:29:37 +00:00
929aa64b8c a few IE fixes 2009-04-02 09:10:30 +00:00
fdaf3d0810 remove vista theme as it was for ext 1.x and doesn't work with ext 2
add a stylesheet for the default theme that fixes the button text color when viewed in a browser with a dark theme
2009-04-02 08:20:38 +00:00
100f4c2e9f set the column values on a successful request instead of being lazy and just triggering an update 2009-04-02 07:15:16 +00:00
828a1d339a run some strings through gettext 2009-04-02 07:14:03 +00:00
1cd9f74305 fix favicon 2009-04-01 22:33:26 +00:00
54993784da change the seeders/peers in the status tab to match the torrent grid 2009-04-01 22:04:36 +00:00
b2ff696348 remove some debug alerts i left in 2009-04-01 22:00:40 +00:00
141d254f35 tweak the seeds and peers renderers to match the gtk ones 2009-04-01 21:53:41 +00:00
583d76ca18 change it so multiple files can be changed at a time 2009-04-01 21:51:04 +00:00
4087dd38cb implement setting the file priority via the context menu 2009-04-01 21:31:36 +00:00
8b76cd8a2a add a context menu for the files tree 2009-04-01 20:03:21 +00:00
63427a18cc extend the treenode to provide a method to allow for updating colum values 2009-04-01 19:36:27 +00:00
7462a5e1d8 increase the filename column wdith 2009-04-01 18:46:48 +00:00
0d5c30b5f9 add in the file priorities to the file tree on the details tab
add some icons for the priorities
2009-04-01 18:42:04 +00:00
baf3d283e0 add sorting of the files by filenames, and folders display at the top 2009-04-01 16:33:31 +00:00
de733b0fae begin the layout of the options tab form 2009-04-01 16:31:51 +00:00
9b107359a4 replace the "File" button with a fileuploadbutton 2009-03-31 01:16:17 +00:00
44188cf276 add removing a torrent from the dialog 2009-03-31 00:51:43 +00:00
e608db8ce2 add clearing the tree when the selection is changed 2009-03-31 00:41:05 +00:00
3bd13595be clear the url field after the torrent has been added 2009-03-31 00:33:56 +00:00
0e0bc735eb change the class so the correct icon is displayed 2009-03-31 00:32:03 +00:00
fe5fa703b3 increase the height of the files progress bar 2009-03-31 00:30:07 +00:00
7166cc01b5 add some doc strings and improve the __str__ method of the FileTree class 2009-03-31 00:28:33 +00:00
d0a083b1b1 remove the x-deluge-filters class from a filters panel since we can just use #sidebar 2009-03-31 00:20:16 +00:00
608826ce32 remove commented out class 2009-03-31 00:18:59 +00:00
e0cba5bca3 add a progress bar to the files 2009-03-31 00:17:32 +00:00
e903e14188 remove redundant folder 2009-03-31 00:06:36 +00:00
3d8085310e move all the icons
update the paths in the css/code
begin to use more iconCls rather than icon
2009-03-31 00:04:38 +00:00
a2640a8a32 fix it so the file icon is set using css rather than hard coded 2009-03-30 23:35:11 +00:00
a32b43b414 fix the file icon on files
fix clearing the tree when a different torrent is selected
2009-03-30 23:25:27 +00:00
0b9b261038 remove old classes 2009-03-30 23:24:51 +00:00
0bcb847a00 move the columntree stuff into deluge-ext 2009-03-30 23:24:08 +00:00
49e54e1789 remove obselete stylesheet 2009-03-30 23:19:02 +00:00
f9d24ea6e2 add another class 2009-03-30 22:50:00 +00:00
0c3d0befcd display the torrents files in the files tab 2009-03-30 22:25:16 +00:00
5e4ee41db2 Add the files_tree property to TorrentInfo 2009-03-30 22:15:13 +00:00
cab504c90e fix a typo in a doc string 2009-03-30 22:07:47 +00:00
38acdf7017 reduce to only what is required to achieve the selection 2009-03-30 21:58:21 +00:00
ac911d3ed7 add #sidebar to ensure it only occurs in the sidebar 2009-03-30 21:51:42 +00:00
3342394a37 make the selected item in the sidebar have bold text and rename the messagebox icon styles 2009-03-30 21:48:23 +00:00
63c67b6925 use the "checked" config option to add the checkbox to the tree
disable animation
remove the enabled column
2009-03-30 21:45:40 +00:00
cea7d5bc5b add an icon for files in a file tree 2009-03-30 21:39:40 +00:00
f0a25a3486 add support for displaying a checkbox in the tree 2009-03-30 21:38:39 +00:00
5c7d1e6576 use consts/vars rather than merely numbers 2009-03-30 21:37:16 +00:00
5c35712800 Check for invalid handle on tracker errors/warnings 2009-03-28 22:38:19 +00:00
0204ba426a Fix typo 2009-03-28 04:03:17 +00:00
42dce915df Add PreTorrentRemovedEvent event 2009-03-26 21:23:56 +00:00
8373377c10 Add daemon autoconnecting on startup 2009-03-25 18:01:16 +00:00
7c1d16a51c add a method to return a torrents files as a tree 2009-03-25 09:12:48 +00:00
96e8de6db5 render the checkbox correctly 2009-03-23 23:17:04 +00:00
5dc2809732 raise the exception since if we haven't been able to read the file there's not point in continuing 2009-03-23 23:16:12 +00:00
fe83a95041 correctly render the columns in the tree 2009-03-23 22:49:31 +00:00
2e1cc51f70 display the torrent files in the tree 2009-03-23 22:32:48 +00:00
9808302214 add a FileTree class for generating a file tree 2009-03-23 22:18:01 +00:00
3a558433b9 Fix plugin __init__'s and update create_plugin script 2009-03-23 21:03:43 +00:00
5c5bc9a713 fix __init__ to stop gtk being imported in the core 2009-03-23 20:58:21 +00:00
0ed166647d do a lazy import of gtk to stop the core trying to import it 2009-03-23 19:20:45 +00:00
bb4935ae02 add a notify method to Deluge.Ui 2009-03-23 01:10:57 +00:00
2193905fa6 implement disconnecting from a connected daemon 2009-03-22 23:52:34 +00:00
a0e9fafb8f begin an execute command upon event plugin 2009-03-22 23:37:21 +00:00
3f0a1eb896 use super instead 2009-03-22 23:36:45 +00:00
23bb565259 change width to auto so the details tab displays correctly 2009-03-22 21:03:24 +00:00
96ead0d996 Fix #855 force a resume on a torrent if a 'Force Recheck' is initiated 2009-03-21 18:45:47 +00:00
850807ca43 Fix udp trackers being classified as DHT source 2009-03-21 18:07:19 +00:00
c5cc5c283b add time_added and tracker_host to the torrent grid 2009-03-21 15:25:09 +00:00
b2f01c177f implement basic adding of torrents via url 2009-03-21 12:28:48 +00:00
856cd63421 move the clearing to the selectionchange event of the grid so it happens immediately 2009-03-21 12:02:18 +00:00
c143891c93 clear the details pane when there are no selected torrents in the grid 2009-03-21 11:53:05 +00:00
6adb10b62a increase status column size 2009-03-21 11:50:57 +00:00
6b7302ed4b fix clearing the sidebar so filters can be re-added after a reconnect 2009-03-21 11:49:43 +00:00
3f8ef6c66e fix adding hosts and clearing the form after changing password to _password 2009-03-21 11:21:05 +00:00
0e94c31ca2 turn the port field into a spinner 2009-03-21 11:15:17 +00:00
4179336c63 remove the psds from the ext themes 2009-03-21 10:57:38 +00:00
8464ae9152 tidy up the images folder 2009-03-21 10:34:19 +00:00
f9f2a55d93 implement a basic add connection window
implement remove connection
2009-03-20 22:36:58 +00:00
504f2470ba fix clearing panels on a log out 2009-03-20 20:46:36 +00:00
d5b7616f98 if the client on the server is already connected skip the connection manager 2009-03-20 19:20:07 +00:00
0f44b06197 rename the messagebox classes as they are clashing with the state ones 2009-03-20 19:08:40 +00:00
a97fbbc1ef fix status when a host is connected 2009-03-20 19:00:11 +00:00
2b96aa990e Fix showing connected status in connection manager 2009-03-20 18:55:54 +00:00
9ca7634ec9 make the stop daemon button actually stop the daemon 2009-03-20 18:26:47 +00:00
73d0023ef5 add styles for messagebox icons
fix the style for the login box
2009-03-20 18:25:23 +00:00
bccb7ca66e select a row if there is no row selected when contextmenu is clicked 2009-03-20 17:26:24 +00:00
4852188ce9 change "Sidebar" to "Filters" for the panel title 2009-03-20 17:22:43 +00:00
4c83745295 change the cursor to a pointer when over the filters
add in generating the filters dict and applying it to the update_ui call
2009-03-20 17:15:46 +00:00
89e7198e21 add a logging statement to update_ui 2009-03-20 17:14:28 +00:00
a08a4a4e69 implement updating the filters 2009-03-20 09:22:57 +00:00
846d8a0c8f use the universal classes for states 2009-03-20 08:57:36 +00:00
575efe1495 make the tracker host error filter have an icon 2009-03-20 08:03:54 +00:00
c46c56e784 improve the sidebar to ensure that the icons display correctly 2009-03-20 07:59:39 +00:00
cb1beab159 add a proper renderer for the filters 2009-03-20 00:11:14 +00:00
7fb9af5c3d add a basic implementation of the sidebar 2009-03-19 23:00:07 +00:00
f3fd90253e add a favicon 2009-03-19 22:40:26 +00:00
1229e9a46c add color to input boxes so text is visible whilst using a dark browser theme 2009-03-19 22:29:24 +00:00
f909c2409f begin implementation of the SideBar 2009-03-17 10:33:51 +00:00
5512606f8a remove the now redundant calls 2009-03-17 09:16:35 +00:00
fc68ec2929 add the improvements to the export deco 2009-03-17 01:09:23 +00:00
11e42db767 partially implement adding torrents via url 2009-03-17 01:03:38 +00:00
233ed89318 fix get_torrent_info 2009-03-17 01:03:09 +00:00
306961ed75 fix download_torrent_from_url 2009-03-17 00:45:43 +00:00
7b1fc47f99 tweak the size of the details pane 2009-03-17 00:07:34 +00:00
b00b942fee add the comment field to the Details tab 2009-03-17 00:03:15 +00:00
da318ba450 add more events 2009-03-16 23:57:08 +00:00
bbb9ab69b3 tie up some of the torrent menu events 2009-03-16 23:42:28 +00:00
95ac4397a3 display the torrents menu on the rowcontextmenu event 2009-03-16 22:23:56 +00:00
61d028a8ce add the classes for the menu and 2 more icons 2009-03-16 22:13:25 +00:00
d9d5d2b308 remove all remaining oxygen icons
add the additional required icons from fugue
add the torrents context menu
2009-03-16 17:07:13 +00:00
399f8b3f6f change ajax to web 2009-03-16 15:54:48 +00:00
467afb5d63 slight tweak to the get_hosts method 2009-03-16 15:51:51 +00:00
87b789e3a1 make the gettext javascript render in unicode 2009-03-16 15:34:43 +00:00
db853c7c56 improve the export decorator slightly to allow for it to be used without
being called.
2009-03-16 13:30:55 +00:00
c0f11fbae4 Fix #842 some exceptions when disconnecting/reconnecting to daemon 2009-03-16 00:46:51 +00:00
b0e368c9ab Fix issue where core_config would become {} when adding multiple
torrents externally at once
2009-03-16 00:29:49 +00:00
930c479718 Remove the plugin hooks from the Core.. These are replaced by Events 2009-03-15 20:29:51 +00:00
7533c4bb88 Fix #841 maximum upload slots tooltip 2009-03-15 18:38:08 +00:00
f746b79c99 Remove toolbar's update_buttons method 2009-03-15 18:03:55 +00:00
a0db11f0b8 Add preferences option "Add torrent in paused state" 2009-03-15 17:59:27 +00:00
9814cad0b9 Fix tracker error filtering 2009-03-15 02:09:32 +00:00
f5db9d3534 Add 'Comments' field to the Details tab 2009-03-15 01:35:20 +00:00
f787e013ee Add an Error filter to the Trackers filter list 2009-03-15 00:59:29 +00:00
1c2b06a4f7 Update deps to include xdg-utils 2009-03-15 00:38:08 +00:00
c9bd55b819 Don't always log to file in Windows 2009-03-14 23:34:49 +00:00
86d52ba2e1 Use binary mode on all config files for Windows compat 2009-03-12 21:43:17 +00:00
d63c187dcf Fix loading config files on Windows 2009-03-12 21:33:43 +00:00
01350e0060 add a custom sorter for the address column 2009-03-12 19:04:04 +00:00
0ac64da5c6 move the json resource into its own module
split the json-rpc methods and the rpc server into seperate classes
make the json-rpc server a component to allow for extension
2009-03-12 18:57:35 +00:00
344446a626 Do not return when unable to make a backup of the config file 2009-03-09 16:43:28 +00:00
27298ba8d8 Update About dialog 2009-03-08 21:06:17 +00:00
3cab036b70 Make sure config files, resume data and state are fsync'd when saved. This should help prevent data
losses on crashes/improper shutdowns.
2009-03-08 20:27:58 +00:00
8f4583bc23 Fix #790 tracker hosts not correct for some .uk trackers 2009-03-08 20:19:19 +00:00
849b579316 Label: Fix setting 'Move on completed' folder when connected to a remote daemon 2009-03-08 20:14:42 +00:00
3072fc48da Make sure resume files are fsync'd 2009-03-08 02:35:58 +00:00
9a4bbb771e Make a backup of config files before overwriting and make sure the file is fsync'd without error 2009-03-08 02:33:12 +00:00
e12faf5641 improve the error reporting when a ui fails to load 2009-03-07 17:27:04 +00:00
eaf8183397 Fix up error message when unable to import a UI 2009-03-07 16:55:45 +00:00
8fda4d1fde rework the DelugeWeb class so it's completely self contained 2009-03-07 12:42:09 +00:00
8e62f5b3a8 change default hosts to a list as we'll probably be using it in the connection manager which needs to extend it 2009-03-06 21:30:20 +00:00
3ac9085a73 remove test html file 2009-03-06 20:39:44 +00:00
f524d8e63d edit the web package_data stuff 2009-03-06 20:26:17 +00:00
fe002092bf apply Ghents patch to allow for specifying your deluge config dir whilst
creating a plugin
2009-03-06 17:18:48 +00:00
52b2f334dd update webui entry in the changelog 2009-03-06 15:22:12 +00:00
71ac5884dc attach to signals, make DelugeWeb and JSON components
make the server print out its pid and url like paster does
2009-03-06 15:15:53 +00:00
fe6f045be1 remove old webui 2009-03-06 15:01:05 +00:00
d4bc535027 Remove ssl exception from license header when creating plugins from the
script
2009-03-05 23:57:48 +00:00
204f6ee89e Fix IPCInterface on Windows 2009-03-04 02:08:52 +00:00
80fdc3356c allow the client to figure out the auth for a local connection 2009-03-03 19:05:23 +00:00
8d863f2e3c Fix showing Preferences dialog in Windows 2009-03-02 01:46:22 +00:00
237e44d73f Update ChangeLogs 2009-02-28 22:22:49 +00:00
eb05a47d6a Only emit the TorrentFinished event when the torrent hasn't been previously finished.. e.g. after a force recheck 2009-02-28 22:07:49 +00:00
1375d4f545 Fix torrentmanagers update interval to 5 seconds 2009-02-28 21:59:49 +00:00
b6fe5166a8 Catch exception when removing a checking torrent 2009-02-28 21:05:49 +00:00
60a78c52e2 Do not attempt to pause/remove a checking torrent due to stop at share ratio rules 2009-02-28 21:01:28 +00:00
f6c26d6690 Remove timer in pluginmanager since update calls will be handled by
component now
2009-02-28 17:20:49 +00:00
4eb175ae9c Force str for proxy settings 2009-02-28 17:17:40 +00:00
7a6be9df1e Fix #817 email notifications fail to substitute format strings 2009-02-28 02:18:12 +00:00
e287e3ec33 Fix #655 issue where default torrent options wouldn't be set for new
torrents added to the addtorrentdialog
2009-02-28 01:48:41 +00:00
51ddc35140 Fix displaying file errors when the torrent isn't paused 2009-02-27 21:38:30 +00:00
3f03cb967a Get Label plugin working in the GtkUI 2009-02-27 17:12:53 +00:00
faef89870b Fix preferences window from not closing properly on OK 2009-02-26 20:52:08 +00:00
addaefaf7b Force SSL3 connection 2009-02-26 15:16:36 +00:00
d9f2daa778 Fix classic mode 2009-02-26 05:24:36 +00:00
cb78682415 Fix showing the preferences dialog when not connected to a daemon 2009-02-26 03:42:14 +00:00
f61e86d7b3 Add EventManager to the Core 2009-02-26 03:10:11 +00:00
7d1392ffe5 Clean up some debug statements.
Fix adding torrents from arguments on initial load.
2009-02-26 01:50:30 +00:00
7b682f4f60 Implement new IPC system. There is no longer a dependency on DBUS and this system should work on
all platforms.
2009-02-26 01:47:40 +00:00
72ce4eede7 add the deluge icon to the main title bar 2009-02-25 17:34:59 +00:00
34c91448cd add the columntreeview to the files tab 2009-02-25 17:07:41 +00:00
3de1da44a0 add seperate icons for adding by file, url and magnet
change the add/remove icons to simple plus/minus
remove all 32x32 icons
2009-02-25 16:51:38 +00:00
7459210753 add a fuller layout to the add torrent window 2009-02-25 16:41:13 +00:00
bb4a5f4404 remove unnecessary css class 2009-02-25 15:52:16 +00:00
2fa4c4187a fix the speed renderers so they closer match the gtk grid 2009-02-25 15:16:05 +00:00
0d1fe3370a modify speed modifiers to be the same as the ones in common.py 2009-02-25 15:13:38 +00:00
1566091dd9 add an icon to the connection manager window 2009-02-24 21:06:16 +00:00
22e3b34221 improve the progress bars a little and add a stub for the torrent add window 2009-02-24 20:20:49 +00:00
9b05ec8b5f Get blocklist plugin working 2009-02-24 01:03:02 +00:00
fa77f8403a Fix get_resource 2009-02-24 01:02:28 +00:00
4a6ecde07b Update create_plugin.py script 2009-02-24 00:00:35 +00:00
703e9def05 Change some plugin stuff and add an example plugin 2009-02-23 23:54:06 +00:00
8025889598 Fix building plugins when python isn't in the PATH 2009-02-23 11:25:07 +00:00
9ed0a80679 Catch exceptions while loading the geoip db 2009-02-23 10:22:55 +00:00
7e7944a085 Fix "quit and shutdown daemon" option 2009-02-21 14:03:28 +00:00
0e47cfd49e add a toolbar to the bottom of the connections grid 2009-02-21 13:20:30 +00:00
604ddc092e fix exception if no country is specified 2009-02-21 10:44:20 +00:00
dadb74477e Fix the allocate mode not being preserved when selecting different
torrents in addtorrentdialog
2009-02-21 10:42:59 +00:00
9ec3c9ec91 remove redundant templates folder 2009-02-21 10:40:57 +00:00
5cf1fa9d00 move extended ext classes into their own file 2009-02-21 10:39:47 +00:00
c05def0cf9 Add new installer bmps 2009-02-21 10:11:04 +00:00
ee028f2a52 attach to the "logout" event in the connectionmanager in onRender instead of onShow
fix clearing the torrent grid on logout
2009-02-21 04:35:11 +00:00
0f0c0cef9b report in the peers table whether the peer is a peer or a seed 2009-02-21 04:29:04 +00:00
8280d029aa add progressbar to peers tab and fix adding data to the store 2009-02-21 04:16:08 +00:00
28bbd0cc62 clear all the tabs (that have data) when the client disconnects 2009-02-21 04:04:05 +00:00
4eb70ec484 editing wrong class 2009-02-21 03:46:05 +00:00
72690f5328 remove pointless regex stuff 2009-02-21 03:43:58 +00:00
ce2e089d63 add a progress bar to the torrent grid 2009-02-21 03:42:40 +00:00
8c0ba82e0a add stub for a FilesTreeLoader 2009-02-21 02:57:22 +00:00
1f6ea321b7 make the countries column sortable and tweak the store 2009-02-21 02:41:22 +00:00
4659cf2438 fix speed renderer
alias fspeed, fsize and ftime to the corresponding formatters
improve the peers grid (flags, fixed renders etc.)
2009-02-21 02:31:56 +00:00
26addfd63c add a resource for the country flags 2009-02-21 02:30:58 +00:00
c212bc35e9 add stubs for the files and peers tab 2009-02-21 02:06:46 +00:00
66495f4b06 fix displaying the hash in the details tab 2009-02-21 01:25:26 +00:00
8f0766bfe5 update stats on the details tab and add updating when the tab is changed 2009-02-21 01:23:17 +00:00
372d138a77 add copyright headers after remembering andars death threat 2009-02-21 00:15:48 +00:00
4e5e98d90b add a helper methods to torrents
trigger an update immediately when the torrent is changed in the grid
2009-02-20 23:58:18 +00:00
a9fb98c23a substantially improve the fire method of events, allowing unlimited event args to be passed in now. 2009-02-20 22:59:56 +00:00
7279755f24 add a subclass of Ext.ProgressBar that allows for a percentage value to be used 2009-02-20 22:19:59 +00:00
13343a6b4b don't have any text in the statusbar on creation 2009-02-20 21:58:38 +00:00
3cfeb8a2ef rename tab_statistics to tab_status
update status when a torrent is selected in the grid
tweak status css
2009-02-20 21:57:31 +00:00
4f9e627131 rename getSelection to getSelections 2009-02-20 21:55:51 +00:00
cf2842b623 fix to work with new deluge-torrents layout 2009-02-20 21:55:34 +00:00
8d1a49f11c improve the layout of the deluge-torrents module
delegate updating stats to the individual tabs in the details panel
2009-02-20 20:09:29 +00:00
7c3c1fb767 return if there is no connection selected 2009-02-20 20:04:12 +00:00
d542666f20 Fix some deprecation warnings and imports 2009-02-20 14:32:28 +00:00
2399850e4e Wikified (trunk) changelog 2009-02-20 11:35:17 +00:00
566c6adf3a remove a bunch of the oxygen icons
add a titlebar icon to the login window
2009-02-19 21:50:30 +00:00
376b0daa11 tidy up toolbar event handlers
add a client connection check and act accordingly when its disconnected
2009-02-19 21:36:35 +00:00
eae92d78eb move updating the statusbar into the deluge-bars module
show/hide the additional statusbar info when connected/disconnected
2009-02-19 21:07:14 +00:00
fda01f59a7 fix Deluge.Events.fire 2009-02-19 20:46:08 +00:00
faae99d3d8 improve the statusbar, default to "Not Connected" with an icon 2009-02-19 20:38:06 +00:00
b9d84be341 clear the torrent grid when stopping the ui 2009-02-19 20:12:13 +00:00
815d8aa39f handle the logout button being pressed 2009-02-19 20:10:57 +00:00
2669ade501 add login event and enable the logout button once logged in 2009-02-19 19:22:51 +00:00
5153ad6f78 move over to central event holder 2009-02-19 18:59:14 +00:00
b4cc833044 add help and logout buttons to the toolbar
improve the enabled/disabling of buttons on connect/disconnect
2009-02-19 18:42:19 +00:00
0e78b9c3b1 add help icon 2009-02-19 18:32:03 +00:00
238c9d722d add logout icon 2009-02-19 18:30:15 +00:00
b3d4fd6620 Fix external property for src/ 2009-02-19 11:30:51 +00:00
45b4bc8e28 tidy up including python bindings 2009-02-19 11:23:37 +00:00
17e7ddf66f fix svn:externals properties 2009-02-19 11:17:20 +00:00
b397f99b21 tidy up libtorrent linking to only what we require and also include asio again 2009-02-19 11:03:45 +00:00
8899a683ab set svn:externals property on trunk to grab LT from their svn 2009-02-19 10:07:23 +00:00
7ca5ad1b93 remove LT from trunk 2009-02-19 10:04:27 +00:00
70a810b531 do safe simplejson import in common and use this imported copy in the 2
other places where its used.
2009-02-19 09:39:18 +00:00
8c2b735a8b Fix saving file priorities when switching torrents in the
addtorrentdialog
2009-02-19 06:03:11 +00:00
8ca8c5de05 move torrentAction to onTorrentAction 2009-02-19 02:21:13 +00:00
ea4f734863 move over to a more event driven style 2009-02-19 02:14:35 +00:00
9e19ae79c8 prepare for allowing parts of the ui to subscribe to connect/disconnect events 2009-02-19 01:22:32 +00:00
7344d0b1a3 remove not needed initialize call 2009-02-19 01:21:15 +00:00
6adada01e4 rearrange the details module to make it more managable 2009-02-19 01:12:58 +00:00
4b711883cb Do not set sys.stdout,err and stdin to None if logfile is used 2009-02-19 00:52:04 +00:00
7fb09d922a don't return the username and password for the daemon 2009-02-18 23:40:24 +00:00
d9e67bcebe lt sync 3273 2009-02-18 06:15:15 +00:00
cc272d8dc0 enable the disabled toolbar buttons once the ui connects 2009-02-17 00:04:46 +00:00
1ff29a134c more improvements to the connection manager, ui actually starts running after a connect now. 2009-02-16 23:27:12 +00:00
b6dee74dd5 update to allow for passing in a methods list when initialising 2009-02-16 23:22:36 +00:00
911d95815f Fix hiding bottom pane when no tabs are enabled upon restart 2009-02-16 02:40:50 +00:00
9907909b58 make the connection manager poll 2009-02-16 01:06:08 +00:00
e99dd03dcc more progress on the connection manager 2009-02-16 00:46:16 +00:00
5bd5db4f16 Blocklist now displays a tick when up to date 2009-02-14 03:26:33 +00:00
b73e26344c lt sync 3259 2009-02-13 17:41:09 +00:00
847ad95fd3 begin connection manager 2009-02-13 08:25:55 +00:00
356af2ba0a changed incorrect password window title to "Login Failed" 2009-02-13 07:44:07 +00:00
c7d3275561 forgot to put that it was CC3 2009-02-12 18:58:39 +00:00
49e705af14 remove last remaining silk icon
update license
2009-02-12 18:58:11 +00:00
d6d926d94f replace some of the silk icons with icons from the fugue set 2009-02-12 18:47:17 +00:00
18f7736a22 default most toolbar buttons to being disabled 2009-02-12 00:20:13 +00:00
345b28935f make enter check the password 2009-02-12 00:14:59 +00:00
d0020344f1 improve failed attempt reporting 2009-02-12 00:01:59 +00:00
0b3a04dc6c add a basic login system 2009-02-11 23:55:59 +00:00
7842ad5d3d lt sync 3253 - fix ssl trackers 2009-02-11 15:27:19 +00:00
f521795552 Update README to include current deps 2009-02-11 00:55:30 +00:00
6c00dc5db1 use config manager and add a login method 2009-02-11 00:48:14 +00:00
1d61bb3e94 Revert last change. Hiding the exception isn't a good idea and the error shouldn't be OS-specific. 2009-02-11 00:40:22 +00:00
ee05e18a9a show easy to understand error message on twisted importerror for the not so bright #796 2009-02-11 00:26:25 +00:00
06bb660a10 make the new twisted webui runnable via deluge -u web 2009-02-11 00:17:31 +00:00
ef5790fefe rename webui to server 2009-02-10 22:59:32 +00:00
c720417cb4 change config file format from pickle to json 2009-02-10 22:43:35 +00:00
17ea87be2e conf downgrade script 2009-02-10 22:30:45 +00:00
032b0fa934 remove pointless divs in the html 2009-02-10 12:56:48 +00:00
74d2657750 add doctype and xmlns 2009-02-10 12:52:00 +00:00
b8a8a37571 Append a new line when initially creating auth file 2009-02-10 09:10:14 +00:00
be68515fdc Have the client module automatically try to get the localhost creds in connect() 2009-02-10 08:40:05 +00:00
9175ac16fd Fix issue when a client connection is lost that has been authenticated 2009-02-10 08:35:41 +00:00
8bcc7ea232 lt sync 3243 2009-02-09 23:23:26 +00:00
db23f6a723 Fix missing import 2009-02-09 02:59:24 +00:00
8df39bbcef lt sync 3240 + patch 2009-02-09 00:46:23 +00:00
1394c52a80 Print out the data when a bad message is received 2009-02-09 00:43:11 +00:00
8ee7bf9983 Rename RPC_SIGNAL to RPC_EVENT and fix receiving multiple events 2009-02-08 23:25:57 +00:00
e96b4c4f58 switch over to using twisted-web 2009-02-08 16:56:56 +00:00
ea734931d7 lt sync 3236 2009-02-08 00:08:15 +00:00
44d2fd1f1f lt sync 3232 and patch segfault on start 2009-02-07 00:59:56 +00:00
89b5ca1cfe Fix #790 tracker hosts not correct for some 3rd-level domain names 2009-02-06 09:01:11 +00:00
7cfc54728f Fix queue manipulation 2009-02-06 09:00:20 +00:00
ea5bb29ab5 Fix displaying errors when a torrent is Checking 2009-02-06 07:13:56 +00:00
e2f707f0d7 update setuptools info and up version to one that actually works 2009-02-06 00:25:56 +00:00
85f34614dc fix the queue cell renderer 2009-02-05 22:30:00 +00:00
76f35aee85 A better fix for the preferences dialog 2009-02-05 09:06:48 +00:00
f942d4ee43 Fix preferences window 2009-02-05 08:36:59 +00:00
1003374bb4 Update license on metafile.py to GPL3 2009-02-05 04:46:38 +00:00
d7caea5c31 Change system tray tooltip on disconnect from daemon 2009-02-05 00:01:42 +00:00
cd493c0f08 add the new twisted/ext webui to svn 2009-02-04 18:20:46 +00:00
e861e660a5 Fix queue order changing 2009-02-04 14:55:51 +00:00
b18d9cfed4 Fix issue that could happen when the deferreds created in the connection
manager fire after the dialog has been closed
2009-02-04 06:41:19 +00:00
5ad7c60b65 Remove signalmanager 2009-02-04 06:27:40 +00:00
75efde8439 Fix filtering on trackers 2009-02-04 06:17:09 +00:00
9b0306d5b5 Clean up some stuff when clients disconnect 2009-02-04 03:00:55 +00:00
5fc4948ad2 Fix some issues with event handling on the client side and how arguments are handled in
DelugeEvents
2009-02-04 02:48:50 +00:00
3b6bee1508 Fix up config module to use twisted loop instead of gobject 2009-02-04 02:47:02 +00:00
523d494991 lt sync 3228 2009-02-03 21:58:29 +00:00
e0735cf5ca Only attempt stopping PluginManagers looping call if it's running. 2009-02-03 06:39:33 +00:00
a24738a9ff Implement Events (formerly Signals) which are emitted from the daemon to interested clients. 2009-02-03 04:13:41 +00:00
aa89c653f9 Remove xmlrpc related files 2009-02-02 10:39:33 +00:00
c374e99cdd Fix logging exceptions in the daemon 2009-02-02 02:08:59 +00:00
fe98e1c11e Fix typo 2009-02-02 01:52:15 +00:00
1462795480 Update and fix-up the man pages 2009-02-02 00:20:25 +00:00
ab4fec5573 Fix issue when initializing gettext that would prevent deluge from starting 2009-02-01 22:18:39 +00:00
c399f7c9b3 Move the list_methods rpc to the daemon object and rename it to 'get_method_list' 2009-02-01 20:39:07 +00:00
27cf34f85b trunk lang sync 2009-01-31 21:16:38 +00:00
27937e21dd import stat as it's used in generating ssl keys 2009-01-30 19:26:43 +00:00
c6439e5a22 add a list_methods method so a javascript json-client can be built for
the webui
2009-01-30 14:09:22 +00:00
b3b856bcca Fix double-clicking on host entry to connect 2009-01-30 03:07:22 +00:00
d6fd69eba8 Fix adding torrents 2009-01-29 01:42:48 +00:00
887ef8d7ca Fix component depend on CorePluginManager 2009-01-29 01:19:26 +00:00
6a0594b47d Rename the daemons PluginManager component to CorePluginManager to not
conflict with the gtkui in Classic mode.
2009-01-28 23:10:44 +00:00
e9f8c7b0e8 Get Classic mode working somewhat. There are still some issues to
resolve with it.
2009-01-28 17:59:27 +00:00
9f369388e6 lt sync 3225 2009-01-28 16:19:36 +00:00
44ffcd4499 Automatically get localclient credentials if attempting to connect to a
localhost
2009-01-28 02:31:51 +00:00
464073e596 Update the list 2 seconds after starting the daemon 2009-01-28 01:36:46 +00:00
01fbda7c9e minor connectionmanager fixes on adding hsot 2009-01-28 01:14:29 +00:00
4d2c6881f8 Fix saving hostlist on host remove 2009-01-28 00:57:45 +00:00
6cd05fbbc9 Remove default user/pass from hostlist 2009-01-28 00:52:18 +00:00
089f0afa32 Fix license headers
Remove ui/webui/ssl from package_data since it doesn't exist
2009-01-28 00:36:33 +00:00
865921a677 Fix issue when using 'Active' state 2009-01-28 00:03:14 +00:00
47bb52f72a Remove pythonize module since it's no longer used 2009-01-27 23:44:26 +00:00
eda19c3d60 Update copyright years in aboutdialog 2009-01-27 23:34:03 +00:00
8f12919013 Fix saving files/peers tab state when no column is sorted 2009-01-27 21:45:44 +00:00
b681ca8909 Fix typo 2009-01-27 21:41:48 +00:00
08ea99c233 Fix #761 use proper theme colours in sidebar 2009-01-27 21:21:15 +00:00
3632409b29 Fix import 2009-01-27 20:48:29 +00:00
45669ca703 lt sync 3219 2009-01-27 19:24:07 +00:00
bf4dae61d2 lt sync 3218 2009-01-27 17:27:23 +00:00
42588656fd Implement new DelugeRPC method to replace XMLRPC.
This commit breaks _a lot_ of things including the web and console UIs, please do not expect 
anything to work.
2009-01-27 08:03:39 +00:00
ce1b7b491d Fix up some copyright headers 2009-01-27 00:21:53 +00:00
657ec0756a Remove 'state_upgrade.py' script since this functionality is included in Deluge now. 2009-01-27 00:17:43 +00:00
d727a515b7 Updated for new year 2009-01-26 05:06:08 +00:00
20751de699 ltsync 3211 2009-01-25 02:51:01 +00:00
24e526ce93 Revert unintended change 2009-01-25 02:17:15 +00:00
5697376caa lt sync 3209 2009-01-25 02:10:39 +00:00
082dea9b80 Update python bindings from libtorrent svn 2009-01-24 05:31:45 +00:00
d9ab0ec0ca Fix setting outgoing ports 2009-01-24 05:25:37 +00:00
9df4c84295 lt sync 3205 2009-01-24 04:12:32 +00:00
05141c6f2c Fix when sorting # column, downloads should be on top 2009-01-23 05:25:31 +00:00
7167c0ecca Fix setting file priorities when adding a torrent 2009-01-22 08:22:50 +00:00
71aebaffdf Fix being able to select/deselect files in the add torrent dialog 2009-01-22 06:01:34 +00:00
85b1a86669 Fix setting Peer TOS byte 2009-01-21 14:03:26 +00:00
72601aebf4 Fixed blocklist web ui 2009-01-21 03:56:38 +00:00
3b9b47011c Fixed regression where blocklist no longer checked for update on startup 2009-01-20 13:46:13 +00:00
2403d13ceb Fix torrents not displaying properly after disconnecting and
reconnecting to the daemon
2009-01-20 11:45:43 +00:00
2368a82b13 Fixed regression where blocklist would import empty list 2009-01-20 07:14:25 +00:00
2ea8ca1000 No longer checks for newer blocklist on startup 2009-01-19 10:46:24 +00:00
7c6319b1db Fixed bug where blocklist was reset when not imported
Date is now of remote blocklist (makes checking more precise)
Fixed web ui from crashing (still doesn't work though)
2009-01-19 10:14:33 +00:00
a6de74c858 Blocklist is no longer imported if up to date 2009-01-19 08:12:31 +00:00
1ec3751f91 need_new_blocklist is no longer blocking
removed download arg from import_list
updated gtkui and webui
2009-01-19 07:56:49 +00:00
813063bd12 need_new_blocklist now checks if remote blockist is newer/bigger 2009-01-19 06:02:58 +00:00
58361f4af2 Default to ERROR logging level if the supplied logging level is invalid 2009-01-18 06:24:49 +00:00
40ba6ea2ba lt sync 3187 2009-01-17 22:03:36 +00:00
7c349b1fa9 Fix translating speed units in status tab when a per-torrent limit is
set
2009-01-17 22:02:38 +00:00
a69efdfc56 Fix crashing in AddTorrentDialog when removing torrents from the list
Do not allow duplicate torrents in the AddTorrentDialog
2009-01-17 21:58:02 +00:00
32be4ed4ad Fix being able to connect to a local daemon from another user account 2009-01-16 20:11:05 +00:00
0fa9b491c5 add tooltip to popup about windows 2009-01-16 04:47:44 +00:00
a76550be68 make popup insensitive on windows 2009-01-16 03:41:13 +00:00
8f68fc9e07 Add support for more tracker icons 2009-01-16 03:31:21 +00:00
ebc24e35dd Fix #729 tracker icons not being saved in the correct location 2009-01-16 03:18:43 +00:00
8e5473a91d Fix saving Files tab and Peers tab state 2009-01-16 03:13:37 +00:00
5cef7fe9fc Fix remembering sorted column in the torrent list 2009-01-16 03:01:41 +00:00
2acd470626 Fix opening links from Help menu and others 2009-01-16 02:45:36 +00:00
f16ff06083 Fix the -l, --logfile option 2009-01-16 00:35:07 +00:00
f990fd1a9a Fix [4491] which broke the oldstateupgrade 2009-01-14 02:45:11 +00:00
e42910dbf8 Fix bdecoding some torrent files 2009-01-14 01:15:00 +00:00
c94a13ae17 windows updates to switch to boost 1.37 and python 2.6 2009-01-12 23:30:33 +00:00
855315dfb1 Update bencode.py from BitTorrent-5.2.2. This changes the license to
Python Software Foundation License Version 2.3.
2009-01-12 22:44:27 +00:00
8a6461bef8 Append a new line to the localclient entry 2009-01-12 19:55:57 +00:00
e681c9183e fix get_torrent_status to use filter dictionary 2009-01-11 00:05:50 +00:00
ea3b79bdd5 lt sync 3143 2009-01-10 21:25:43 +00:00
1cd3998350 lang sync 2009-01-10 18:50:44 +00:00
9cbe63c299 update credits for 1.x 2009-01-10 07:37:53 +00:00
9f7018bdfb added copyright info 2009-01-09 23:44:42 +00:00
9ee7562268 fix debian bug #510948 missing dep 2009-01-09 20:00:17 +00:00
ff42ebe0b2 Set 'max_half_open_connections' default to 50 on non-Windows systems 2009-01-09 04:21:26 +00:00
3e92ff026a Tell the user which UI was tried when unable to start 2009-01-08 22:25:46 +00:00
43be3e3e64 Added '-s', '--set-default-ui' option to deluge 2009-01-08 20:27:24 +00:00
b9ae2cb2b9 Update credits and author list 2009-01-08 03:35:22 +00:00
0bd50f9b08 Fix installing 2009-01-08 02:31:01 +00:00
366b5e1f95 add mime icons to the white theme
couple of stubs in the add window
2009-01-07 21:12:05 +00:00
c406ab4eaf add mime images to setup.py 2009-01-07 21:01:38 +00:00
bb8acea3df add mime icons to trunk 2009-01-07 20:51:41 +00:00
c59d0e348e improve the files table in the add torrent window
add some mimetype support in

improve the merge_changes.py script
2009-01-07 20:42:57 +00:00
52485af4f7 Allow torrents to be removed from the add torrent window 2009-01-07 19:06:28 +00:00
c48707a654 more improvements to the options tab 2009-01-07 18:13:05 +00:00
ed03ea52db template update 2009-01-07 03:55:21 +00:00
ad2fc421dc fix gtk-cancel translation setting in remove dialog 2009-01-07 03:41:52 +00:00
69e5fe1d3d add stub for filepicker to trunk
start implementing the options dialog
add another not implemented alert to edit trackers
update changelog
2009-01-07 01:28:19 +00:00
08855ef9d7 merge in change 2009-01-07 01:01:10 +00:00
b10416b8f8 merge webui fixes 2009-01-07 00:48:38 +00:00
2af3869143 Fix issue in get_tracker_host when the torrent has no tracker 2009-01-06 12:50:49 +00:00
3584fa9e41 fix crash on trying to convert *very* old 0.5 config files 2009-01-06 02:42:08 +00:00
cf40455d1c fix notification bug on startup for already finished torrents 2009-01-06 02:27:27 +00:00
89800dd6c1 sort for managibility 2009-01-06 01:43:41 +00:00
373dd2c695 Fix the display of the tracker host when it's an IP address and not a
hostname
2009-01-05 10:14:12 +00:00
7f1a7ea863 Show the Trackers sidebar filter by default 2009-01-04 08:53:06 +00:00
d850b71561 lt sync 3129 2009-01-04 08:48:46 +00:00
5c839a6b20 Fix seeding torrents from moving around when sorting the '#' column 2009-01-04 08:47:26 +00:00
dc17647590 Fix applying proxy settings 2009-01-02 21:25:26 +00:00
76a17a4028 Label: Fix move on completed 2009-01-02 03:25:39 +00:00
83ecface7a Fix folder renaming to display the change properly 2009-01-02 00:56:44 +00:00
388b21d6eb fix depreciation warning in py2.6 2009-01-01 18:28:33 +00:00
f97273e094 Change how the alert name is found to use the class's __name__ property 2008-12-31 02:47:17 +00:00
4471d70d6c Hide the initial test port image 2008-12-30 23:32:39 +00:00
98f0b875ba Fix exception in test open port 2008-12-30 23:28:30 +00:00
c61a6eb34b Add PeerGuardian Text (Gzip) reader 2008-12-30 03:52:18 +00:00
48f445d9a0 Apply blocklist prefs when the buttons are pressed. 2008-12-30 03:51:13 +00:00
a1a82c96a5 Do not continue to show 'Importing 0' progress bar if blocklist fails to
import.
2008-12-30 02:57:21 +00:00
bb4e7e38ae Fix gtkwarning regarding column width 2008-12-29 17:10:11 +00:00
e415829a68 lt sync 3106 2008-12-29 16:58:56 +00:00
daa045a425 going back to vs71 2008-12-29 03:43:50 +00:00
e315d40ddf Change default blocklist url to nipfilter instead of pipfilter 2008-12-28 23:15:01 +00:00
368f94157f Fix issue that prevented torrents from being added 2008-12-28 15:38:28 +00:00
2fb3f4b534 Fix #673 do proper test to determine if remote method requires callback 2008-12-28 04:39:08 +00:00
d00366204e Fix exception in metafile 2008-12-28 04:29:54 +00:00
6359c5d4af Do not use the stored config_location value because it should only be used if the --config option is
set.
2008-12-27 21:24:50 +00:00
e1c5f69d54 Fix exception in label plugin when saving preferences 2008-12-27 21:06:53 +00:00
00e74c9491 Make new release checking much more robust 2008-12-27 00:13:59 +00:00
15802aa432 Remove 'torrent_alert' handler 2008-12-27 00:02:11 +00:00
45e3f12a49 lt sync 3090 2008-12-26 22:47:24 +00:00
f5a6736617 Fix never-ending import in Blocklist on Windows 2008-12-26 22:45:43 +00:00
5cdd1146d1 Fix tooltip for 'Show session speed in titlebar' option 2008-12-26 08:21:13 +00:00
8ae6477a2d Remove revision file from trunk too 2008-12-26 08:05:10 +00:00
7ac25da4bd Fix new version check 2008-12-26 08:04:31 +00:00
7338a5daea change from vs71 to vs90 2008-12-26 04:55:20 +00:00
bb28b70887 vs2008sp1 fix - hydri 2008-12-26 04:52:44 +00:00
0574c5a125 lt sync 3081 2008-12-24 06:01:18 +00:00
d207429f02 Fix #661 show proper tracker host when ending in .co.uk, .com.au, etc.. 2008-12-22 10:07:39 +00:00
db3a05bda4 update translator credits 2008-12-22 02:44:57 +00:00
aed14960a9 Yet another typo fix 2008-12-20 23:19:24 +00:00
a23d877a99 Fix more issues with TorrentOptions 2008-12-20 23:14:06 +00:00
6756c69580 Fix some typos 2008-12-20 23:06:53 +00:00
6083c1655f Clean up has_key method in TorrentOptions 2008-12-20 06:28:44 +00:00
3481d26821 Fix up to __getitem__ in TorrentOptions 2008-12-20 05:49:03 +00:00
4313d84ed8 Fix some typos 2008-12-20 05:20:21 +00:00
04fdd521ea Use the 'allow_remote' config option instead of always using False 2008-12-20 05:00:55 +00:00
97d2f371b3 Import sys in rpcserver 2008-12-20 04:48:01 +00:00
b6822f446a Fix saving dht state 2008-12-20 04:33:47 +00:00
04d14df8c7 Re-org Core and start using RPCServer 2008-12-20 04:27:59 +00:00
8ed2d25ce5 Ignore _* when doing new version check 2008-12-18 07:06:06 +00:00
eb4f1fdb04 Do not fork in osx 2008-12-18 06:14:49 +00:00
2c4f322f61 lang sync 2008-12-18 04:05:21 +00:00
15dc400231 update pots 2008-12-18 03:46:55 +00:00
c3697f95e9 Branch 1.1.0, trunk is now 1.2.0-dev 2008-12-18 02:52:24 +00:00
93670b05bc Only overwrite blocklist.cache if the import was successful 2008-12-18 02:38:34 +00:00
3f46136362 lt sync 3060 2008-12-18 02:13:08 +00:00
fcc975006a Automatically attempt to get localclient auth when setting core uri to localhost 2008-12-18 02:03:41 +00:00
69e2154004 Make preferences tabs translatable 2008-12-17 01:01:49 +00:00
1b8efd5d10 Rename Statistics tab to Status 2008-12-17 00:38:15 +00:00
3dce47d1f0 Don't include LICENSE or readme.txt in package data 2008-12-17 00:11:00 +00:00
d4445adf20 Fix importing system libtorrent 2008-12-16 04:32:03 +00:00
24a0ccee0a make test active port use internal graphic instead of launching browser 2008-12-16 02:49:06 +00:00
f136d41b62 fix alignment 2008-12-15 17:39:13 +00:00
19b7369786 Continue starting Deluge if the gettext/locale initialization doesn't
work.. It will now just print an Error message.
2008-12-14 17:53:42 +00:00
43e28ec9d5 Add some more details about UI choice 2008-12-14 16:54:51 +00:00
1d16e05f55 remove no longer needed hackery 2008-12-13 01:22:09 +00:00
f482d747e0 Fix installing with --root 2008-12-12 04:23:47 +00:00
d1aaad28e7 association dir update 2008-12-11 23:52:12 +00:00
227115551d Fix detecting localhost connection 2008-12-11 23:22:54 +00:00
fc25852e7b debian packaging fix 2008-12-11 17:34:29 +00:00
d544f73569 Remove Null since we now have Console 2008-12-11 10:06:14 +00:00
6f7231f0ca Strip out new lines when reading auth file 2008-12-11 10:04:25 +00:00
18f9165ba6 Fix closing the add trackers window by clicking Cancel 2008-12-11 10:03:43 +00:00
34678f1076 Ignore blank lines in auth file 2008-12-11 09:56:22 +00:00
c0bf133ab8 Add an error check when reading the auth file 2008-12-11 09:31:37 +00:00
c32eddfc48 Fix starting with new config folder 2008-12-11 09:20:32 +00:00
2b34f64304 Move get_localhost_auth_uri() to ui.common 2008-12-11 09:13:14 +00:00
7171df62eb Fix console daemon connect 2008-12-11 09:07:56 +00:00
c2c93f00de Fix display of icons in connectionmanager 2008-12-11 08:46:31 +00:00
484fe772c1 Do the egg_install in setup 2008-12-11 07:40:05 +00:00
baa7cc7a41 Fix WebUI connecting to localhost 2008-12-11 06:18:48 +00:00
66476d7ea0 Fix installing scripts 2008-12-11 05:40:06 +00:00
6cd1df0f13 revert root=/ 2008-12-11 03:54:18 +00:00
06354aa8cb Use distutils.install instead of setuptools 2008-12-11 03:52:12 +00:00
466ac404ec add --root=/ 2008-12-11 03:25:10 +00:00
ba813a8913 fix toolbar style in win32 2008-12-11 01:42:16 +00:00
2d25a09bfe lt sync 4382 2008-12-10 23:30:59 +00:00
55e694e80b Change libtorrent import behaviour to first try importing deluge.libtorrent and then libtorrent. It will now also raise an ImportError if libtorrent version is not 0.14. 2008-12-10 23:30:09 +00:00
831ac110a8 Change display of hosts and catch protocolerrors when testing hosts status 2008-12-10 22:28:11 +00:00
19196b1363 Fix classic mode 2008-12-10 22:15:09 +00:00
b91b750024 Just use a different filename for new hostlist config instead of trying to detect the old one 2008-12-10 22:03:35 +00:00
7a970305cd Add another missing define 2008-12-10 12:38:53 +00:00
33dfbca91c Another fix 2008-12-10 12:29:28 +00:00
feeb1469fa Fix check for old version 2008-12-10 12:24:45 +00:00
8bd49aef7a Add additional check for old config file 2008-12-10 12:17:25 +00:00
097664e890 Fix some minor bugs in ConnectionManager 2008-12-10 10:24:15 +00:00
33663a9d5d Strip new lines when loading auth file 2008-12-10 10:19:19 +00:00
da177ff4e4 Do not require a daemon restart to use updated auth file 2008-12-10 10:04:32 +00:00
85cef723c3 Fix file removal 2008-12-10 10:00:21 +00:00
37c3b4334c Add basic authentication -- your connectionmanager config will be cleared and this will likely break other UIs 2008-12-10 07:56:40 +00:00
cc7a685397 lang sync 2008-12-10 03:16:52 +00:00
7ad1699fa1 point default blocklist to our server and up interval to 4 days 2008-12-10 02:34:32 +00:00
ec4051de34 icons only in toolbar 2008-12-10 01:07:14 +00:00
b077d5075a Fix ratio calc 2008-12-09 11:14:11 +00:00
b142a1eaf9 Do not apply the set-function for 'show_rate_in_title' on startup 2008-12-09 11:04:05 +00:00
34cd3c1e35 Make filtertreeview view options more immediate 2008-12-09 08:27:43 +00:00
c1f977a2d1 Fix division by zero error in get_ratio 2008-12-09 08:22:20 +00:00
26c607ff66 Update the ChangeLog 2008-12-09 05:50:12 +00:00
7065df205b Fix #624 do not allow changing file priorities when using compact allocation 2008-12-09 05:40:56 +00:00
be0c891dd8 Fix up showing speeds in titlebar and make it an option 2008-12-09 05:27:01 +00:00
513c783045 transfer rates in title 2008-12-09 05:00:48 +00:00
7f59873f8a fix #547 add description to name field per HIG entry 2.1.1.1 2008-12-09 04:10:46 +00:00
10cf1043ff fix #571 notification-daemon-xfce dependency circle 2008-12-09 03:57:36 +00:00
e3bac06af0 pots updates 2008-12-09 03:42:18 +00:00
ae07d8c2d0 partial fix to #640. more work needed 2008-12-09 03:28:30 +00:00
44223592b0 Fix #646 when calculating share ratio use the 'total_done' value if 'all_time_download' is 0 2008-12-09 02:55:20 +00:00
56fb8f6225 not all use DD/MM/YY, so use locale's date format 2008-12-09 02:34:08 +00:00
819ab070b4 Add support for a basic auth transport and handler in rpcserver 2008-12-09 02:12:37 +00:00
ab56257b49 Fix typo in get_eta() stop_seed_ratio should be stop_ratio 2008-12-08 13:09:46 +00:00
24ad257fdd Fix tracker icons config dir 2008-12-08 07:38:17 +00:00
253b8a857f Fix drag n' dropping in the files tab 2008-12-07 12:42:09 +00:00
983c07f869 s/tango/16/g 2008-12-06 22:22:16 +00:00
4c7b2f85a6 ajax: oxygen-theme for popups 2008-12-06 22:07:30 +00:00
650d4d06a2 move ajax-ui to oxygen icon set 2008-12-06 21:52:56 +00:00
d4006bed50 switch to oxygen icons (1.1) 2008-12-06 20:47:41 +00:00
6676347a1b lang sync 2008-12-06 04:56:35 +00:00
8b48b3a00a add installer theme 2008-12-06 04:00:36 +00:00
8503e2cec8 Fix #636 not setting the daemon's config directory when using --config=
with the UI in classic mode.
2008-12-05 21:59:40 +00:00
0ffc306d83 Fix tracker_icons to use the correct config directory, not the default
one
2008-12-05 21:49:54 +00:00
307099a874 .error class set to 400 px 2008-12-05 17:15:51 +00:00
2f8c10b7ba focus on pwd field;patch from #365 by dasnyderx 2008-12-05 17:11:07 +00:00
92574feeb4 add get_config_values method to core to allow for multiple config values to be retrieved 2008-12-03 22:46:56 +00:00
7b243759f3 Remove unnecessary libtorrent files 2008-12-02 20:39:18 +00:00
121d638d03 Fix shutting deluged down when using Python 2.6 2008-12-02 04:48:57 +00:00
aebc019d12 add installer file and association reg 2008-12-02 03:51:35 +00:00
c905945513 Clean up win32/ 2008-12-02 03:01:10 +00:00
6fdd660883 remove iterator method put in by mistake 2008-12-02 00:14:23 +00:00
443fef1d95 add a basic interface to the glob module for use by a javascript file picker widget 2008-12-01 23:13:19 +00:00
57d3517ef2 Fix issue in setup.py where it would try to compile mapped_storage.cpp
or memdebug.cpp
2008-12-01 16:28:12 +00:00
245533b8e0 add win build requirements 2008-12-01 06:39:31 +00:00
ddaae2c28b Do not build memdebug.cpp 2008-12-01 01:43:19 +00:00
67c6758ecf lt sync 3006 2008-12-01 01:13:28 +00:00
d5f2a4d25f Log socket or xmlrpc errors that cause the ui to disconnect from the
core
2008-11-30 21:18:11 +00:00
90637921ee Add license info for blocklist icons
Fix up copyright notice in debugerror.py
2008-11-30 20:02:11 +00:00
baead73df0 Fix up some licence stuff 2008-11-30 19:25:45 +00:00
5d82cf8f87 Better libtorrent check in setup 2008-11-30 01:11:26 +00:00
ad4e276a39 Fix renaming folders when there is no trailing slash 2008-11-30 00:53:46 +00:00
4d65f237b1 lt sync 2996 2008-11-30 00:24:13 +00:00
ba148a30b1 fix icon in new release dialog for windows 2008-11-29 23:28:11 +00:00
495182832d Fix the files listed in the files tab when renaming files, removing them
and then re-adding them to the same session
2008-11-29 23:17:50 +00:00
a55901c87a lt sync 2995 - add port number of host field in http requests 2008-11-29 23:05:03 +00:00
403d71fdbb lt sync 2994 2008-11-29 21:53:57 +00:00
d7a76b3b5a Fix #619 return "" instead of "Infinity" if seconds == 0 in ftime 2008-11-29 21:35:44 +00:00
34671971be Clean-up gettext code and make it more portable 2008-11-29 21:21:05 +00:00
6bd1682728 Fix building on FreeBSD
Add some more metadata
2008-11-29 20:48:37 +00:00
bb8c41ad03 Change how gettext is initialized to be more simple 2008-11-29 20:44:53 +00:00
269c4ec70c Fix typo 2008-11-29 20:25:11 +00:00
32db5e2c5d Do not have signalmanager/receiver connections linger by setting the
SO_LINGER sockopt.
2008-11-29 19:07:28 +00:00
03c6e5ef9b Change xpm icon size to 32x32 2008-11-29 18:11:21 +00:00
5e8cf840e2 Add blurb about icon copyright 2008-11-29 17:53:04 +00:00
13c8108ce8 Fix man page 2008-11-29 17:25:00 +00:00
17eeae8bfa Add 'deluge.xpm' 2008-11-29 17:24:02 +00:00
cb77d16812 Minor optimization in ftime 2008-11-29 05:48:11 +00:00
95bf260518 Improve ftime() to format dates higher than 11 weeks. 2008-11-29 05:10:34 +00:00
0d429837b6 Fix gtk warnings 2008-11-29 03:31:04 +00:00
d59a59dadc Break out proxy preferences to include peer, web_seed, tracker and dht. 2008-11-29 03:16:43 +00:00
79684c3b11 Fix bug in systemtray when changing some config options when the
systemtray is not enabled.
2008-11-29 03:15:27 +00:00
6b22fb236e Have setup.py obey prefix when installing data files.
Add manpages to data files.
2008-11-29 02:12:09 +00:00
ae8f987bc0 Build translations in the build folder 2008-11-29 01:22:29 +00:00
256c5c71b8 Add copyright headers 2008-11-28 23:53:05 +00:00
5f4a2533ec Include the tracker host in tracker status string 2008-11-28 23:39:46 +00:00
4933618f50 Fix #47 the state and config files are no longer invalidated when there
is no diskspace
2008-11-28 23:36:18 +00:00
1440d6b247 Fix #531 set default log level to ERROR and add 2 command-line options,
"-L, --loglevel" and "-q, --quiet".
2008-11-28 23:28:06 +00:00
e759d61266 Fix #602 re-did files/peers tab state saving/loading 2008-11-28 21:31:50 +00:00
d64f8c3d93 Force a show event in the pop-up menu so that on first click the menu is
shown properly.
2008-11-28 20:24:03 +00:00
5ad2c87b77 Flip the traffic icon 2008-11-28 19:43:54 +00:00
578c451e9a Fix up some headers 2008-11-28 19:11:26 +00:00
a73928c231 Fix filtertreeview behaviour when stopping to clear the treestore 2008-11-28 19:09:04 +00:00
da120c744d Remove OpenSSL exception from headers 2008-11-28 17:54:17 +00:00
936cd9811d lang sync 2008-11-28 06:10:20 +00:00
ead53f3c88 fix remove dialog for multiple torrents 2008-11-28 01:14:29 +00:00
767a35c381 reorder protocol traffic 2008-11-27 19:34:00 +00:00
1e126995dc Minor tweak 2008-11-27 07:16:19 +00:00
2024c0cfb0 Decorate dialogs 2008-11-27 07:09:14 +00:00
05609bda61 Fix get_config 2008-11-27 06:40:21 +00:00
c6d67b824a Fix bug in preferences when opening to the plugins page 2008-11-27 05:19:29 +00:00
ccbf75d5b9 Fix last 2008-11-27 05:19:02 +00:00
3dc8ba3d6f Fix loading labels 2008-11-27 05:12:27 +00:00
0954c3f112 Re-do the 'set maximum' dialogs.. They are now decorated. 2008-11-27 04:24:30 +00:00
013e9d95f1 Fix bug in system tray menu when enabling system tray when connected to
a core
2008-11-27 04:17:11 +00:00
1515636ef3 Improve the remove torrent dialog 2008-11-27 02:48:56 +00:00
b4b7c50f6b lt sync 2987 2008-11-26 09:14:19 +00:00
c6422b53df Rework the Remove Torrent Dialog and change client.remove_torrent() to
only having the option of removing data, not torrent file.  Deleting the 
torrent file was deleting the torrent file in the Copy Torrentfile 
folder and this is not desirable.
2008-11-26 09:11:18 +00:00
e11b7adeff Fix ajax template package data 2008-11-26 07:32:27 +00:00
afd3178358 Fix missing comma 2008-11-26 07:24:29 +00:00
2969ff51f9 Add -P, --pidfile option to deluged 2008-11-26 07:01:19 +00:00
b141d91965 Remove install class 2008-11-26 06:50:39 +00:00
435dfa31a2 use new manpages in debian packaging 2008-11-25 23:44:48 +00:00
55c5a5d175 Add manpages 2008-11-25 23:21:22 +00:00
66ae89122d Fallback to using DNS for geoip lookups if the database file is not
available
2008-11-25 22:43:31 +00:00
4eedc1b23e Include a 'clean_plugins' command and make sure it's run with 'clean' 2008-11-25 22:21:14 +00:00
3afc5bfb19 smaller default size for newforms floats and ints(2) 2008-11-25 20:09:54 +00:00
ab8362432b smaller default size for newforms floats and ints 2008-11-25 19:56:46 +00:00
35ebf57060 get_stats+overhead 2008-11-25 19:28:25 +00:00
03e3ccc3a5 lisencing 2008-11-25 17:58:52 +00:00
207005e355 webui label options 2008-11-23 09:30:48 +00:00
08f2d5b412 Keep track of selected filter path and if necessary, select row when
expanding a filter
2008-11-23 08:56:46 +00:00
f252ca1775 Expand all filters on start 2008-11-23 08:43:07 +00:00
9bbc0fd8ea Enable expanding/collapsing filters 2008-11-23 08:04:03 +00:00
2b6b1a9ee7 Create a 'build_plugins' command and clean-up setup.py 2008-11-23 05:57:35 +00:00
c6ddaeaac7 Remove OpenSSL exception from license headers 2008-11-23 04:58:01 +00:00
67a3279840 rate_limit_ip_overhead 2008-11-22 11:27:27 +00:00
3dbd3a3fd3 Add an option to not include IP overhead in rate limiting (setting False
is equivalent to how 0.5.x behaves)
2008-11-22 09:00:01 +00:00
4bfd5646ad lt sync 2969 2008-11-22 01:00:58 +00:00
16934c8f6a Update flag icon license 2008-11-21 12:00:53 +00:00
92c0b92f29 Include GeoIP license 2008-11-21 11:46:05 +00:00
9e174166b8 Fix up the Label plugin's GTK dialogs to be more consistent 2008-11-21 10:11:36 +00:00
dc63d26cfe Add protocol traffic statusbar item 2008-11-21 09:35:29 +00:00
f5ad01a865 Add 'get_session_status' to core 2008-11-21 09:15:05 +00:00
c028b861f8 Fix bug in calculating the ETA for seeding torrents with a stop seed
ratio set
2008-11-21 07:49:15 +00:00
0459202653 fix license, again 2008-11-20 19:56:33 +00:00
97c6846486 fix license, again 2008-11-20 19:54:39 +00:00
4d29f19a2b fix license 2008-11-20 19:18:05 +00:00
7c8d8a22c2 fix executable flag 2008-11-20 18:02:19 +00:00
b9a7c87a2d fix torrent actions 2008-11-19 18:56:12 +00:00
52c6cce6b3 fix gtk labels 2008-11-17 19:52:02 +00:00
06c4f7af69 Fix setting default stop_at_ratio settings for torrents 2008-11-17 09:30:46 +00:00
e52efde4db lt sync 2946 2008-11-17 09:04:33 +00:00
c429d56170 Prevent wrongly encoded torrents from causing an xmlrpc exception thus causing
a blank torrent list
2008-11-17 08:28:32 +00:00
c4e4647f4b Do not set per-torrent stop_seed_ratio settings based on the global settings
when adding torrents
2008-11-17 06:37:56 +00:00
a0bf6d8fe1 Remove trailing whitspace from *.py 2008-11-17 00:57:32 +00:00
7813bd4098 Fix #475 catch unicode decoding errors 2008-11-16 08:29:31 +00:00
4933445d86 remove broken choose files 2008-11-15 10:19:29 +00:00
1725ab7569 Show plugin information in the preferences page 2008-11-13 22:39:57 +00:00
fb3e51d3e9 design the options tab of the add torrent window 2008-11-13 22:38:38 +00:00
af85f56b98 fix bug in adding torrent from file 2008-11-13 22:14:14 +00:00
06231c1799 2931 assert fix 2008-11-13 01:46:29 +00:00
c99736f207 allow multiple commands for deluge -u console -a ... 2008-11-12 18:17:14 +00:00
2ed7b5b747 lt sync 2926 2008-11-12 03:58:03 +00:00
5150d38f9c two new languages 2008-11-12 03:56:36 +00:00
81427006dd label plugin:InputSensitivity 2008-11-11 19:35:03 +00:00
8a4da5b712 update the style a little more, still requires a couple more fixes javascript side 2008-11-11 17:18:53 +00:00
fb1a62a9f8 add styling of the file input hack 2008-11-11 16:32:01 +00:00
bc3a7bd057 fix reloading the add from file iframe 2008-11-11 15:44:10 +00:00
374335cae8 slight improvement to the add torrent from file 2008-11-11 15:40:05 +00:00
d919a452dd implement the server side part of ajax add from file
implement the client side javascript (file input still needs themeing)
2008-11-11 11:14:02 +00:00
5eb92ab9b7 tie up the contents of the iframe with some javascript 2008-11-10 18:37:21 +00:00
b49a4c66d8 add the beginnings of add torrent by file 2008-11-10 18:27:16 +00:00
3b32edeed1 style the add from url window a little more 2008-11-10 18:07:50 +00:00
8398fa91f5 couple of bug fixes, add some strings to be passed through gettext in
the rendered html
2008-11-10 18:00:21 +00:00
480673c1d1 mooui compressed using the yuicompressor 2008-11-10 17:04:25 +00:00
f2c4660ded fix popup menus 2008-11-10 12:23:05 +00:00
a027010073 add a check to see if the ui is initialized before running an update 2008-11-10 12:19:50 +00:00
f2dc542aba add a stub page /json/upload
couple of fixes in mooui
couple of fixes in deluge-details
2008-11-10 12:05:21 +00:00
53f3e89640 lang sync 2008-11-08 22:56:11 +00:00
94c28f55ae update pots 2008-11-08 20:34:21 +00:00
695e6a8c6e Fix alignment of tracker icons when tracker does not have an icon 2008-11-08 15:49:32 +00:00
757f55f38e router:use_module 2008-11-08 14:31:29 +00:00
a183e665b0 empty options page 2008-11-08 14:16:54 +00:00
db283d9a14 i need to write my own url router someday.. 2008-11-08 14:13:49 +00:00
cb4320151d update mootools core to 1.2.1 2008-11-08 13:39:20 +00:00
1dfdcdf1f3 add a bit more documentation to it 2008-11-08 11:09:54 +00:00
83875bf7f2 fix template namespaces 2008-11-08 10:44:03 +00:00
05a982fd4b webui label config rework 2008-11-08 10:09:15 +00:00
944be0876b debugerror is even less serious 2008-11-08 08:22:28 +00:00
73dd64f8db Fix #528 make sure gtkui config file is written before exiting 2008-11-08 08:04:46 +00:00
b75fc32982 Fix some gtk warnings 2008-11-08 08:02:33 +00:00
b148d5497b Implement #478 display UI options in usage help 2008-11-08 07:26:52 +00:00
10fdd76e3d Rename 'null2' to 'console' 2008-11-08 07:20:49 +00:00
3f3092cd8a Fix json get_webui_config 2008-11-08 06:28:41 +00:00
f945a6f597 Increase the per-torrent stop share ratio max to 99999.0 and make the
spinner and remove at ratio checkbox insensitive if stop at ratio not 
checked
2008-11-08 06:17:42 +00:00
2e640b4cae Fix some typos 2008-11-08 06:15:51 +00:00
d25ad68521 Have the TorrentInfo object raise an exception if unable to open/bdecode
the torrent file
Catch the exception in AddTorrentDialog
2008-11-08 06:15:03 +00:00
35671b3f8e Update doc html 2008-11-08 06:13:40 +00:00
ca3cbf920c Fix typo 2008-11-07 06:52:15 +00:00
e7a353c251 Another config fix 2008-11-07 06:51:14 +00:00
35e41e3b17 Fix addtorrentdialog due to config class changes 2008-11-07 06:49:00 +00:00
e0137b6a4c Remove pythonize call -- it's not needed 2008-11-07 06:42:19 +00:00
3f86e440bd label js 2008-11-06 20:44:12 +00:00
cf1720b2b6 fix webui config dialog 2008-11-06 19:25:37 +00:00
39c289cbe6 fix oops 2008-11-06 19:18:10 +00:00
a311bcbcec config fixes 2008-11-06 19:12:11 +00:00
41dbab69b2 normalise the header comments 2008-11-06 07:59:38 +00:00
1920f3ce72 Fix up doc strings in deluge.common and generate documentation html for
it
2008-11-06 07:55:38 +00:00
277b75e66b add some missing semi-colons 2008-11-06 07:52:39 +00:00
5b96fd1d49 Fix doc tests 2008-11-06 05:42:15 +00:00
f4e81e1429 Fix typos 2008-11-06 00:32:46 +00:00
1ed82d6542 changelog 2008-11-05 22:42:10 +00:00
09c5236a4b javascript auto-refresh 2008-11-05 21:16:15 +00:00
21d707fa92 disale js plugins for now 2008-11-05 20:05:21 +00:00
d48076dd6f fix gettext 2008-11-05 20:01:25 +00:00
cc366e9369 Re-write the Config class 2008-11-05 12:35:02 +00:00
89ae872394 Initial support for sphinx documentation. Still need to create rst
files for the modules.
To build docs, goto docs/ folder and type `sphinx-build source html`
2008-11-05 03:14:45 +00:00
f2b057bd30 webui https 2008-11-04 19:15:56 +00:00
b3cda61961 Fix #577 adding torrents by drag n' drop in windows 2008-11-02 23:22:55 +00:00
be70707149 move deluge-strings.js to gettext.js 2008-11-02 22:30:39 +00:00
dae6252496 lt sync 2896 2008-11-02 21:49:06 +00:00
f4d7080492 Move fdate() to common, patch from Lajnold 2008-11-02 18:13:11 +00:00
3ecf6a187e Update Changelog 2008-11-02 04:53:43 +00:00
8e77ab4569 Update Changelog 2008-11-02 04:45:18 +00:00
e5cbca13dc Fix #229 add 'date added' column, with patch from Lajnold 2008-11-02 04:41:55 +00:00
a2a3bd2148 Fix Interface page of Preferences 2008-11-01 07:13:19 +00:00
6d3acf6dca add udp to is_url to allow udp trackers 2008-11-01 03:30:20 +00:00
72aaef6191 gettext again 2008-10-31 17:17:06 +00:00
41c121b729 update gettext and strings. 2008-10-31 17:04:30 +00:00
cb45b5c41f add gettext.js 2008-10-31 16:47:10 +00:00
2b75a75992 Don't invalidate the torrent status/info after a torrent.status() call 2008-10-31 03:45:28 +00:00
c66120ac95 use 1.36 on windows 2008-10-30 22:53:26 +00:00
9ae1a9b6e0 Fix building in windows 2008-10-30 20:56:10 +00:00
61985777da lt sync 2881 2008-10-30 17:23:36 +00:00
85e065c29d change a few names and add better documentation 2008-10-30 14:07:43 +00:00
93f083bde4 fix typo 2008-10-30 13:15:51 +00:00
0bdbc69f51 update the documentation in the mootools json-rpc proxy 2008-10-30 13:14:27 +00:00
47f2ebc37c update the copyright to include my email address 2008-10-30 13:10:25 +00:00
c1be1f3072 lt 2879-storage cleanup and truncating files that are larger than they should be 2008-10-30 06:38:25 +00:00
da6594d138 update label plugin javascript test case
alias _ to Deluge.Strings.get
2008-10-29 21:16:09 +00:00
86ce5d104a label plugin mooui-test1 2008-10-29 19:47:40 +00:00
150bbd51cd lt 2876 - support for UPnP routers that don't provide a urlbase 2008-10-29 02:42:45 +00:00
c2cbeda738 disable test-popup 2008-10-28 22:25:07 +00:00
adf56b023e Update bindings 2008-10-28 22:20:46 +00:00
d4dec67fc4 plugin-javascript 2008-10-28 22:20:38 +00:00
1945674c0a 2873 upnp fix 2008-10-28 21:37:33 +00:00
228ad4a500 update translator credits 2008-10-28 03:18:57 +00:00
6fe2602d79 Update the icons to be more rad 2008-10-28 03:04:33 +00:00
0589411224 Fix #570 use utf-8 encoding in statistics_tab.py 2008-10-27 23:31:09 +00:00
1349f313db update list of files for pot 2008-10-27 23:19:42 +00:00
3ac1dbee73 lang sync 2008-10-27 17:20:24 +00:00
ef7e000b70 lt sync 2868 2008-10-27 06:06:51 +00:00
a6802b455a Fix #570 Use utf-8 encoding in listview 2008-10-27 05:43:34 +00:00
eb9578c41d Attempt to get tracker icon from html source
Use blank icon for trackers that do not have a favicon available (to 
make things aligned)
Force 16x16 for tracker icons
2008-10-27 04:49:06 +00:00
ac9959a92b Convert plugins setup.py to new format
Update create_plugin script to use new setup.py format
2008-10-27 03:53:21 +00:00
edaf3da0fc Add 'get_plugin_info()' to PluginManagerBase -- returns a metadata info
dictionary
2008-10-27 03:31:11 +00:00
1c7ce61635 Update blocklist plugin setup.py to include more metadata and re-do
setup.py layout
2008-10-27 01:55:47 +00:00
1c121a8c17 move tracker_icons 2008-10-27 00:26:39 +00:00
0f94cf2316 allow favicon.png 2008-10-27 00:26:01 +00:00
0b09c6563c move mooui and mootools to /static 2008-10-26 23:40:32 +00:00
ee0cc92658 fix typo's/formatting 2008-10-26 22:12:12 +00:00
44a219fb3a add (disabled) notification config 2008-10-26 21:50:25 +00:00
2d257371d9 Add ability to send arguments to UIs with -a, --args 2008-10-26 21:31:13 +00:00
26eb2bbb3d proxy config 2008-10-26 21:17:48 +00:00
6aae2acbe5 Have torrent.get_ratio return -1 when downloaded bytes is 0.
Have torrentview and statistics_tab display an infinity character when 
ratio is -1
2008-10-26 21:10:03 +00:00
190b180255 keyword search enhancements 2008-10-25 07:04:22 +00:00
352427ca20 keyword search includes trcker status 2008-10-24 21:05:14 +00:00
03d1177085 gtk:allow icons for labels 2008-10-24 18:20:58 +00:00
56a3a03a59 move tracker icon cache folder 2008-10-24 18:16:12 +00:00
29c32c0b6a use the main tracker icon url 2008-10-24 13:42:43 +00:00
8fe301a3d9 change the icon for the "All" state 2008-10-24 13:34:53 +00:00
951c13f1ce Better fix for #565 2008-10-24 07:43:34 +00:00
dc0a2ce52e Fix #565 wait for the deluged process to start to prevent defunct
processes
2008-10-24 07:39:14 +00:00
1aa33421e9 redirects according to http spec 2008-10-23 18:41:07 +00:00
0896856908 1st argument for -u web is the base dir 2008-10-23 18:11:35 +00:00
cb19d71b7d Fix #545 use proper values in ratio calculation 2008-10-23 16:52:09 +00:00
bdbed9f893 fix test 2008-10-23 15:45:30 +00:00
1f0a6eb75e Add TorrentInfo class and use it in AddTorrentDialog 2008-10-23 14:41:51 +00:00
5af5749065 Allow the creation of .torrent files with no trackers 2008-10-23 13:47:20 +00:00
dbcf1e622a Fix adding torrent to session 2008-10-23 13:35:17 +00:00
a2b2ce2ca5 Fix saving files in create torrent dialog, also set a default filename
when saving
2008-10-23 13:23:26 +00:00
ecb80ea689 Fix creating torrent with file size less than smallest piece size 2008-10-23 13:22:40 +00:00
b83ef477e4 Fix and clean-up os checking functions 2008-10-23 11:27:37 +00:00
759bb8cc5d Fix locale stuff on OS X 2008-10-23 08:21:25 +00:00
ff6906997b Windows build system fixes 2008-10-23 08:13:08 +00:00
718c789c8e Handle OS X better in the build system - patch from hydri 2008-10-23 08:05:02 +00:00
16cc7be912 add darwin check to common 2008-10-23 07:22:08 +00:00
310d1e4e6e move torrent-add-dialog to interface tab 2008-10-22 20:47:35 +00:00
984c4f8203 webui : use TrackerIcons class 2008-10-22 16:08:53 +00:00
aadb6edec1 <image to <img 2008-10-22 15:39:13 +00:00
f051f050a9 move get_torrent_info into a new ui common module 2008-10-22 15:07:51 +00:00
e09a8f79a8 fix problem that sometimes occured when switching back and forth between daemons without disconnecting first 2008-10-22 08:54:26 +00:00
d4bbece86e use cache for async tracker images 2008-10-21 18:57:13 +00:00
7359ddb879 fetch tracker icons in thread 2008-10-21 18:36:53 +00:00
723715ec98 use the included json library when running on python 2.6 2008-10-21 16:19:11 +00:00
fbe62805c3 Some optimizations to the torrentview updating 2008-10-21 10:52:37 +00:00
058c66bfa8 Clean-up torrentview.update_view() code. 2008-10-21 10:23:42 +00:00
cb8125aa1b gtk tracker icons, some eye-candy 2008-10-20 18:57:38 +00:00
09fe2e696b Touch-up the stats tab 2008-10-19 10:24:46 +00:00
a8d132452a Fix open folder 2008-10-19 10:10:09 +00:00
56f1bff6d4 Use libtorrent smart_ban extension 2008-10-19 06:02:35 +00:00
9fc18f0e41 Fix the alert_type magic to work when libtorrent is not in the deluge
module
2008-10-19 05:43:58 +00:00
79209daf94 lt sync 2836 2008-10-18 23:57:39 +00:00
3405450256 ly sync 2832 2008-10-18 21:22:44 +00:00
a495738177 title for start/stop icon 2008-10-18 15:53:12 +00:00
976189a814 styles 2008-10-18 15:06:08 +00:00
f3382591ec fix highlighting;#514 2008-10-18 14:32:07 +00:00
8a86094abf webui new state=all icon 2008-10-18 14:20:30 +00:00
83360789d5 Add new 'All' icon 2008-10-18 07:56:19 +00:00
7caf26779f Fix #549 make sidebar width persistent 2008-10-18 06:43:38 +00:00
219be3f440 account for ipv6 brackets [ip:ip:ip]:port 2008-10-18 04:48:38 +00:00
37618e4a13 Fix up add peer dialog to be more consistent 2008-10-18 04:22:29 +00:00
a7068af238 Fix connection manager 'add host' due to common changes 2008-10-18 04:15:55 +00:00
da2499faa6 Fix adding peers 2008-10-18 04:10:34 +00:00
a36938729b Fix #552 wrong gentoo svn folder for grabbing revision 2008-10-18 03:57:26 +00:00
251b1733ce add port mention to add peer glade and fix poort oops in ip validation 2008-10-18 03:53:54 +00:00
fd1dfedfba Update changelog 2008-10-18 02:31:26 +00:00
cd671e58bd Add drag n' drop support to the files tab 2008-10-18 02:28:00 +00:00
7c8168fcd2 up changelog 2008-10-18 01:55:38 +00:00
9113744c40 add 'add peer' and create gtkui common 2008-10-18 01:53:13 +00:00
9472cab9bb Folder renaming support 2008-10-18 00:29:00 +00:00
8d2a658789 little cleaning 2008-10-17 21:36:03 +00:00
d12019cbc4 lt sync 2824 - fix segfault when passing None to torrent_info() 2008-10-17 19:38:33 +00:00
41bedda10a Updates for rename_folder 2008-10-17 18:22:18 +00:00
a555fecc18 lt sync 2823 2008-10-17 17:54:07 +00:00
86d1624cff Deluge will now use a system libtorrent library if available. 2008-10-17 17:52:12 +00:00
646901d8da lang sync 2008-10-17 03:02:17 +00:00
ecfbb3ceed fix opera 2008-10-16 17:38:46 +00:00
793e138d11 Add folder_rename to the core 2008-10-15 23:59:07 +00:00
0365ae00c0 Fix IP filter 2008-10-15 23:57:03 +00:00
170e430b8c lt sync 2803 2008-10-15 20:55:20 +00:00
e0a380fb0e webui:images for file-prio 2008-10-15 19:54:14 +00:00
aa66b8624e sync classic template to white 2008-10-15 19:23:57 +00:00
db736c9075 Use "127.0.0.1" instead of "localhost" when starting the SignalReceiver 2008-10-15 19:19:12 +00:00
56c496dc5d Change to use 'all_time_upload' and 'all_time_download' due to change
in recent libtorrent revision
2008-10-15 18:49:51 +00:00
fd4e548938 lt sync 2802 2008-10-15 18:45:35 +00:00
f1a81d9863 fix #546 2008-10-14 22:04:51 +00:00
88ac0cba11 show_keyword_search pref 2008-10-14 21:44:03 +00:00
7b3f6a31f6 Only update the specific row's filename instead of requesting a whole
new files list when the file_renamed signal is received.
2008-10-14 21:31:25 +00:00
4e720b9364 no label, ui fixes 2008-10-14 21:21:58 +00:00
8c676a950e id_to_label 2008-10-14 21:03:20 +00:00
531cf70911 favicon for tracker_host 2008-10-14 20:46:29 +00:00
d7aed2778d webui:sidebar config for trackers and hide_zero 2008-10-14 20:37:06 +00:00
cba021a19e label-plugin:fix unload 2008-10-14 20:04:23 +00:00
4e79fe3f7d Fix file renaming for files that are not within a folder 2008-10-14 19:09:50 +00:00
f8ad5ddb37 Changing filenames of files within a folder will keep the file in the folder. 2008-10-14 18:56:09 +00:00
70a58e969f lt sync 2796 2008-10-14 16:13:23 +00:00
b5b6bb6e1e update todo 2008-10-14 11:20:06 +00:00
49b9494bbe run the tab labels through Deluge.Strings 2008-10-14 09:20:59 +00:00
d98734b745 move some more css into the base 2008-10-14 09:17:50 +00:00
88b58bdce9 add a test shell script
add labels to be used by the legend
2008-10-14 09:02:09 +00:00
c6f6a110bc rename button to Add
reflect changes in the javascript behind
2008-10-14 01:26:58 +00:00
5ed4d601e8 just copy the style from the classic theme 2008-10-14 01:25:28 +00:00
ccce1938ac add transparency to the tab to simulate greying out when a torrent isn't
selected
2008-10-14 01:10:17 +00:00
a0eafb1518 restore defaults to the options tab 2008-10-14 01:06:59 +00:00
c6ed7e297b almost fixes the bug where if you apply a filter, whichever torrent was
selected before continues to be displayed in the tabs
2008-10-14 00:59:08 +00:00
d20628baff better spacing for the filter icons 2008-10-14 00:42:33 +00:00
3cb046c34c only set the background-image once 2008-10-14 00:37:51 +00:00
f5482d6a92 add dynamic tracker host icons 2008-10-14 00:31:59 +00:00
08fd7a14f9 Prevent the updating of row that is being edited 2008-10-14 00:11:35 +00:00
ed0c7f1b9f update icons with relative paths 2008-10-13 23:54:30 +00:00
7e5e858dad migrate all icons into the base css file, themes can override if need be 2008-10-13 23:51:14 +00:00
f5b3be82f5 Add active icon 2008-10-13 23:44:57 +00:00
794a5b01bb add active icon to the filter list 2008-10-13 22:47:33 +00:00
7085725be5 add missing glade file 2008-10-13 19:18:13 +00:00
02161ea6ef revert back to aclient and add force_call 2008-10-13 18:36:47 +00:00
a5c58fb8dd use the sclient, the aclient appears to be broken 2008-10-13 18:19:21 +00:00
9fb0494b2f remove unneeded braces 2008-10-13 18:05:14 +00:00
bd56957c27 remove this.info which remained from when the statusbar was at the top 2008-10-13 18:03:54 +00:00
2a09752fd9 make the event handlers on the statusbar generic, and add some doc
comments
2008-10-13 17:58:17 +00:00
5e29fabf1e more semicolons and fixes 2008-10-12 20:57:03 +00:00
13a2927762 fix a bug introduced by a name case change 2008-10-12 20:50:13 +00:00
c2140339a5 add a load of semicolons to the end of lines 2008-10-12 20:46:04 +00:00
20a6a302e6 add a progress bar to the statistics tab 2008-10-12 19:06:17 +00:00
a34d74d790 change show_zero default to False 2008-10-11 09:39:13 +00:00
81193d3d87 change sidebar_show_trackers default to false 2008-10-11 09:32:12 +00:00
fa05f1222c use deluge16.png for state=all 2008-10-11 09:22:59 +00:00
d65efb3f7a use deluge16 for state=all 2008-10-11 09:16:52 +00:00
c48932bab8 use temporary 'active' image, andar:please commit the final one 2008-10-11 09:07:24 +00:00
7b52f7fa97 rename hide_zero* to show_zero* because double negatives are not intuitive 2008-10-11 08:56:13 +00:00
9a8f8ce2f9 sidebar-gtk:show/hide zero_hits+trackers 2008-10-11 08:44:45 +00:00
5ebbff177f filter: hide_zero_hits;hide_cat : core+test 2008-10-11 08:04:02 +00:00
7564248431 use multithreaded ssl on windows 2008-10-11 07:30:18 +00:00
296c7fea82 sidebar: select default-item on hide and none-selected 2008-10-11 06:01:19 +00:00
19b58b2098 use theme for sidebar colors 2008-10-11 05:15:35 +00:00
20cfb836ff Sidebar translations+order 2008-10-11 04:49:47 +00:00
6b6eb9381b lang sync 2008-10-11 04:45:42 +00:00
f4ea3ee036 remove size from the returned dict as it's not used and causes
tracebacks
2008-10-10 08:19:35 +00:00
0ae879daf8 lt sync 2781 2008-10-10 05:00:40 +00:00
abfad5f19d improve the add torrent window 2008-10-10 02:09:05 +00:00
846d61516b another method for adding torrents from the ajax ui, not functional yet
though
2008-10-10 02:08:47 +00:00
df680926ac add a couple of extra methods to be used by the ajax ui when adding
torrents
2008-10-10 00:29:47 +00:00
0037922d9e make the add torrent window able to add from url again 2008-10-09 10:35:11 +00:00
5b06ecd52e Properly line wrap tracker messages 2008-10-09 07:26:48 +00:00
f4ff7ec3a6 Change max connections default setting to 200 2008-10-09 03:41:06 +00:00
f7a56b95ba begin testing gears, redesigning the add torrent window 2008-10-08 17:46:04 +00:00
c8901d31c5 Fix freezing on start-up issues on systems that do not have a properly
configured localhost entry.
2008-10-08 13:32:02 +00:00
2428cb4970 add a titlebar to the window 2008-10-08 13:22:10 +00:00
51730b2c55 replace the favicon on all templates with a png vs a gif fixing the jagged edges issue 2008-10-08 13:07:38 +00:00
c172a36ca2 complete the statusbar popup menus for changing max_* (download, upload, connections) 2008-10-08 12:55:55 +00:00
dd29746084 Prevent being able to set file priorities for compactly allocated
torrents as it is not intended to work.
2008-10-08 12:42:59 +00:00
ebe53dd634 add missing html files 2008-10-08 12:41:40 +00:00
93832f62e9 lt sync 2776 2008-10-08 12:40:46 +00:00
58d56f461c change the popup menu to go above the mouse if there is not enough
space below
2008-10-08 12:37:35 +00:00
2e6dd5b945 fix attribute error caused by attributes/functions without
_rpcserver_export
2008-10-08 11:57:55 +00:00
641c27a90a add popup menus, need some changes in mooui so they display correctly 2008-10-08 02:24:59 +00:00
2574e05ad4 show the max_* (download, upload, num_connections) in the status bar 2008-10-08 02:09:29 +00:00
5421ea77a6 initial create torrent window design 2008-10-07 21:08:54 +00:00
6447dbbea5 add simple background flipped 2008-10-07 20:35:04 +00:00
a5de65657c fix url 2008-10-07 19:55:18 +00:00
c2c84fd0fa increase the width of the toolbar in the css
migrate the window title of the add window to Deluge.Strings
add code to popup a window for torrent create
2008-10-07 19:54:11 +00:00
fb8a4d8b89 add a icon for creating a torrent 2008-10-07 19:46:16 +00:00
85ea737b0d Changed max half-open connections default limit to 8 on XP/2000 and 4 on
Vista
2008-10-07 08:54:19 +00:00
ee7edca06f Add new RPCServer class .. Not in use yet. 2008-10-07 02:23:20 +00:00
1004b8091f Set max connections per second default to 20 since this seems to fix
the slow speed issue that some people experience.
2008-10-06 10:58:28 +00:00
399304b8d4 rename the graph plugin to the stats plugin 2008-10-05 16:04:11 +00:00
90ccd65ea9 save stats,session totals 2008-10-04 21:39:33 +00:00
fafc2a4b76 fixed input line bug lines were not wrapped correctly 2008-10-04 20:02:00 +00:00
ff52254924 sanitize filter_dict input 2008-10-04 10:20:08 +00:00
6cd0ab30a5 merge the stats from status into the stats dict (allows additional stats
to be added more easily)
2008-10-04 10:10:49 +00:00
41d955a5ea fix logout 2008-10-04 09:59:41 +00:00
7c0e2fb813 remove pycha 2008-10-04 09:47:59 +00:00
d1fba0c3b0 dht graph 2008-10-04 09:42:40 +00:00
e075f46d6a improve the graph code 2008-10-03 13:49:45 +00:00
9b47465052 Make some toolbuttons translatable 2008-10-02 18:42:31 +00:00
3b29956346 pycha-tests 2008-10-02 00:56:35 +00:00
4b33809529 pycha:initial prototype with unmodified pycha_line_deluge 2008-10-01 22:40:35 +00:00
4da4b5ac03 pycha test 2008-10-01 22:10:49 +00:00
4f846d6f7c lt sync 2749 2008-10-01 19:11:13 +00:00
c57939baa2 Fix add_torrent_url() to download the torrent file in a thread to
prevent the main thread from blocking and causing the daemon to freeze.
2008-10-01 18:31:55 +00:00
435ef112fb fix the data checking 2008-10-01 08:02:45 +00:00
6db92cccb3 change to a more robust test 2008-10-01 07:50:32 +00:00
6333b32e0b include new mooui that contains some IE fixes 2008-10-01 07:47:10 +00:00
1c21066fec add a check to ensure data was returned and ignore otherwise 2008-10-01 07:28:13 +00:00
2765a97506 Prevent libtorrent from starting the default plugins and features. 2008-10-01 02:19:44 +00:00
c668a59a82 Fix resume saving on shutdown 2008-09-30 23:30:26 +00:00
7ed2d7c87a lt sync 2744 2008-09-30 22:37:50 +00:00
a449610e15 update bindings 2008-09-30 21:38:39 +00:00
26b872dee9 Implement #368 add torrents by infohash/magnet uri (trackerless
torrents)
2008-09-30 19:07:10 +00:00
87f3e1e3b8 Initial support for renaming files
Save .torrent file for torrents added by infohash or magnet uri
2008-09-30 18:45:32 +00:00
1cb4559362 graph plugin; initial commit 2008-09-30 18:05:16 +00:00
92608b436b add spinners in for the required fields in the preferences page 2008-09-30 16:44:57 +00:00
df84e34660 quick update to mooui fixing a recursion error 2008-09-30 16:27:17 +00:00
27d2a86c74 update to compressed version of mooui that includes spinners
use spinners on the options tab
2008-09-30 16:22:52 +00:00
789f4911bc grab the no connections and free space icons from the classic template 2008-09-29 23:16:45 +00:00
a2ba0c556f update the labels style 2008-09-29 23:15:44 +00:00
e250b7aaf4 Fix display of tracker error messages 2008-09-29 23:11:17 +00:00
a7f1704c28 huge update to mooui
continuting change to camelcase
2008-09-29 23:09:44 +00:00
92987a05cd Fix attempting to blink system tray icon when it's not enabled 2008-09-29 22:30:53 +00:00
244a437d1b Change the default max global upload slots to 4 instead of -1 since
libtorrent will automatically open more slots to meet the upload speed 
limit.
2008-09-29 19:12:27 +00:00
3867989dbd add some title strings for the items in the status bar 2008-09-29 12:26:36 +00:00
ccdb270b38 improve the statusbar css and add diskspace and incoming connections to
it
2008-09-29 12:23:49 +00:00
ec1513a2c4 fix error in IE7 2008-09-29 10:15:11 +00:00
a240cca0c6 update the TODO list 2008-09-28 14:37:21 +00:00
9933536892 fix the filtering within the grid
also fixes a torrent remaining if it's the last one removed
2008-09-28 14:34:24 +00:00
8d7e762b0a revert fork for now 2008-09-28 03:15:59 +00:00
20fe87868f copy some css needed to layout the preferences window correctly 2008-09-28 02:22:43 +00:00
7d2b566ec4 add enable auto add checkbox 2008-09-28 00:16:01 +00:00
be12f0e316 fix ajax install 2008-09-27 21:58:15 +00:00
5ba23ad5c2 fork webui to free terminal 2008-09-27 21:52:00 +00:00
a90c709d3b add some documentation 2008-09-27 17:20:05 +00:00
04abf85433 hugely improve the labels bar and disable filtering until i fix the grid 2008-09-27 17:11:02 +00:00
80659e882e update TODO
add an icon for the All states filter
2008-09-27 12:00:58 +00:00
f23d65364b traffic filter 2008-09-27 08:39:27 +00:00
fd544834e4 fix wrong method being called for menu clicks 2008-09-26 18:02:54 +00:00
eea926fadf fix persistent sessions 2008-09-26 17:43:25 +00:00
a038ca8df8 webui statusbar:add space,has_incoming_connections 2008-09-26 16:21:00 +00:00
14c1586d77 remove statusbar api 2008-09-26 15:56:40 +00:00
61b7b17fbb fix get_stats docstring 2008-09-25 20:59:32 +00:00
db6764ea9b statusbar api prototype 2008-09-25 20:56:05 +00:00
dbed97349c lt sync 2726 2008-09-25 20:45:31 +00:00
be27d97952 changelog 2008-09-25 19:21:44 +00:00
19cb72db58 changelog 2008-09-25 19:20:15 +00:00
c67bfe74a7 persistent sessions #486 2008-09-25 19:08:43 +00:00
5457cdcd80 Fix #503 change the boost lib detection logic to first look for -mt
and if not available, fall back to regular boost lib (non-multithreaded)
2008-09-25 03:30:08 +00:00
b47c4ad760 Fix #187 set a 5 second timer to save the config file after a config
value has been changed.
2008-09-25 02:03:58 +00:00
e32ce5b265 added 'all' subcommand to resume and pause, moved share ratio to general info view 2008-09-24 18:53:22 +00:00
a27b0c6329 Add the ability to add plugins from the plugins preference page (from
.eggs)
Add a rescan for plugins button to rescan the plugin folders
2008-09-24 01:23:38 +00:00
af0bd07d3e removed the 'builtin' commands and made 'help' a normal command. 2008-09-23 22:30:21 +00:00
4d79df5880 licence update fir webpy related files 2008-09-23 20:01:22 +00:00
335c50ec03 #483 2008-09-23 19:48:08 +00:00
35ac3dda26 fix webui add url: #483 2008-09-23 19:35:09 +00:00
35aa1aaec2 unregister->deregister fix #488 2008-09-23 19:20:24 +00:00
8a00b046d5 update create_plugin 2008-09-23 18:29:55 +00:00
bb7c5cb4af egg_render for templates files in plugin/templates (#497) 2008-09-23 17:34:57 +00:00
a870101dbe egg_handler for static files in plugin/data (#497) 2008-09-23 06:15:40 +00:00
ffb2de165d Fix #500 add scrolled window to sidebar 2008-09-22 23:17:51 +00:00
704ed1d0a8 fix missing gtk-add 2008-09-22 21:46:11 +00:00
868612413d adding null2 ui alongside the current null ui 2008-09-22 19:07:52 +00:00
71bc34be0d some name changes to camelcase and a few fixes for IE7 2008-09-22 14:07:32 +00:00
52cbd0a435 fixes a bug in IE7 2008-09-22 13:35:36 +00:00
9f3b3b32f2 fix the formatting in the menus file, and convert all displayed text to
use the gettext replacement.
2008-09-22 13:08:39 +00:00
a412547584 move away from the monolithic file approach and split out into smaller
more managable files. begin implementation of a javascript gettext.
this may break some things in the ajax ui.
2008-09-22 12:46:12 +00:00
cf6266e545 remove fsize 2008-09-21 20:09:34 +00:00
0712da0fd0 clean up free space 2008-09-21 19:52:47 +00:00
6465c8eede add free space of default save_path 2008-09-21 19:27:26 +00:00
dc49a43e70 lang updates 2008-09-21 03:06:21 +00:00
9d5be3e631 lt sync 2696 2008-09-21 01:44:11 +00:00
ec180b3735 Fix upgrading from 0.5.x state where torrents would have no trackers 2008-09-21 01:38:43 +00:00
68974ff459 Implement #28 Create Torrent Dialog 2008-09-21 00:33:37 +00:00
aec7f35a71 Add 'get_path_size' core method 2008-09-20 02:27:29 +00:00
f8c9d5f7ca Remove more un-used files 2008-09-20 02:25:55 +00:00
be09642542 Remove file, it is not used 2008-09-20 02:22:49 +00:00
31a157091a Allow adding multiple trackers at once in the edit tracker dialog 2008-09-20 02:08:56 +00:00
42d239c91a lt sync 2690 2008-09-19 22:57:05 +00:00
cb865f1373 Add metafile module for creating torrent files 2008-09-19 21:49:54 +00:00
e64595120e Include GeoIP database for country look-ups 2008-09-19 20:11:50 +00:00
58bca167b3 Change torrent.OPTIONS to a new TorrentOptions object 2008-09-17 00:26:14 +00:00
e48c091764 lt sync 2676 2008-09-16 02:39:03 +00:00
f285f607cd Convert unicode to str before saving to config. This should fix unicode
path issues.
2008-09-15 19:53:07 +00:00
42ca7b97bd Fix fastresume saving on shutdown 2008-09-15 17:06:36 +00:00
587edbb0b0 Fix setting file priorities on folders 2008-09-14 20:49:45 +00:00
fa0d3b9bfc Only show the error when displaying the tracker_error 2008-09-14 20:31:21 +00:00
479e6c3484 Fix move_storage when using unicode path 2008-09-14 20:16:35 +00:00
7786f6ca08 Update changelog 2008-09-14 20:11:32 +00:00
5e41c7ce78 Fix #475 the use of unicode paths when adding torrents 2008-09-14 20:08:19 +00:00
6ecf9125e6 include faq 2008-09-14 19:02:06 +00:00
3217113583 Load ut_metadata extension 2008-09-14 18:32:00 +00:00
fb0f1b9319 force local only 2008-09-13 23:01:53 +00:00
9c2658d833 Fix adding torrents with only 1 file 2008-09-13 22:26:11 +00:00
b9d1367564 allow network mounts in right-click->move torrent 2008-09-13 03:10:52 +00:00
eec5005214 Fix moving on complete 2008-09-13 02:58:45 +00:00
6bcb7fccf5 allow network mounts 2008-09-13 00:31:59 +00:00
9807b43ae7 Remove icon, no longer used 2008-09-12 22:12:26 +00:00
ee9a5a19c1 Added support for adding torrents by infohash
Fixes to magnet uri stuff
2008-09-12 08:47:33 +00:00
3afb542f06 Switch to torrent_handle::save_resume_data which makes resume data
writing async
2008-09-11 09:20:29 +00:00
6bd701e961 Add missing icon 2008-09-09 14:23:20 +00:00
ccb53e48a9 Start work of magnet uri and trackerless torrent support 2008-09-09 14:06:05 +00:00
c906b50d11 Fix add torrent dialog for torrents with only 1 file 2008-09-08 05:42:34 +00:00
ee071dcece Fix building when not using debug build 2008-09-08 05:24:49 +00:00
c78de8f0aa lt sync 2667 2008-09-07 10:44:46 +00:00
b210a81967 Prevent libtorrent from crashing when 'announce' is not in the tracker
url.
2008-09-07 08:46:41 +00:00
4bd88df4de Remove dependency on libtorrent for add torrent dialog 2008-09-07 05:26:03 +00:00
cc128029f9 Update the create torrent dialog a bit 2008-09-07 01:44:45 +00:00
e614c2dc3b Fix last by just always deleting the fastresume file before writing a
new one
2008-09-06 22:24:35 +00:00
deb00e332e fix problem with old fastresume files not being replaced causing loss of data and dont resave fastresume for seed files 2008-09-06 20:11:12 +00:00
2cd39233da update the TODO list 2008-09-04 02:07:43 +00:00
f9dadd215d add the extra fields to bandwidth and network
add the required changes to the css and javascript
2008-09-04 02:05:43 +00:00
5eaf9dd259 refresh to match the gtk client 2008-09-04 01:15:13 +00:00
818b626440 Ensure PreferencesManager is started before other components. 2008-09-01 02:22:08 +00:00
93e6ef144e lt sync 2650 2008-09-01 02:02:04 +00:00
b6d05c01e8 Make a copy of the default options to prevent torrents from sharing
references
2008-09-01 01:55:13 +00:00
89ed0d5d41 add gtk stock clearing script and update glade files 2008-08-31 23:37:02 +00:00
0222272c45 Update Changelog 2008-08-31 22:14:31 +00:00
797578d0cf Add dht icon svg file 2008-08-31 21:06:42 +00:00
0c203b0a96 Fix various issues when not using English 2008-08-31 20:20:16 +00:00
0792ad21cd Fix paused torrents not being paused upon restart 2008-08-31 01:17:43 +00:00
c2a24bce8a Fix tooltips from disappearing 2008-08-31 00:55:07 +00:00
ec368d6c70 Fix typo 2008-08-31 00:03:14 +00:00
ea16f2ca8f Fix a typo 2008-08-30 23:42:39 +00:00
c410f6d242 Fix some typos 2008-08-30 23:40:57 +00:00
3237abacc4 webui: use sclient.get_stats 2008-08-30 23:14:05 +00:00
d6a3c55efa get_stats in core 2008-08-30 22:58:19 +00:00
5d19e72ab4 fix label keyerror 2008-08-30 22:06:49 +00:00
1ef26beeea label-filtering to core-filtering for webui and json 2008-08-30 11:52:41 +00:00
4abaa514fe background-color 2008-08-29 19:11:26 +00:00
aaa5660fa8 docgen 2008-08-29 18:01:44 +00:00
459a64db6d Fix add torrent dialog closing preventing another dialog from being
shown
2008-08-28 20:42:19 +00:00
ed59331c90 Implement #352 set_torrent_options method in core 2008-08-28 04:40:49 +00:00
015350dc04 Fix typo in [3766] 2008-08-28 04:03:39 +00:00
aebd6e2f29 lt sync 2642 2008-08-28 03:56:28 +00:00
b3d5a8a808 Remove test plugin 2008-08-28 01:56:00 +00:00
570b2df000 Have setup use boost-mt libraries if boost libs are not found 2008-08-28 01:53:17 +00:00
8adff80271 lang sync 2008-08-27 01:17:39 +00:00
9e27cb5d15 up version in debs 2008-08-27 01:04:41 +00:00
b07fc8d009 Fix #453 allow showing of text in the toolbar buttons 2008-08-26 23:11:47 +00:00
cb50fb5eb3 Fix setting file priorities on folders 2008-08-26 23:00:12 +00:00
ab4435ee29 Tracker errors now change the tracker status 2008-08-26 22:38:22 +00:00
2d7944cbb7 Fix #455 force recheck on completed torrents causing crash 2008-08-26 21:34:51 +00:00
de5dd796d0 lt sync 2637 2008-08-26 01:03:39 +00:00
dc5e3d9bfa fix label-options 2008-08-25 22:06:34 +00:00
ad7e1cc4bc label-plugin:remove obsolete prefs 2008-08-25 21:49:38 +00:00
df3471085c sidebar_menu 2008-08-25 21:30:00 +00:00
39025191d7 label-plugin:re-enable sidebar popup 2008-08-25 21:28:21 +00:00
3c183906d1 fix multiple-resume, there is no torrent_resumed method in core 2008-08-25 20:02:02 +00:00
9c0f855736 default filter menu, (to be extended by plugins) 2008-08-25 19:48:09 +00:00
8899bec6c3 lt sync 2630 2008-08-25 16:42:22 +00:00
2b8e235e8a Fix sidebar view option to be persistent between sessions 2008-08-25 08:23:31 +00:00
aceab3cd11 translator updates 2008-08-24 10:37:15 +00:00
6a6bedbf67 lang sync 2008-08-24 10:04:28 +00:00
239fcfd533 Fix show/hiding of sidebar 2008-08-24 06:03:22 +00:00
1747bd9894 Prevent selecting filter view category labels 2008-08-24 05:53:56 +00:00
2d26005dcf Prevent notebook from being shrunk by vpane 2008-08-24 05:31:28 +00:00
36118b3d02 Add saving/loading of lt session state 2008-08-24 04:52:14 +00:00
8a39b7dcd5 Add 'PreferencesManager' component.
Clean up core.py a bit.
Fix DHT state saving/loading
2008-08-24 04:36:10 +00:00
550b101747 Fix bug in Blocklist that prevented downloading of new file every X days 2008-08-23 13:00:35 +00:00
0c79d1a10b lt sync 2626 2008-08-23 05:49:39 +00:00
c32af5ac95 Sort filenames alphabetically in add torrent dialog 2008-08-23 03:57:37 +00:00
07eaf8ed36 Sorting # column will place downloaders above seeds 2008-08-22 08:11:15 +00:00
90d310edd4 lang updates 2008-08-22 07:56:33 +00:00
231edf5931 Attempt to upgrade a 0.5.x state file to new format. 2008-08-21 20:43:01 +00:00
57733501d2 remove some filtering logging 2008-08-20 18:08:59 +00:00
90a4b3e1ed lt sync 2613 2008-08-19 07:22:20 +00:00
d8b0fb5885 filter_tree:add label-plugin and init_func 2008-08-18 20:23:27 +00:00
aa4ed4a6c6 core filtering in gtkui;breaks label plugin 2008-08-18 18:41:31 +00:00
eee10dab76 get_filter_tree 2008-08-18 18:05:48 +00:00
1b03c0eff4 Fix #407 possible negative ETA 2008-08-18 00:36:19 +00:00
46fe490ba0 Expand root folder in files tab by default 2008-08-17 23:31:54 +00:00
0918272480 Fix not displaying file list when state changes 2008-08-17 23:24:16 +00:00
0f1f5529ba fix open folder/file in windows 2008-08-17 22:40:59 +00:00
dbdc72913c Fix torrentview sorting to be persistent 2008-08-17 22:26:48 +00:00
d2e5f157fa Fix #415 crash when using 'config-set' with no parameters 2008-08-17 18:06:08 +00:00
8c6a7a86c1 Fix size units to be more accurate 2008-08-17 17:51:31 +00:00
5647f61bab Fix to prevent Deluge from segfaulting when trying to autoadd an
incomplete torrent file
2008-08-17 17:27:56 +00:00
e720994f5f Fix properly shutting Deluge down when system shuts down 2008-08-17 04:51:28 +00:00
477d5c0def Fix not showing new torrents if you don't use the All label first 2008-08-17 04:18:59 +00:00
b1947d508d lang updates 2008-08-17 02:58:45 +00:00
1edc4bfe73 Fix-up the main startup code a bit so that Windows is always logging to
a file and config folders are properly created for the daemon
2008-08-17 00:56:29 +00:00
d3b005f30d registered filters:keyword 2008-08-17 00:12:28 +00:00
143c1661fe lt sync 2607 - fixes upnp 2008-08-17 00:10:56 +00:00
14a6efef2b Fix loading torrents from state when fastresume file is missing 2008-08-16 23:55:45 +00:00
b48c487acb move filtering to filtermanager 2008-08-16 23:07:10 +00:00
862cec9e0a use core filtering for torrentview 2008-08-16 21:54:03 +00:00
5c1ec8dbb3 move client tests 2008-08-16 15:35:37 +00:00
a26beda19b reformat test 2008-08-16 15:29:00 +00:00
4ea2bf9447 disable label plugin for webui 2008-08-16 15:04:12 +00:00
14db4bc999 change get_torrents_status() api for filtering in core 2008-08-16 14:48:43 +00:00
f1427b7dd5 Fix hiding the bottom pane when disabling all the tabs 2008-08-16 05:28:12 +00:00
ad11029780 get_status -> get_dev_torrents_state 2008-08-15 22:00:22 +00:00
080ff5974d basic get_status() 2008-08-15 21:00:28 +00:00
0469d46717 add get_status_keys() 2008-08-15 20:39:32 +00:00
1170a1cf31 remove trailing space 2008-08-15 19:38:14 +00:00
4ab3577172 Add a test script for testing the signalreceiver 2008-08-15 18:36:04 +00:00
00ed73f453 Fix Notification stop icon blinking when window is exposed. 2008-08-15 18:35:29 +00:00
8bebfc918e Improve performance of initial torrent list load 2008-08-15 03:50:25 +00:00
f4302c95ef popup-options sensitivity 2008-08-14 20:08:10 +00:00
ef90516d0c label-popup enhancements, fixes #370 2008-08-14 19:48:22 +00:00
9333291019 Fix Vista slowness fix, by not actually changing the 'uri', but simply
replacing 'localhost' with '127.0.0.1' when creating the xmlrpc object.
2008-08-14 07:03:04 +00:00
19f9e26a4e Fix #362 use libtorrents session pause/resume instead of current
pause_all, resume_all
2008-08-14 06:48:20 +00:00
e21183f125 Add an additional check in the try statement to prevent loading invalid
torrents
2008-08-14 06:46:35 +00:00
a6700ba22c Fix the config value when changing from NoneType to something else 2008-08-14 06:37:20 +00:00
c4d620f0b9 Fix setting None for config value 2008-08-14 05:58:58 +00:00
bc64bed102 add 'edit' tracker to edit trackers dialog 2008-08-14 01:11:54 +00:00
1aa727db3d cleanup previous 2008-08-13 20:10:14 +00:00
173ad0226d move_completed_to 2008-08-13 20:01:18 +00:00
3883386fcc Fix Vista slowness issue 2008-08-13 19:40:41 +00:00
0b2a9a2025 fix 1st popup 2008-08-13 18:46:00 +00:00
fe2b8bf5d4 asio changeset 48031 - cpu spike fix (hopefully) 2008-08-13 02:37:14 +00:00
07f65d8a22 improve the theme changing so it now checks to see if the stylesheet is loaded before refreshing the ui 2008-08-12 12:02:30 +00:00
8d05d4f2c5 add type checking to config values (Closes: #353) 2008-08-12 11:13:41 +00:00
0ed48a6cd8 lt sync 2599 2008-08-12 10:16:00 +00:00
939c9f34a9 lt sync 2598 2008-08-12 08:44:12 +00:00
a997758eb2 lang sync 2008-08-12 08:26:24 +00:00
aa875103b5 lang updates 2008-08-12 08:17:35 +00:00
96d1629857 tidying up the mootools javascript files 2008-08-12 07:55:45 +00:00
c75e2e13a2 merge deluge and deluge.widgets again.
fix a bug where templates were adding to the select box each time the preferences page was opened
2008-08-12 02:12:02 +00:00
99dd60ca84 fixed css error, increased the delay before refreshing the ui to give the stylesheet more time to load 2008-08-11 23:38:38 +00:00
fd004a1d07 fix the changing of the theme on the fly 2008-08-11 23:31:03 +00:00
7f4b433e49 add a simple loading screen that hides the UI until the theme is loaded 2008-08-11 22:27:06 +00:00
5a3e1d06d2 fix preferences order 2008-08-11 20:56:55 +00:00
d89d4f7e38 fix the type setting 2008-08-10 22:32:07 +00:00
8e45e77c74 fix typo of a method name 2008-08-10 22:28:35 +00:00
5a6fda0afe add some checking to ensure the correct type is being sent back so the config isn't broken. 2008-08-10 22:25:38 +00:00
7ddee092e0 new mooui with a "beforeShow" event in the window class
make use of this new event in the preferences window to get the values before the window is shown
2008-08-10 21:32:27 +00:00
75936dd1ab add a hacky change to the config dictionary to allow the generic preferences class to be used. 2008-08-10 21:17:00 +00:00
af1f2205bb Add per-torrent move on completed settings 2008-08-10 02:53:56 +00:00
886939d64d gpl fix 2008-08-09 12:57:19 +00:00
3928180cc9 bash fix 2008-08-09 12:49:02 +00:00
6dbbb254e2 minor fixes 2008-08-09 08:12:22 +00:00
faeddbdf46 more gpl3 switches 2008-08-09 00:04:27 +00:00
60479e9fef create plugin script 2008-08-08 23:56:07 +00:00
6fa31d1dc0 change copyright notices to gpl3 2008-08-08 05:59:07 +00:00
a2605b4717 lang sync 2008-08-08 05:19:55 +00:00
8e80b4121b Fix homepage link in about dialog 2008-08-07 00:37:48 +00:00
b56e4bc74e initially hide sidebar categories 2008-08-06 19:08:02 +00:00
5ba3ab43ca visually improve download prefs2 2008-08-06 18:41:15 +00:00
e4d2df4327 visually improve download prefs 2008-08-06 17:55:59 +00:00
b4ee52cbdd auto label on add 2008-08-06 15:39:02 +00:00
cba7b00f70 Add ability to register handlers for signals emitted in the core. 2008-08-05 23:32:12 +00:00
7ade350a3a allow changing of global core options 2008-08-05 21:30:17 +00:00
c902bca4cd select-all button 2008-08-05 21:17:53 +00:00
e1a7adeae5 fix auto-add 2008-08-05 20:32:42 +00:00
b20add89e4 auto-add on tracker 2008-08-05 20:11:00 +00:00
4c2ecbd29d manage None sound path 2008-08-05 02:47:47 +00:00
a22f2117bc Fix move storage dialog when connected to a remote daemon 2008-08-05 01:17:56 +00:00
9fedc86172 lt sync 2588 2008-08-04 23:32:18 +00:00
25309fc007 glade tweaks 2008-08-04 18:50:34 +00:00
389e42b970 show/hide prefs for sidebar-categories 2008-08-04 18:05:15 +00:00
f94a264bb4 sidebar:add-menu on label node 2008-08-03 22:18:40 +00:00
6133903608 sidebar: show/hide root nodes 2008-08-03 22:02:06 +00:00
53f6909b6e Fix drag n' drop in windows 2008-08-03 20:12:35 +00:00
520dab70d0 remove ajax_demo from setup 2008-08-03 20:08:50 +00:00
8f5e46a4ea more label options 2008-08-03 20:05:57 +00:00
684b9f965e tweak alphabetical order 2008-08-03 07:17:28 +00:00
5d9ff4b28a remove ajax_demo template 2008-08-02 10:20:32 +00:00
2c2717b90e add translators to credits 2008-08-02 07:19:25 +00:00
228286a3c7 fix libtorrent portion of license 2008-08-02 06:18:10 +00:00
1e2ea13e4a fix typo 2008-08-02 06:07:43 +00:00
b2b3be3887 update control to gpl3 and copyright info 2008-08-02 06:04:53 +00:00
46fc6a6f77 revert last 2008-08-02 05:55:09 +00:00
c49855eec2 add json to dependency list 2008-08-02 05:51:26 +00:00
42e05a0cd8 lang sync 2008-08-02 05:44:28 +00:00
dafd336cf7 fix unload of lable plugin 2008-08-02 05:10:36 +00:00
5f03ea785c Fix queue order shuffling on restart 2008-08-02 04:31:30 +00:00
1bfe866638 Fix blocklist when no file is downloaded 2008-08-02 04:20:11 +00:00
189e01f424 Save resume data periodically 2008-08-02 03:12:15 +00:00
1c94623569 Minor ui tweaks regarding selectable labels 2008-08-01 08:21:51 +00:00
d76c6b991e label options ui 2008-07-31 21:02:53 +00:00
d6928f7520 Fix the need to call TorrentView.create_model_filter() after adding a
new column.
2008-07-31 10:09:02 +00:00
b5a31f67f2 lt sync 2584 2008-07-31 09:43:54 +00:00
3736fbf8eb update sound tooltip 2008-07-31 02:51:21 +00:00
d9b17ec2af small change to get the current theme and set it in the select box 2008-07-30 21:19:16 +00:00
7dc16ec20b move gtk-label config to sidebar 2008-07-30 19:35:43 +00:00
9a00d4db39 Add progress to the peers tab 2008-07-30 14:15:00 +00:00
221c0c31a4 lt sync 2583 2008-07-30 09:55:58 +00:00
e1cc2d9e62 Fix outgoing ports preferences 2008-07-30 09:55:27 +00:00
5706b80cb2 Implement #296 ability to change peer TOS byte 2008-07-30 06:52:20 +00:00
af98a45606 Add tooltip to Classic Mode preference 2008-07-30 05:45:34 +00:00
efb4462d37 Implement #79 ability to change outgoing port range 2008-07-30 05:37:17 +00:00
e93e1391a4 Add setting outgoing_ports in libtorrent 2008-07-30 05:29:57 +00:00
dd4fc26877 Improve Blocklist preferences page 2008-07-29 08:00:50 +00:00
48ab9d7522 Fix shutdown() to accept any number of arguments 2008-07-29 05:47:49 +00:00
971c7e6f1d Fix deluged running with ssh X forwarding by removing the Gnome lib
import
2008-07-29 04:22:03 +00:00
886f0f0495 rename to deluge.ico 2008-07-29 03:39:20 +00:00
8c57d2dc37 add ico file so we can make '.torrent' files use our icon instead of python's in windows 2008-07-29 03:35:54 +00:00
3ec61a1d3f Double-clicking on host in ConnectionManager now will connect to that
host
2008-07-28 23:38:24 +00:00
85e8a29ef3 sidebar:hide tab headers if there is only 1 tab 2008-07-28 18:58:00 +00:00
7cd83f8d05 remove default-sidebar, make plug-in-able 2008-07-28 18:22:44 +00:00
7128b129d4 Fix signalreceiver when switching between daemons 2008-07-28 12:02:01 +00:00
8597110e02 add rc4 to release 2008-07-28 07:33:18 +00:00
9f69cccd02 got pygame working on windows, so we no longer need this windows check 2008-07-27 03:52:07 +00:00
6195627caf oops, add missing file 2008-07-27 02:53:28 +00:00
cf42970943 finish up notification - now fully works including email 2008-07-27 02:23:41 +00:00
2ca1a61f32 more notification work - still not finished 2008-07-26 22:03:15 +00:00
9d13a82d0b Touch up the preferences a bit 2008-07-26 15:44:28 +00:00
05fc9a7d26 initial import of the ajax webui template 2008-07-26 15:26:00 +00:00
91ff2cb58f remove uneeded print from my patch which accidentally got left in 2008-07-26 12:08:04 +00:00
327de6f5cd Fix view options to be persistent between sessions 2008-07-26 08:12:34 +00:00
cac6b42449 adjust header spacing 2008-07-26 07:56:37 +00:00
998078b99c add missing hsep 2008-07-26 07:53:29 +00:00
0a3d1f64de fix last 2008-07-26 07:46:59 +00:00
8296e737ef start of torrent notification - doesnt yet work 2008-07-26 07:21:51 +00:00
5784b2adbb Fix do not create torrentfiles folder unless 'copy_torrent_file' is True
Fix some libtorrent asserts when using debug build
2008-07-26 03:50:10 +00:00
92f2b369ca save/load dht state - close #359 2008-07-26 03:36:15 +00:00
fb09106928 lang sync 2008-07-25 22:05:14 +00:00
93c3d47287 update template strings 2008-07-25 20:01:25 +00:00
a684994527 fix previous commit 2008-07-25 18:42:58 +00:00
5013ea842a add scheduler script from #382 2008-07-25 18:32:56 +00:00
e84e090c8e json:get_webui_templates 2008-07-25 17:29:10 +00:00
4cc5ccd0b8 coreclient, plugins can use the ui.client interface 2008-07-25 16:08:12 +00:00
4b3ffd0aca Revert back to 0.6c6 as 0.6c8 is not needed 2008-07-25 14:45:09 +00:00
45a7e2195a fix #381 2008-07-24 06:01:15 +00:00
53fa3ee3c3 Fix displaying of torrents when language is not English 2008-07-24 05:57:00 +00:00
a86046b770 revert tab i18n 2008-07-23 22:29:33 +00:00
1ee084f6fc make tab names i18n 2008-07-23 22:07:12 +00:00
c07dde715f lang sync 2008-07-23 21:55:37 +00:00
0fb159bd92 try to fix possible network/proxy problem 2008-07-23 19:55:02 +00:00
8d5d30205e sidebar style 2008-07-23 19:34:19 +00:00
4a3afad57f sidebar improvements 2008-07-23 18:30:39 +00:00
f79f5d9113 tracker-column:use connected or first 2008-07-23 17:08:33 +00:00
2f881fe734 Modify files tab right-click menu behaviour to that of torrentviews 2008-07-23 02:57:16 +00:00
0a362757a9 json get/set webui_config 2008-07-22 20:01:39 +00:00
adc9902252 mime-type guessing for /template/render/ 2008-07-22 19:24:57 +00:00
276cf262ed security fixes 2008-07-22 19:01:37 +00:00
498fbab03a improve /template/render/ 2008-07-22 18:24:42 +00:00
c5be051136 /template/render/ 2008-07-22 18:11:49 +00:00
f42f93d034 Display 'total_wanted' instead of 'total_size' in Size column 2008-07-22 06:44:28 +00:00
4440ecfdaa Fix building with gcc 4.3 2008-07-22 04:50:09 +00:00
313ed9dd62 Fix right-click selecting torrents. Behaviour is now similar to Nautilus. 2008-07-22 04:01:37 +00:00
b321535601 proxy support 2008-07-22 02:51:40 +00:00
4720104fe1 initial launchpad translation sync 2008-07-22 02:41:56 +00:00
62fdd4b03e Start of create torrent dialog. This does not work yet. 2008-07-22 00:38:55 +00:00
0e6dc927b3 Fix drag n drop adding of torrents with space in filename 2008-07-21 09:54:46 +00:00
6e35589ea9 Add missing file 2008-07-21 09:42:04 +00:00
9be504e2dd Fix logging typo 2008-07-21 09:40:39 +00:00
dbd476171c Update Changelog 2008-07-21 08:44:45 +00:00
f9fd9c3ba7 Set 'send_redundant_have' to True 2008-07-21 06:36:34 +00:00
98899d7ba5 Include LICENSE file
Change license type in setup.py to GPLv3
2008-07-21 00:58:10 +00:00
8866ff16c4 Remove TODO, most items converted to Trac tickets 2008-07-21 00:53:40 +00:00
a02e8f7603 Implement #342 drag n' drop on the main window 2008-07-21 00:01:04 +00:00
e73edcef8d Change version to '1.1.0_dev' 2008-07-20 22:41:04 +00:00
9930a311e7 Add 'tracker_host' torrent status key 2008-07-20 22:24:55 +00:00
a731da429b label:do nor register tracker_host as a status_field 2008-07-20 22:22:07 +00:00
b29f33c7e6 Add 'tracker' column to torrentview 2008-07-20 22:16:28 +00:00
79965ed5d5 label:update todo 2008-07-20 21:57:41 +00:00
699f93c4dc fix error on empty labels-list 2008-07-20 21:17:00 +00:00
99a5c07c8c label plugin (clean label/build dir) 2008-07-20 21:04:51 +00:00
8f8b87987b Update changelog 2008-07-20 20:34:18 +00:00
fefc78f468 Fix #358 properly emit torrent_removed signal to clients when torrent is
removed by queue system
2008-07-20 20:32:54 +00:00
692ff7a979 Add session::settings() to bindings 2008-07-20 20:18:27 +00:00
2789fe95be update lang files for rc3 2008-07-20 20:11:37 +00:00
8d5aa9c6e0 remove url validation 2008-07-20 19:11:02 +00:00
13f67b609b finally finish lt sync 2008-07-20 18:46:41 +00:00
4990d273a4 combine download/import 2008-07-20 07:29:55 +00:00
4368554937 less verbose label text 2008-07-20 07:11:31 +00:00
bef1a94b2b new and improved blocklist cfg 2008-07-20 07:06:31 +00:00
bdfdf0bf21 fix config template 2008-07-20 07:02:38 +00:00
ddf79fb062 add more global-bandwith settings 2008-07-20 05:51:36 +00:00
4ebba67fa4 fix logfile for deluge 2008-07-20 04:40:22 +00:00
f52ebbe541 fix alignment of description 2008-07-20 03:55:01 +00:00
f222b2737e Add some extra bandwidth settings 2008-07-20 00:44:02 +00:00
f61a8bb023 Show preferences page when clicking on blocklist statusbar item 2008-07-19 23:00:28 +00:00
5ed244cad6 Reset IP Filter when disabling blocklist plugin 2008-07-19 22:48:34 +00:00
64e8a34940 Blocklist updates 2008-07-19 22:37:40 +00:00
31a4c4159f Update changelog 2008-07-19 02:35:16 +00:00
29a8631b6f Do not try to pause a torrent that is already paused in the stop_ratio code 2008-07-19 02:11:28 +00:00
237c0978f4 Add new blocklist plugin 2008-07-19 02:09:53 +00:00
8d27c4e349 Remove broken blocklist plugin 2008-07-19 02:08:55 +00:00
f68d4a7896 Fix signalreceiver when connecting to remote daemons 2008-07-19 00:22:50 +00:00
0ccfb483ba Plugin system updates 2008-07-18 23:46:57 +00:00
dde58e80d7 Fix starting if tabs.state does not exist 2008-07-18 23:06:04 +00:00
9f1c536eb1 Remove 'mapped_storage.cpp' from the sources list 2008-07-18 22:50:30 +00:00
1fb61c426f fix spawn of deluged 2008-07-18 22:11:42 +00:00
c4b62fc1fc Preferences plugin fixes 2008-07-18 20:53:16 +00:00
461432bb70 fix previous commit 2008-07-18 19:40:50 +00:00
9d24f551fc sidebar 2008-07-18 19:34:11 +00:00
7eedaeedf3 Fix 'on_apply_prefs' plugin hook 2008-07-18 18:57:14 +00:00
864f69ef5d ajax-demo:file-upload auto-close 2008-07-18 17:44:56 +00:00
7faed7ec1c ajax-demo:file-upload auto-close 2008-07-18 17:44:26 +00:00
a218f0e6a2 begin transition to print being a function 2008-07-18 06:14:15 +00:00
4ac5d43d58 replace urllib.urlopen (which was marked as deprecated) with urllib2.urlopen 2008-07-18 04:10:01 +00:00
dac01416f0 replace tabs with spaces 2008-07-18 03:04:02 +00:00
0add52506b Fix #355 add python 2.4 support in systemtray too 2008-07-18 02:15:01 +00:00
65ccd2d7c1 Fix #355 support python 2.4 sha hashing 2008-07-18 02:09:54 +00:00
b62dfde447 Windows ipc fixes 2008-07-17 23:55:53 +00:00
ed9b472615 Another windows ipc fix 2008-07-17 23:40:51 +00:00
40ca2d7229 Another windows ipc fix 2008-07-17 23:36:49 +00:00
61358e7e31 Windows ipc fix 2008-07-17 23:30:03 +00:00
2021a0c048 Attempt fixing windows build 2008-07-17 22:55:19 +00:00
065e27b5f5 Fix windows ipc adding torrent to existing session 2008-07-17 22:32:39 +00:00
daecb4b984 Update changelog 2008-07-17 22:10:05 +00:00
553ccd0a38 Fix #350 stop seeds when stop ratio is reached 2008-07-17 22:09:30 +00:00
9b60cdd241 Handle an old 'tabs.state' gracefully by just using the defaults. 2008-07-17 20:39:07 +00:00
cfadbec2cf Fix #349 tab ordering when hiding/showing 2008-07-17 20:20:34 +00:00
88ca3bacd1 json:fix label filters 2008-07-17 18:42:13 +00:00
c2b1b59de3 damoxc patch:set_torrents_options 2008-07-17 18:41:03 +00:00
952b8dcea3 refix permissions that last rev reverted 2008-07-17 00:54:06 +00:00
85939e93ba lt sync 2543 2008-07-17 00:15:35 +00:00
310b428b78 Fix open folder 2008-07-16 20:03:23 +00:00
fe66f0f890 Update ChangeLog 2008-07-16 19:57:12 +00:00
9e59948c91 Fix building on FreeBSD 2008-07-16 19:56:59 +00:00
a100b84ebd lt sync torrent.cpp r2541 - file_progress fixes 2008-07-16 19:56:44 +00:00
32e3481ef1 fix logging typo 2008-07-16 17:08:49 +00:00
aaad0651e2 move from os.popen and os.popen2 to subproces.Popen for 2.6 compatibility as they've been deprecated 2008-07-15 22:29:35 +00:00
67ee5000ad move from sha module to hashlib module for 2.6 support 2008-07-15 22:18:37 +00:00
bbddd29d4b Deluge will now default to 'gtk' instead of defaulting to last used UI. 2008-07-15 19:59:09 +00:00
c266bd489f update json docs 2008-07-15 19:06:21 +00:00
f7066242da json,update_ui fix if label plugin not enabled 2008-07-15 17:50:12 +00:00
6a216c0122 refactor+enhance json api 2008-07-15 17:36:18 +00:00
9b12c231da Fix system tray locking 2008-07-15 07:06:41 +00:00
1209663595 Fix possible division by zero crash 2008-07-15 06:54:44 +00:00
c1622b23aa version up 2008-07-15 05:24:03 +00:00
2291db5be4 Update changelog 2008-07-15 03:16:42 +00:00
70c384191a Fix tray icon tooltip to use less characters for windows 2008-07-15 03:16:06 +00:00
eb9ba43984 Add 'ChangeLog' 2008-07-15 02:35:29 +00:00
2745bf8536 Fix libtorrent creating files with no read/write permissions 2008-07-15 02:30:23 +00:00
02ce32d5e2 Fix file progress percentages again 2008-07-15 02:17:39 +00:00
516945277e Fix status icon tray menu scrolling on windows 2008-07-15 01:55:12 +00:00
38fc6ba9e3 Fix showing system tray icon in windows 2008-07-15 00:50:50 +00:00
2030ba5e84 Fix removing tray on windows after shutdown 2008-07-15 00:39:20 +00:00
31bb4eface Fix displaying file percentages properly. 2008-07-14 23:17:20 +00:00
a2b2b4c3f4 webui:fix setup.py 2008-07-14 20:42:11 +00:00
7c2ca86968 options-tab:queue;prio first/last 2008-07-14 19:44:01 +00:00
8668e2eb8e update details+stats tab 2008-07-14 18:26:00 +00:00
ceaa06d1ad only create dirs if they dont exist - fixes crash 2008-07-13 20:16:50 +00:00
4f50438b61 lt sync 2537 2008-07-13 03:53:39 +00:00
bfe4cb0f71 Fix last 2008-07-13 03:40:22 +00:00
e600eae544 Update package description and authors 2008-07-13 03:33:56 +00:00
e1fb908f6e Update version to 0.9.01 for RC 2008-07-13 03:24:49 +00:00
93357de3c5 Move branches/deluge-0.6 to trunk 2008-07-13 03:23:06 +00:00
b57157a16d Create config folders if they do not exist 2008-07-13 02:58:02 +00:00
152c45b6ef Fix #338 do not continue in classic mode if 'deluged' is not available 2008-07-12 22:59:43 +00:00
e27d8bacd4 js:select first 2008-07-12 13:30:12 +00:00
f247884e66 fix label:set_global_options 2008-07-12 13:20:49 +00:00
cce3783c3f cosmetics: tweak icon+hr 2008-07-12 13:04:22 +00:00
63cb8189c4 cosmetics: tweak icon+hr 2008-07-12 12:59:23 +00:00
24c7504159 fix ie-javascript 2008-07-12 12:43:29 +00:00
ceafbfd990 label.core: assert->checkinput , regexp for label_id 2008-07-12 12:25:42 +00:00
421c439c21 fix pause/resume for queued torrents 2008-07-12 11:51:18 +00:00
82e6ab32bb label:gtkui,columns+delete label 2008-07-12 11:37:04 +00:00
7517bf89b7 label: remember filters 2008-07-12 11:26:47 +00:00
32e2e37277 label: remember filters 2008-07-12 11:18:27 +00:00
c1c2ce4244 white-templ: add deluge icon 2008-07-12 11:04:55 +00:00
dd54a6e592 disable daemon start/stop until it is fixed 2008-07-12 10:39:11 +00:00
563a8fa03d align login button 2008-07-12 10:32:02 +00:00
40126166ea fix queue config 2008-07-12 10:29:43 +00:00
b652934969 fix queue config 2008-07-12 10:27:29 +00:00
a8f89a90ca fix download config 2008-07-12 10:20:50 +00:00
c5aa8dd97b finish enable/disable plugin 2008-07-12 10:09:25 +00:00
255920fad9 json, add header 2008-07-12 06:54:36 +00:00
e6a8123939 check session in json api 2008-07-12 06:49:13 +00:00
f2120b1131 allow recreating filter-model after adding columns 2008-07-12 05:46:21 +00:00
69f8bd7f89 utf8 fixes in eventlogging plugin 2008-07-11 23:59:02 +00:00
a462abb5f3 fallback to CONFIG_DEFAULTS on unknown temnplate 2008-07-11 19:41:19 +00:00
03be7a6d8f remove advanced template, rename deluge to classic 2008-07-11 19:22:52 +00:00
0624b686fa torrent_files 2008-07-11 18:48:02 +00:00
de49037412 use deluge.common version in webui 2008-07-11 18:41:28 +00:00
9307778bea link to 0.6 faq 2008-07-11 18:22:31 +00:00
5b60bc2604 label plugin;gtk-disabled 2008-07-11 18:12:51 +00:00
cdf55da8d6 label templates/info pane position 2008-07-11 16:32:50 +00:00
cf71429e8e use rc version file 2008-07-11 10:09:13 +00:00
8003f246b7 Add 'Checking' state icon.
Add 'Checking' filter to sidebar.
2008-07-11 07:31:25 +00:00
1f97344b2f Fix showing 'Checking' state when doing a forced recheck 2008-07-11 07:30:33 +00:00
2b9663edce lt sync 2518 - mostly timeout fixes 2008-07-11 07:10:21 +00:00
c0bc622fca switch to 1.34.1 from 1.33 2008-07-11 06:58:20 +00:00
fe6a2c16f3 tweak deps and conflict/replaces 2008-07-11 06:54:33 +00:00
ecad391157 trick to have the tray icon go away on windows 2008-07-10 22:03:36 +00:00
7415061fde Fix 'always show add torrent dialog' when using classic mode 2008-07-10 08:33:19 +00:00
5d53128d92 Add '-D_UNICODE' to windows compile args. On windows, this will cause the file IO use wide character API, to properly support non-ansi characters. 2008-07-10 05:15:36 +00:00
053cba31cb Allow for shorter versions 2008-07-10 05:05:52 +00:00
f13ea7375e Allow versions with '-RC' tags 2008-07-10 05:02:40 +00:00
b3cc15c4a1 Update default prefs 2008-07-10 04:56:59 +00:00
2dc13bd68e Update some default prefs 2008-07-10 04:55:25 +00:00
f872263a45 Fix #317, commit patch from Sadrul to properly hide torrents when their
status changes from the selected filter in the sidebar.
2008-07-10 04:47:30 +00:00
ce66e22099 Add a hook 'on_show_prefs' for plugins to setup their pref options prior
to the preferences dialog showing
2008-07-10 04:46:48 +00:00
cc9acf19aa classic mode default on all 2008-07-10 04:42:49 +00:00
1c576164e8 cleanup/reorder a bit 2008-07-10 04:40:13 +00:00
382f9cf614 classic mode default on win 2008-07-10 04:39:07 +00:00
5a8662ae03 fix windows launching of daemon 2008-07-10 04:19:22 +00:00
19a2ae45e9 Try to fix daemon starting in windows 2008-07-10 03:42:43 +00:00
4d46faf014 asio 1.1.1 sync 2008-07-10 02:25:28 +00:00
63d36a4b70 lt sync 2515 2008-07-10 02:24:51 +00:00
ac9659469a cosmetics 2008-07-09 18:24:01 +00:00
979d540a63 Have the client disconnect from the daemon if a socket error or
xmlrpclib protocol error is encountered.
2008-07-09 12:49:11 +00:00
2423af8660 Set auto_managed to False when pausing and saving resume data on
shutdown.
2008-07-09 12:42:57 +00:00
1b811e1ecb lt sync 2510 2008-07-09 12:35:08 +00:00
a51638ed62 Fix alert handling to use message instead of msg 2008-07-09 09:59:33 +00:00
8f55b4f5ae Fix starting daemon from deluge in windows 2008-07-09 09:55:57 +00:00
e0ce28cb8f aclient: log exceptions; don't reset core-uri 2008-07-08 18:00:05 +00:00
50c8741a41 clamav plugin idea in todo 2008-07-08 08:36:28 +00:00
3cb046755e webui stuff in gtkui 2008-07-08 08:34:36 +00:00
34b530cb4c add adv bar to todo 2008-07-08 08:31:09 +00:00
a9f53c770b Use flag icons from www.famfamfam.com 2008-07-08 03:05:01 +00:00
b9c1f574c9 lt sync 2500 2008-07-07 22:31:37 +00:00
390d85b008 allow for udp trackers 2008-07-06 20:25:04 +00:00
c4dedadafe Fix typo 2008-07-06 07:36:56 +00:00
f1141b3f07 Actually fix typo 2008-07-06 07:34:49 +00:00
f45f0a081b Fix typo 2008-07-06 07:32:05 +00:00
ad45c6b658 Windows fixes 2008-07-06 00:47:08 +00:00
ec50c9cb41 windows fix 2008-07-05 23:43:38 +00:00
0ebcaa4d9b white-templ:green-iframe-->blue 2008-07-05 17:08:20 +00:00
3e3c0f718a filter_cat: doing it wrong, but it works.. 2008-07-05 17:00:31 +00:00
204b6a005a update TODO/add crappy label image/minor-code-fix 2008-07-05 16:40:51 +00:00
c5ad6d7e5a remove organize plugin 2008-07-05 16:34:46 +00:00
88d12ef63b persist filter_[cat/value] in redirects 2008-07-05 16:04:56 +00:00
14b5aabfa6 purging organize pt1 2008-07-05 15:38:07 +00:00
14d6dd55bc fix plugin-templating 2008-07-05 11:22:16 +00:00
0acd13aaca re-enable webui plugins 2008-07-05 07:49:26 +00:00
0e25062af7 use set_wrap_license and generalize license to make translation easier 2008-07-05 01:40:30 +00:00
622ab78b94 fix copyright symbol for some people 2008-07-05 00:57:04 +00:00
e91943d72b win updates for setup 2008-07-05 00:25:04 +00:00
cf54a107a4 fix typo in last 2008-07-04 23:57:15 +00:00
18d7026db7 fix path of config in windows 2008-07-04 23:14:05 +00:00
1f3e930df3 Some windows fixes 2008-07-04 22:36:46 +00:00
fa77fad0ff Fix typo for windows 2008-07-04 21:39:16 +00:00
4be277e353 Fix another typo 2008-07-04 21:21:57 +00:00
63bbe00eae Fix typo 2008-07-04 21:17:40 +00:00
400e47aa80 Fix #319 do not crash when changing file priorities 2008-07-04 19:37:21 +00:00
135a3d75f1 Emit 'torrent_status_changed' signal to the clients 2008-07-03 23:52:27 +00:00
bf70ff03a3 lt sync 2495 2008-07-03 23:48:15 +00:00
5d9d8a6741 Some minor code cleanups. Closes #318. 2008-07-03 22:16:15 +00:00
7427389739 move json.py to /lib 2008-07-03 19:32:52 +00:00
fd449c4b0c add json.py , easyer to distribute this way 2008-07-03 19:25:41 +00:00
e8a9d39e86 Rename _update to _update_list to prevent the component from calling
_update on start.
2008-07-03 04:06:25 +00:00
72add9da10 fix do_update for classic mode 2008-07-03 03:21:34 +00:00
4366233fc8 Fix issue where connectionmanager continues to poll servers even when
closed.  This also fixes the issue where tooltips would disappear after 
a second or so.
2008-07-02 23:39:28 +00:00
d6400431b8 Add missing file 2008-07-02 22:20:14 +00:00
0779618917 Remove DBUS dependency for Windows port 2008-07-02 20:04:57 +00:00
1f80de044b fix add 2008-07-02 18:40:35 +00:00
65e22936da add accelerator keys to add torrent dialog 2008-07-02 04:28:24 +00:00
9ceac125c8 i8n for statusbar tooltips 2008-07-02 04:01:32 +00:00
f9c2fc0720 fix shit :P 2008-07-02 03:50:47 +00:00
b5e986c3b4 Update asio 2008-07-02 02:02:28 +00:00
c4a4121060 Remove asio, updating next revision 2008-07-02 02:00:44 +00:00
71555ebd0a Update about dialog 2008-07-02 01:42:43 +00:00
3a40d81a38 Fix new release check 2008-07-02 01:31:20 +00:00
34354a25d5 Fix #311 add tooltips to statusbar items 2008-07-02 01:29:04 +00:00
5f1de26f58 Implement update checking 2008-07-02 01:19:43 +00:00
4026ac0bf2 Add 'torrent_finished' signal 2008-07-01 22:03:18 +00:00
69e24fe673 lt sync 2486 2008-07-01 21:51:16 +00:00
7dde05d5a3 Update .desktop file 2008-07-01 21:14:49 +00:00
0469f4b2d2 dont fork on win 2008-07-01 02:07:57 +00:00
59a7d8b947 json:add get_stats method 2008-06-30 17:48:40 +00:00
e2bc3dbd48 json:add get_stats method 2008-06-30 17:40:28 +00:00
6f87ba0646 json:add get_stats method 2008-06-30 17:33:01 +00:00
7e076a82a0 simplify do_redirect 2008-06-30 16:29:19 +00:00
649fd2495d Update .desktop file 2008-06-30 09:25:12 +00:00
4b68fa7d76 fix other speed dialog from tray 2008-06-29 05:18:10 +00:00
71bd04351e fix add from tray 2008-06-29 05:00:58 +00:00
43214712ef New command 'config-set' to change configuration values. This doesn't
work for list values yet.
2008-06-28 06:06:39 +00:00
be0b24369f Show colors, using ansi color codes. I have selected colors mostly
randomly. If someone wants to change the colors, feel free!
2008-06-28 04:30:37 +00:00
f24c8504e2 * Show peer information for the 'info' command.
* The first few characters from a torrent id can be used to identify a
  torrent for all the commands.
2008-06-28 03:24:14 +00:00
3201b59c4a Update glade file from #307 2008-06-27 23:54:21 +00:00
ce6c5142ce template layout fixes 2008-06-27 23:13:42 +00:00
fbbe7a9914 template layout fixes 2008-06-27 23:09:20 +00:00
e215493ee8 Fix #307 gui updates from Sadrul. 2008-06-27 23:05:49 +00:00
2c195e286c sync lang with launchpad 2008-06-27 23:04:58 +00:00
130831e63b lt sync 2454 2008-06-27 22:41:27 +00:00
01ae1cc06a fix gtk-cancel/gtk-ok translation in movetorrent and webseed plugins 2008-06-27 21:58:38 +00:00
632ce0c6fc Add 'Expand All' menu item to the files tab. 2008-06-27 08:31:11 +00:00
e1ceb07567 Try to fix issue where adding a lot of torrents at once crashes the
daemon.
2008-06-27 05:49:27 +00:00
0b590bfcda Fix #303 make port spinners insensitive if random ports is enabled 2008-06-27 05:37:38 +00:00
f45badc34d break webui if python-json is not installed 2008-06-26 21:59:34 +00:00
056dc50400 use header template in white index.html 2008-06-26 21:40:46 +00:00
22d75a7f43 cleanup 2008-06-26 21:12:17 +00:00
2641868cff remove incorrect comment 2008-06-26 20:36:12 +00:00
1aa4611e30 json-api+ajax demo 2008-06-26 20:31:50 +00:00
6a734dab69 Prevent setting file priorities if file priority list length does not
equal the number of files.
2008-06-26 15:28:09 +00:00
67d156973c Fix issue where fastresume is not being saved properly on shutdown when
using compact allocation
2008-06-26 09:36:48 +00:00
5cbf606503 fix faq/torrent_add 2008-06-25 17:29:55 +00:00
12f18ac3a4 use correct unit for total-size 2008-06-25 16:54:03 +00:00
a7b232845a disable https if pyopenssl is not installed 2008-06-25 16:21:23 +00:00
9fc8f431a5 2008-06-25 15:43:10 +00:00
c88fd0ab27 Fix #300 do not crash when 0-byte .torrent file is added 2008-06-25 14:21:36 +00:00
409a824d7d Fix #299 preserve filename in gtkui when using 'add by url' 2008-06-25 07:49:58 +00:00
0d273690d5 renaming config-file again 2008-06-25 05:18:25 +00:00
660ee3eeff finish renaming config-file 2008-06-25 05:15:10 +00:00
28aaa5fe3b lt sync 2458 2008-06-25 04:39:45 +00:00
7280465cd5 Some windows stuff 2008-06-25 04:37:43 +00:00
9648d2c6b0 Fix #298 resume torrentview and statusbar after presenting the window 2008-06-25 03:26:26 +00:00
a58b26c550 basic arrow up/down 2008-06-24 19:36:30 +00:00
76a19a7d5a change name of config-file; choose-files on add 2008-06-24 18:20:14 +00:00
5270d1fe4f Fix #294 prevent deluge from crashing when autoload folder does not
exist
2008-06-24 09:10:25 +00:00
60b2fa8893 Remove debug print 2008-06-24 07:46:00 +00:00
6cb4d27b7e lt sync 2453 2008-06-23 22:58:46 +00:00
eeedd79f45 Fix #292 clicking on the tray icon while using 'start in tray' 2008-06-23 22:10:49 +00:00
9d3d22e7f8 Fix possible crash on exit in clasic mode 2008-06-23 22:10:08 +00:00
2be6c2a5ed up version to 0.5.9.3 and fix plugin reporting 2008-06-23 19:37:15 +00:00
e905044445 Properly shutdown the daemon if changing from classic to regular 2008-06-23 06:47:06 +00:00
982fd4f292 Fix showing of Queued Torrents dialog when in classic mode 2008-06-23 06:35:23 +00:00
d9676aabca file_priorities 2008-06-23 04:18:06 +00:00
e43f2370e1 Add queueing options to the Options tab
Add setting auto managed from the torrent menu
2008-06-23 03:12:28 +00:00
f200cae0f0 Rename 'Move Torrent' to 'Move Storage' 2008-06-23 00:22:51 +00:00
48d18e3c52 Implement 'Classic Mode' 2008-06-23 00:12:30 +00:00
3ed6e59cae Process all alerts before shutting down torrentmanager 2008-06-23 00:11:57 +00:00
c5a7abe5d2 Fix _on_send_info 2008-06-22 23:25:15 +00:00
da1b4c68df lt sync 2440 2008-06-22 23:23:35 +00:00
888b57cd6f lt sync 2438 2008-06-22 23:07:51 +00:00
5bc3906863 Fix send_info and move_completed preferences when not connected to a
daemon.
2008-06-22 22:57:43 +00:00
c22cf5cf69 clear-button->clear image /me rants about default-buttons 2008-06-22 22:16:40 +00:00
b0cc183c0c Fix-up send info stuff 2008-06-22 22:14:59 +00:00
b9cde0e267 clear button for keyword 2008-06-22 21:59:58 +00:00
d6f783abf1 add forgotten pygtk version 2008-06-22 21:42:15 +00:00
38f10f2e1f add force-recheck image 2008-06-22 21:21:22 +00:00
617196f51c check-off stats 2008-06-22 21:19:24 +00:00
dd18152266 add send stats info 2008-06-22 21:15:05 +00:00
fe9664bce3 queue bottom/top 2008-06-22 21:03:51 +00:00
c7be9e3bfd q&d script to generate deuge.ui.client docs in wiki 2008-06-22 20:28:02 +00:00
13479f3985 rename 2008-06-22 19:52:33 +00:00
263c014715 connect page,better support for remote daemons 2008-06-22 19:50:00 +00:00
b6a300f687 no crash on invalid daemon+cosmetics 2008-06-22 19:25:23 +00:00
aad8a926d6 lt sync 2432
Add new queueing options
2008-06-21 19:02:15 +00:00
f921834d4f state_upgrade script 2008-06-21 10:36:12 +00:00
408abb5abe webui:more cosmetics:details+status 2008-06-21 09:24:36 +00:00
bc41329f2a cosmectics:queue 2008-06-21 08:56:32 +00:00
0a37faadc7 lenny/sid now use 2.5 and sid is called unstable in changelog 2008-06-21 06:16:49 +00:00
a7caeed0cb Add debian/ folder for packagers 2008-06-21 06:05:29 +00:00
0da3fed18d Change files tab to a tree view 2008-06-20 23:04:33 +00:00
5b4bb37e7d Hide the 'From Hash' button from the add torrent dialog, since it is not
operational yet.
2008-06-19 21:56:27 +00:00
8ca5682449 Update toolbar buttons on torrentview update 2008-06-19 21:55:00 +00:00
8f4a96c8e7 lt sync 2426 2008-06-19 21:51:59 +00:00
a206c6b3c4 fix typo 2008-06-19 01:36:22 +00:00
062e4d2a8a wpath fix 2008-06-19 01:24:19 +00:00
1454a4d4c0 lang sync 2008-06-18 22:14:32 +00:00
0f63847c34 update changelog 2008-06-18 22:11:34 +00:00
282f842663 Modify startup script to make a true unix daemon by using two fork()s
Work will need to be done to make deluged a windows service
2008-06-17 22:46:55 +00:00
f548dbce7c Include timestamps in log messages 2008-06-17 22:46:05 +00:00
3d5a1d3540 Join listening thread in signalreceiver on shutdown 2008-06-17 19:49:43 +00:00
2578ca3e21 Join listening thread on shutdown to make sure it exits properly before
terminating the interpreter
2008-06-17 19:46:15 +00:00
cb9db1658b Change 'active seeds' preference to 'total active' to avoid confusion. 2008-06-17 16:01:32 +00:00
cfa18bc729 Fix #283 resuming torrents when stop_seed_at_ratio is set 2008-06-17 02:00:53 +00:00
2e09e6b9ba min reconnect time fix 2008-06-17 01:48:20 +00:00
5934918363 Another attempt to fix #283 .. revamped how resuming/pausing is done 2008-06-17 00:56:10 +00:00
7e7feeb2d8 Update the state of a torrent before attempting to resume. This is an
attempt to fix #283
2008-06-16 23:14:21 +00:00
651523e7d0 lt sync 2413 2008-06-16 23:08:06 +00:00
89cad666d5 Rework the signalreceiver a bit to help address errors on exit.
A few UI tweaks.
2008-06-15 11:02:09 +00:00
efd1f18082 Fix stop seed ratio to only stop seeders, not downloaders 2008-06-15 04:16:31 +00:00
8588a6e83c Fix prioritize_first_last 2008-06-15 03:31:33 +00:00
f769429e1d Add move storage on completed download option 2008-06-15 02:43:06 +00:00
7322a08323 Catch all exceptions in do_multicall() 2008-06-15 02:41:25 +00:00
cfc742501d Implement prioritize first/last pieces 2008-06-15 00:53:56 +00:00
517ba20ae7 Update connection manager host list ner. 2008-06-14 07:55:13 +00:00
8c49dd6e90 Fix move storage for remote hosts by adding a dialog for path entry. 2008-06-14 07:48:14 +00:00
2a510c8310 Fix peers tab state loading 2008-06-14 07:44:24 +00:00
fdfe2ac1ff Revert last. It's not needed. 2008-06-14 07:33:54 +00:00
ab4dbff3e7 Fix possible race condition when using force_call() 2008-06-14 06:39:57 +00:00
6b008d6c4d Fix #231 clear torrent info if no torrent selected. 2008-06-14 05:31:16 +00:00
9d40380f71 New option to make a copy of torrent file added to session.
Have torrentmanager handle old state files better by filling in the 
missing fields with defaults.
2008-06-14 02:10:23 +00:00
dfc14ff785 Fix #207 do not exit if dbus is unavailable, just give warning. 2008-06-14 00:49:34 +00:00
5936aeebb6 Fix #270 autoadd folder 2008-06-14 00:32:52 +00:00
d7957f82e7 lt sync 2405 2008-06-12 21:47:56 +00:00
f7010b18f3 Switch to libtorrent queueing
This breaks state.
2008-06-12 09:21:13 +00:00
37df050e3b Fixes for set_queue_position() 2008-06-11 12:13:26 +00:00
fe7dead2df lt sync 2397 2008-06-10 08:02:15 +00:00
45dd1e37c3 Fix #263 2008-06-08 23:34:18 +00:00
d8b7393c94 Use libtorrents force_recheck() 2008-06-07 21:01:43 +00:00
7107413d0e lt sync 2388 2008-06-07 18:58:33 +00:00
bf00795050 Big code clean-up in torrentmanager and torrent. This breaks
torrent.state.  Sorry.
2008-06-07 00:20:36 +00:00
a8b1d98c3d fix move plugin oops 2008-06-06 19:48:13 +00:00
bc8e6b441f add move to different partition 2008-06-06 07:27:35 +00:00
228597abdc add send redundant haves iow show peers our progress 2008-06-05 02:12:57 +00:00
49338fc5d7 lt unicode fix in storage 2008-06-04 19:51:30 +00:00
e78aa7dcc3 lt sync 2374 2008-06-03 20:24:42 +00:00
abbba8bf3b Remove ability to modify private flag. 2008-06-03 01:39:03 +00:00
6b6a2646b9 add url from tra 2008-06-02 23:49:56 +00:00
8359ade3f2 Update bindings to include queueing and file_renamed_alert 2008-06-02 21:18:27 +00:00
772f80e622 lt sync 2370 2008-06-02 17:40:37 +00:00
78cde674f0 revert unintentional wizard commit 2008-06-02 10:16:14 +00:00
aaf6d8128d up version number 2008-06-02 10:15:10 +00:00
53a5999462 update changelog 2008-06-02 10:14:14 +00:00
44293bf6bd lt R_0_13 2366 sync 2008-06-01 23:37:15 +00:00
4f0e77c68e launchpad lang sync 2008-06-01 23:35:52 +00:00
8e11197ac9 Add missing files. 2008-05-20 06:28:42 +00:00
b15608252c libtorrent sync 2347 2008-05-20 06:23:48 +00:00
817076ff65 Fix uploaded_memory from reverting to state value when doing a forced
recheck.
2008-05-20 02:03:11 +00:00
576cae3b26 Add an 'All' option to the Tabs menu.
Fix error on clear() when no tabs visible.
2008-05-19 20:23:48 +00:00
66212563e7 indent fix 2008-05-19 16:05:10 +00:00
c7310de524 lang sync 2008-05-19 16:04:54 +00:00
afa3c03691 Add the tabs to the View menu and allow them to be shown/hidden.
Some minor UI tweaks.
2008-05-19 02:28:47 +00:00
95d0b65785 Remove unnecessary calls to update_buttons() 2008-05-19 02:26:10 +00:00
16477181d0 Prep 0.5.9.1 release. 2008-05-18 22:03:25 +00:00
6dca7958a2 Fix forced recheck 2008-05-17 19:06:35 +00:00
da3cb085af Fix addtorrentdialog from not showing updated options on show. 2008-05-17 18:56:19 +00:00
eeb695464a Update ChangeLog 2008-05-17 18:12:04 +00:00
0d8b619200 Fix catching of invalid torrent file 2008-05-14 20:11:08 +00:00
069bd5da88 Fix advanced progressbar to display properly when torrent only has 1
wanted piece that is smaller than the piece size
2008-05-12 13:19:41 +00:00
4ae8faa3ef Fix open folder 2008-05-12 13:05:01 +00:00
e70a09b6e4 Fix queue order on restart. 2008-05-12 12:41:45 +00:00
3a482b2f19 Implement 'Always show add torrent dialog' and 'Bring to focus' when
adding a torrent from an external source.
2008-05-12 06:31:52 +00:00
ebebdb7132 Fix 'No incoming connections' label not removing properly. 2008-05-09 10:01:07 +00:00
e7e4651482 fix torrentfiles 2008-05-02 23:18:14 +00:00
f46ce64914 fix torrentfiles with --config 2008-05-02 21:04:55 +00:00
0d7c25879e remove old plugin and tweak torrentfiles default path 2008-05-02 20:43:48 +00:00
a06b241056 Fix rechecking torrents 2008-05-01 05:40:25 +00:00
9313975ba5 Update the use of add_torrent() 2008-05-01 05:38:25 +00:00
df459e7eaa Update python bindings to use new add_torrent() method 2008-05-01 05:37:22 +00:00
e513c4a46d update version and changelog 2008-05-01 02:30:32 +00:00
3ba8ba710d fix opening folder/files in windows 2008-04-30 23:33:38 +00:00
85f557e6c1 lt sync 2240 2008-04-29 21:49:24 +00:00
88c20df380 Sync up alerts in the python bindings 2008-04-29 21:43:25 +00:00
c1d7f68c12 lang sync 2008-04-28 23:30:55 +00:00
2a00af8781 Fix typo 2008-04-28 20:14:45 +00:00
ef9541366f Fix #188 libtorrent build with gcc 4.3 2008-04-28 08:12:30 +00:00
140326443c Set auto_managed to false for now. 2008-04-27 03:53:19 +00:00
a745178244 peers_tab:display ?% instead of KeyError on progress 2008-04-25 16:37:25 +00:00
62b713041a Add torrent_error_alert to python bindings 2008-04-24 09:46:15 +00:00
846d575a52 Fix typo in policy.cpp 2008-04-24 09:36:37 +00:00
1a8c3d21be Fix issue where trying to handle an announce alert after the torrent has
been removed from session.
2008-04-24 07:58:52 +00:00
c5eba92174 lt sync 2224 2008-04-24 07:54:44 +00:00
ff837215e3 Fix compiling of 'GeoIP.c' on some systems. 2008-04-23 21:13:53 +00:00
9f05f6fc64 lt sync 2219 2008-04-23 01:14:11 +00:00
e477b5e037 lt sync 2207 2008-04-20 04:18:40 +00:00
354b31dbbe lt sync 2205 2008-04-20 00:39:26 +00:00
e366b75714 Fix peers tab sorting by down/up speed. 2008-04-19 20:44:30 +00:00
5717fa0d8a Fix ratio bug.. yet again
Some possible fastresume fixes too
2008-04-19 18:09:48 +00:00
6a693d10ab dht array index out of bound fix 2008-04-19 17:08:28 +00:00
1b5bfaaad1 Fix possible incorrect display of uploaded total in details tab. 2008-04-19 16:07:02 +00:00
8de21c82ae blocklist, fix #171 by covracer 2008-04-19 15:30:40 +00:00
6d9cfbabd9 lt sync 2203 2008-04-16 07:52:09 +00:00
19dcc3e09b lt sync 2202 2008-04-16 07:07:58 +00:00
809007d77c Define '_FILE_OFFSET_BITS=64' 2008-04-16 03:52:08 +00:00
770e0a0db6 Update the country flag properly. 2008-04-16 02:55:45 +00:00
1557679259 Forgot some headers in last commit. 2008-04-16 01:20:57 +00:00
70bb78b833 Update libtorrent to 0.14 trunk.
A few minor touch ups regarding torrent state and queue.
2008-04-16 01:15:06 +00:00
1861ef439f Attempt fixing #146. 2008-04-15 02:46:29 +00:00
ff2d7ba7f8 add deluge.js to setup 2008-04-14 00:49:31 +00:00
67f0b6a2c9 lt sync 2193 2008-04-13 23:00:51 +00:00
479db99d9f oops, missed changelog in last 2008-04-13 22:59:07 +00:00
d6168ca79a update version numbers and changelog 2008-04-13 22:58:50 +00:00
7aa72e3b17 lang sync 2008-04-13 22:57:14 +00:00
116aa12da7 Fix segfault in torrent_get_torrent_state() 2008-04-13 10:17:37 +00:00
1e2326cb6a deluge duplicant language files 2008-04-13 08:15:53 +00:00
3ac9af0486 State fixes. 2008-04-13 06:07:19 +00:00
0b63f0b3b4 Add more webui files 2008-04-13 04:45:05 +00:00
1558ab8607 Fix #85 change torrent state to downloading if changing priority of files in torrent to something other than
'Do Not Download'.
2008-04-13 04:16:33 +00:00
0f4895ee6a Update webui paths 2008-04-13 03:42:05 +00:00
3f9f4bb662 add and use is_finished 2008-04-13 03:25:22 +00:00
d231aafa9a lt sync 2185 2008-04-13 03:24:27 +00:00
2cc8b72e96 lt sync 2185 2008-04-13 03:24:27 +00:00
4ffe14573f Expose torrent_handle::is_finished() 2008-04-13 03:15:46 +00:00
49af682226 Re-apply per-torrent settings after forced recheck. 2008-04-13 01:25:33 +00:00
4b620896a5 fix set_current_folder when None 2008-04-12 05:08:33 +00:00
c012427edc Fix #146 2008-04-10 05:52:38 +00:00
ef4ea151f4 Remove cruft for ubuntu check 2008-04-10 02:01:46 +00:00
622a0053d8 css 2008-04-08 20:16:50 +00:00
7a879b33c8 details tabs:add css 2008-04-08 19:39:09 +00:00
85d17af933 split details/statistics tabs 2008-04-08 18:34:37 +00:00
39cad76dd2 rm gtk webserver 2008-04-08 17:46:53 +00:00
7023ad0974 progresss bars : fix layout 2008-04-08 17:32:49 +00:00
3e6d43b8a5 update todo 2008-04-08 17:21:35 +00:00
d93df183bb webui:add TODO 2008-04-08 17:00:33 +00:00
c282132574 template_static:fix config bug 2008-04-08 16:54:20 +00:00
46a1eb26cf Fix peers list updating. 2008-04-08 12:02:08 +00:00
7cb6876bae Fix peers tab updating to include country codes. 2008-04-08 09:55:31 +00:00
cb75bda84e tweak last 2008-04-08 08:12:34 +00:00
7fe0a713b2 blocklist flix to todo 2008-04-08 08:07:37 +00:00
d009516272 update TOTO 2008-04-08 08:01:28 +00:00
3bc4f167f2 censor myself on changelog 2008-04-08 07:43:22 +00:00
ca66946169 only show torrent menu if a torrent is selected 2008-04-08 06:40:29 +00:00
d17092b20d fix return of None in 2.4 2008-04-08 06:39:57 +00:00
346a25564a dont show file menu if no files are selected 2008-04-08 06:19:48 +00:00
3ca459df87 Only update the peers list as necessary. 2008-04-08 05:55:20 +00:00
ec326c2c6d Show a peer/seed icon for peers. 2008-04-08 05:26:10 +00:00
c884142691 Only show peers that we've exchanged a handshake with. 2008-04-08 05:15:52 +00:00
1bf2339b0f Proper sorting of ip addresses in peers tab.
Try to show a proper string for clients that don't send utf-8
2008-04-08 05:11:36 +00:00
ed4389fe65 Show country flags in peers tab. 2008-04-08 04:46:01 +00:00
4ead675fad Fix pluginmanagerbase to use configmanagers config directory instead of trying to get it from the config
file.
2008-04-08 03:56:27 +00:00
7f89a8aff3 Fix issue where folder chooser buttons show the path's parent and not the actual selected path.
Remove file browser options from preferences dialog.
2008-04-08 03:51:29 +00:00
126208b416 Fix issue where folder chooser buttons show the path's parent and not the actual selected path. 2008-04-08 03:48:45 +00:00
b376786782 update changelog 2008-04-08 03:20:29 +00:00
36e21935f4 Show proper file priorities now.
Added file tab context menu and can now set priorities for individual files.
2008-04-08 03:05:34 +00:00
7e5179d0de remove file manager setting and use xdg-open, use os.startfile in windows, remove initial_upload, fix ratio 2008-04-08 01:53:56 +00:00
2b007ff878 Fix when selecting multiple torrents and right-clicking only selecting the one. 2008-04-08 01:02:44 +00:00
051e2ae9e7 Add 'set_torrent_prioritize_first_last' method. 2008-04-08 00:41:23 +00:00
4423ce667f Make buttons on the options tab actually work. 2008-04-08 00:40:29 +00:00
37fcf4ec4d Catch a couple more exceptions. 2008-04-07 21:10:44 +00:00
3befc2e084 sync language files for release 2008-04-07 12:27:15 +00:00
aef9690dee update changelog 2008-04-07 12:13:32 +00:00
9bfd6471f3 up version number 2008-04-07 12:10:31 +00:00
f39e3c69a3 0.13 final sync 2008-04-07 05:13:36 +00:00
c3f15b8b1e 0.13 final sync 2008-04-07 05:13:36 +00:00
c464d64d46 fix vista check 2008-04-07 01:31:53 +00:00
97e8cdaac8 Change the listview to a treeview -- patch from Andrew Eikum 2008-04-07 01:02:33 +00:00
35e6059b10 vista python 2.5.2 fix 2008-04-07 00:18:56 +00:00
fecd9132ce sync with asio 1.0 release and update lt 2147 2008-04-06 21:12:32 +00:00
a530367fd7 sync with asio 1.0 release and update lt 2147 2008-04-06 21:12:32 +00:00
642569f4bc Fix remove torrent command in null client. 2008-04-06 03:14:29 +00:00
c226014439 Remove the progress column from the peers tab.
Only show connected peers.
2008-04-06 00:09:30 +00:00
4c867264f9 Add '-c, --config' options to set config directory. 2008-04-05 22:40:35 +00:00
72e0df3e5f Fix details tab. 2008-04-05 22:04:17 +00:00
8eca7bfdeb Add Options tab. 2008-04-05 21:43:04 +00:00
6858e875a1 webui:mv tab_meta->tab_statistics 2008-04-04 19:33:33 +00:00
6bd677bedc fix oops,tracker_name 2008-04-04 19:22:01 +00:00
ec1db13c32 webui:layout torrent_meta+add hash 2008-04-04 18:38:44 +00:00
5f4d5efa17 fix #134, pretty eta 2008-04-04 17:56:40 +00:00
7f8fca451d webui : fix add url 2008-04-04 17:02:09 +00:00
c9bc6a9526 webui:fix oops in torrent_files 2008-04-03 19:56:24 +00:00
2ccf6786c6 webui:add queue config 2008-04-03 19:49:23 +00:00
380966f3f1 webui:add some values to config pages 2008-04-03 19:06:17 +00:00
c585e75b36 edit trackers 2008-04-03 18:32:58 +00:00
3185665941 fix indent 2008-04-02 15:01:46 +00:00
7990de2a31 windows support in open_file 2008-04-01 22:23:41 +00:00
c906af496f add apache.py 2008-04-01 17:44:30 +00:00
d9ec10dd28 remove https+ add apache 2008-04-01 17:40:50 +00:00
0f32cde503 Fix possible issue where the health icon will not disappear. 2008-04-01 08:38:10 +00:00
39e8866b97 Fix #131 2008-04-01 07:46:41 +00:00
875af674a1 Fix #130 2008-04-01 07:43:51 +00:00
4d81005d5b add open file to files tab 2008-04-01 07:40:27 +00:00
157bcca244 remove debug print 2008-04-01 05:02:02 +00:00
dc2ea3a220 fix for paths with spaces 2008-04-01 05:00:01 +00:00
4cd7ade277 Some tweaks to the add url dialog. 2008-04-01 00:59:36 +00:00
aa5da70030 Implement Add by Url in the addtorrentdialog. 2008-04-01 00:47:52 +00:00
187fedbb8a Fix AutoAdd preference.
Tweak stats panel.
2008-03-31 12:36:47 +00:00
441021b0cb Remove some debug prints. 2008-03-31 12:26:49 +00:00
2a9993cfe8 Move AutoAdd to core. 2008-03-31 12:18:19 +00:00
34ca508410 AutoAdd fix. 2008-03-31 12:04:14 +00:00
787de2cfe0 Add 'hash' to torrent details. 2008-03-31 09:06:16 +00:00
22aafb532e Fix edit trackers dialog. 2008-03-31 08:35:54 +00:00
db13c2e3f3 Implement Error status. 2008-03-31 06:17:55 +00:00
4ff17ee367 Implement AutoAdd folder. 2008-03-31 01:37:59 +00:00
488bbb0a53 Attempt to fix improper ratio. 2008-03-31 00:15:36 +00:00
9a586fb343 Update TODO. 2008-03-30 23:17:58 +00:00
5b5ba1c4ee Fix last. 2008-03-30 22:08:48 +00:00
7d9fee4946 on shutdown, dont create fast resumes for seeds or paused torrents and only pause if compact, since that's only when it's needed 2008-03-30 17:24:21 +00:00
cf8f7f0376 webui:apache,allow relative urls 2008-03-30 14:48:59 +00:00
0ee52a17fe Fix peer info. 2008-03-30 08:40:53 +00:00
f5a9c5a11f Change default 'load_on_start' to False for blocklist. 2008-03-30 00:48:34 +00:00
d22fa1299a Fix forced recheck. 2008-03-30 00:18:11 +00:00
4e5a20ba38 Remove some debug prints. 2008-03-29 04:39:34 +00:00
5f2be57ba8 Fix stuff for updated bindings. 2008-03-29 04:36:50 +00:00
c35553d4a8 Update libtorrent python bindings to lt rev 2120. 2008-03-29 04:36:30 +00:00
81d07734e5 Remove viewport from files and peers tab. 2008-03-29 04:11:44 +00:00
dff2a69169 add private status to details tab 2008-03-28 01:44:47 +00:00
1a85622137 use threading again for launching browser so it doesnt lock up in python2.4 2008-03-28 00:22:22 +00:00
86856b44de lt sync 2116 2008-03-27 22:42:39 +00:00
6b0952764d webui:torrent_options:update ticket #123 2008-03-27 19:22:21 +00:00
80db26e0e7 webui:css table padding 2008-03-26 22:39:04 +00:00
a1a8534972 webui:fix :state-filter,peers-order/width 2008-03-26 21:46:40 +00:00
21efd6709d webui:basic peers tab 2008-03-26 21:27:33 +00:00
b446bc0c15 fix reg_torrents_POST 2008-03-26 20:47:56 +00:00
8fb22554f2 webui:minor config fixes 2008-03-26 20:24:30 +00:00
24b7cff766 webui:fix pwd update(+better css) 2008-03-26 19:37:14 +00:00
1f3932e13f url-routing using PageManager 2008-03-26 19:02:54 +00:00
ace62ef0b7 Updated libtorrent bindings to support peer_info. 2008-03-25 08:29:40 +00:00
cceb2ef5a0 Start of peers tab implementation. 2008-03-25 08:28:50 +00:00
bd57df9915 clear finished changes to changelog 2008-03-25 02:03:29 +00:00
5bbb7a526d up version numbers and update changelog 2008-03-25 02:01:30 +00:00
cfbb5692cf revert accidental commit 2008-03-25 01:59:02 +00:00
7986b7a042 lt sync 2105 2008-03-25 01:56:53 +00:00
c4ee6c090e Add state saving to the the files tab so that column size, sort order
and positions are persistent.
2008-03-25 01:53:00 +00:00
8d56d12178 lang sync 2008-03-25 01:49:30 +00:00
efead335a9 Fix saving ratios on quit. 2008-03-25 00:09:05 +00:00
13b507a925 torrent-add,move,options->use component-api 2008-03-24 22:54:00 +00:00
f1d13d0bca torrents_command 2008-03-24 22:17:46 +00:00
a9238995ce reduce code in /index 2008-03-24 22:02:27 +00:00
f8cbcd9184 wsgiapp+reduce code in /index 2008-03-24 21:56:10 +00:00
7121abc572 #113 add cache-control+content-length for /pixamps 2008-03-24 08:59:46 +00:00
3857a564a1 try to fix #89, by assuming name,tracker,tracker_status could be non-unicode 2008-03-24 08:22:26 +00:00
8eda411a86 fix lt dht announce bug 2008-03-23 07:42:54 +00:00
adf36fac1d fix lt dht announce bug 2008-03-23 07:42:54 +00:00
16b19fc423 fixed incorrect forwarding in torrent_handle 2008-03-22 16:56:41 +00:00
7412a0052b fixed incorrect forwarding in torrent_handle 2008-03-22 16:56:41 +00:00
b87089c7d2 newforms->newforms_portable 2008-03-22 12:55:49 +00:00
0eaa0aca27 consolidate manager-componets 2008-03-21 18:31:27 +00:00
dcc10b7819 remove broken ssl 2008-03-21 17:29:37 +00:00
2852820a50 fix non-connected daemon 2008-03-21 17:25:30 +00:00
36fa568d16 oops 2008-03-21 17:11:29 +00:00
b4e1051fe0 remove all logic from webserver_common 2008-03-21 17:11:00 +00:00
55274532be fix last oops 2008-03-21 05:45:19 +00:00
0753f800e2 remove torrent file on clear seeding 2008-03-21 05:35:44 +00:00
d2d0e26f4c fix multiple router_node support lt rev 2089 2008-03-21 02:00:26 +00:00
06a1591b44 fix multiple router_node support lt rev 2089 2008-03-21 02:00:26 +00:00
69d5aa6e2e plugin updates by ben 2008-03-18 20:55:05 +00:00
f55fdcf118 blocklist-plugin config pt1 2008-03-18 20:33:04 +00:00
85d9e6ceb8 webui: minor css 2008-03-18 20:32:01 +00:00
f78d794079 fix webpy022 import for /lib/ 2008-03-18 17:08:30 +00:00
fc9bb503df Attempt to fix issue where core will no longer pause/resume torrents. 2008-03-18 01:41:09 +00:00
d34356a800 Modify how we iterate through the liststore. 2008-03-18 00:21:23 +00:00
4882f5cb88 refactor:webpy022->web.py 2008-03-17 20:47:27 +00:00
f1cd5071da webui-refactor:use deluge.component for components/prepare for plugins 2008-03-17 19:42:44 +00:00
1a5ebf73ee Start work of new torrent info tabs. 2008-03-17 09:36:43 +00:00
86d8ea3f5b Fix add torrent dialog displaying the wrong download path when connected
to a remote daemon.
2008-03-17 08:11:21 +00:00
5b6a197a50 Clicking on the 'Not Connected' status bar item will now show the
ConnectionManager.
2008-03-17 08:01:27 +00:00
b18ffb3397 update changelog 2008-03-16 22:46:09 +00:00
096ea631a9 lt sync 2080 2008-03-16 22:43:27 +00:00
53c5ad79c6 lt sync 2080 2008-03-16 22:43:27 +00:00
2ffa5737bd lt sync 2071 2008-03-16 05:48:37 +00:00
e033024fbd lt sync 2071 2008-03-16 05:48:37 +00:00
92dea4475c fix plugin list scrolling with keyboard (ticket #84) 2008-03-16 02:34:11 +00:00
ca85860b90 update our enourmous list of translators 2008-03-16 02:25:01 +00:00
13b3716d60 remove debug print 2008-03-16 01:08:02 +00:00
b2b148994f fix stats url 2008-03-16 01:06:28 +00:00
a65cda0094 webui white template=default 2008-03-15 12:10:44 +00:00
b713ae5fb2 white template:config+panel style 2008-03-15 11:10:47 +00:00
2af622b850 remove 0.5 torrent_info hacks 2008-03-15 10:02:38 +00:00
b3f9785b20 Fix adding torrents and setting proper state on load. 2008-03-15 06:16:06 +00:00
723fd76d84 white template 2008-03-14 08:30:38 +00:00
4c987aed06 Fix showing the other speed dialog in the StatusBar pop-up menus. 2008-03-12 07:56:59 +00:00
b87f68fcb6 Fix issue where we try to handle lt alerts for torrents that have not
had a Torrent object created for them yet.
2008-03-12 06:30:49 +00:00
f18b42b64d Include all .svg files in data/pixmaps. 2008-03-12 06:27:10 +00:00
4dba4d730a sync lang files with launchpad 2008-03-11 19:11:53 +00:00
6153ca1140 up version for release 2008-03-11 19:09:52 +00:00
55aae06130 update changelog and ly sync 2055 2008-03-11 19:08:42 +00:00
1872a2634a use data/pixmaps instead of copied images 2008-03-11 18:40:04 +00:00
87e7fd5869 remove plugin preference page properly, handle downloads/timeouts better, fixed inf download loop 2008-03-10 22:12:31 +00:00
174ea3c35e Fix stop seed ratio to only stop Seeding torrents. 2008-03-10 10:33:29 +00:00
b5078571a2 Fix inserting into queue. 2008-03-10 09:19:49 +00:00
616fa74051 Add timeout items to the StatusBar. These items will disappear after N
seconds.
Add warning items to the StatusBar.
Show warning when trying to resume a torrent past the stop share ratio.
2008-03-10 08:18:39 +00:00
4f0882ebbe Add Network Health icon to StatusBar.
Fix issue of adding a torrent to the top of the queue if no torrents in 
the session.
2008-03-10 07:32:25 +00:00
58e4e1b2f4 Update some copyright years. 2008-03-10 06:12:51 +00:00
07dd3506e1 Implement 'stop seed at desired ratio'. 2008-03-10 04:32:13 +00:00
e305e04e31 Only update the queue when necessary, not every second. This should
improve performance a bit.
2008-03-10 02:54:20 +00:00
bcd5b2c458 When loading state, add torrents with .fastresume files first to avoid
waiting for torrents to be checked.
2008-03-10 01:46:23 +00:00
7fbfbbc49c lt sync 2047 2008-03-10 01:24:05 +00:00
7d5bd22855 white template:add wip message 2008-03-09 20:32:11 +00:00
5c02a9cb82 template-inheritance&white-template(wip) 2008-03-09 19:13:09 +00:00
b5e4fdaa04 remove plugin icons from general path 2008-03-09 16:18:15 +00:00
62c52e8740 fixed icon path, added gtk download list button 2008-03-09 16:16:16 +00:00
e0c5820bf0 Initial version of blocklist for 0.6 2008-03-09 06:05:00 +00:00
74cd111513 Add pop-up menus to the statusbar items. 2008-03-09 05:38:07 +00:00
bed05c7a05 Updates to test plugin. 2008-03-09 05:05:56 +00:00
c679d6b2cf Register 'Core' with deluge.component. 2008-03-09 03:39:26 +00:00
75a797cabe Add entry widgets for setting remote daemon paths. 2008-03-09 03:32:35 +00:00
7a0365fd4a Fix showing remote download/torrent files path in Preferences. 2008-03-09 03:31:30 +00:00
5d91c170e4 Fix signalreceiver crashing on daemon switch.
Fix exception on shutdown in signalreceiver.
2008-03-09 03:27:25 +00:00
969b43d069 Set # column as default sort. 2008-03-09 03:07:50 +00:00
8562cad4f5 Implement 'Queue finished to bottom'. 2008-03-09 02:41:02 +00:00
def92cb735 Fix showing proper upload/download speed values in SystemTray. 2008-03-09 01:07:54 +00:00
d0b3418ccc Fix preferences dialog to show when not connected to a daemon. 2008-03-09 01:00:26 +00:00
37f1560024 Move toolbar separator over one position. 2008-03-09 00:43:07 +00:00
c1787e2520 Fix setting max active torrents to unlimited to actually work. 2008-03-09 00:27:32 +00:00
ccfa7c16e0 Asio update. 2008-03-08 23:47:38 +00:00
4087576905 lt sync 2049 2008-03-08 23:38:26 +00:00
569fba5b5f Fix remove torrent toolbutton. 2008-03-08 23:13:30 +00:00
7303e52ae6 Fix torrents not showing up in list until changing filters. 2008-03-08 23:03:01 +00:00
b32c7de968 Enable 'Queue new torrents to top' 2008-03-08 22:58:11 +00:00
dda5be096a Touch-up Queue preferences. 2008-03-08 22:57:44 +00:00
2dc6df31da Queueing updates. This breaks torrents.state. 2008-03-08 08:19:43 +00:00
54b512a7e0 Delete .fastresume on resume of a non-seeding torrent. 2008-03-08 04:47:43 +00:00
f2065ae344 Queue updates. 2008-03-08 04:15:35 +00:00
b5ff8eb29f Testing. 2008-03-07 04:16:48 +00:00
81606e3e67 More queue updates. 2008-03-07 02:27:34 +00:00
cd2bfe8a62 Fix showing of page without updating selection in list. 2008-03-07 01:45:47 +00:00
d7dd5180cf Add 'page' argument to show() to allow opening the Preferences dialog to
a specific page.
2008-03-07 01:13:45 +00:00
ff4009cb6e Fix add_toolbutton() to work with non-stock images. 2008-03-07 00:55:46 +00:00
4fe2187653 marry uploaded mem saving with pickle state 2008-03-06 22:55:28 +00:00
6fcc56c79a revert last 2008-03-06 13:05:49 +00:00
e61169c7b9 remove timer for fastresume now that normal saving should be fixed and it's unnecessary and hogs cpu with large/serveral torrents 2008-03-06 12:57:38 +00:00
61f49a2cda fix andar's 2916 :P 2008-03-06 12:54:16 +00:00
1132292e9e fix damn stupid fast resume for real 2008-03-06 12:22:48 +00:00
98b026f155 Add torrents with .fastresume files before torrents that don't during
state load.
2008-03-06 08:09:47 +00:00
3ff2af0f2a clarify printouts with fast resume 2008-03-06 01:02:28 +00:00
5577667631 move state check for fastresume to be within a try statement to try to catch race condition that happens if a torrent is finished and immediately removed by ratio limit 2008-03-05 23:33:18 +00:00
882a7e8033 core:fix multiple queue_up/down 2008-03-05 19:10:21 +00:00
fa0847a45b webui:error handling of no-daemon 2008-03-05 18:58:44 +00:00
0c58504f42 fix #72 ui hang 2008-03-05 06:57:12 +00:00
6e5da1cae3 Update the null-client to work with the changed 'state' key. 2008-03-05 06:22:28 +00:00
0b4b52d586 Attempt to fix fastresume saving by not using a cached torrent state. 2008-03-05 04:33:02 +00:00
f0d52b4fda enable queue 2008-03-04 21:42:46 +00:00
d2bd2fabcf webui:remove cat, use organize plugin 2008-03-04 21:27:51 +00:00
faa5b69db4 webui:cosmetic+crop_middle 2008-03-04 21:02:37 +00:00
49ec8766ca webui:keyword filter 2008-03-04 20:11:19 +00:00
db24c543fe webui:move filter-logic to organize-plugin 2008-03-04 19:52:06 +00:00
8cf72ca2dc organize core-plugin 2008-03-04 19:51:31 +00:00
985ccb3187 webui:fix TORRENT_STATE 2008-03-04 12:04:08 +00:00
0e31d4243c Add 'Queued' label to SideBar.
Fix the labels filter from not displaying properly.
2008-03-03 09:05:02 +00:00
8de2946da2 Queueing updates. 2008-03-03 04:54:52 +00:00
87a59662e4 Modify common.TORRENT_STATE to be a list instead of a dictionary. The
state is now sent as a string instead of an int.  This will break UIs.
2008-03-03 02:41:44 +00:00
eb15b5da37 Setting options for the Queueing stuff now works in preferences. 2008-03-03 02:40:43 +00:00
e031c4b3ee Add new Queued state icon. 2008-03-03 02:14:51 +00:00
25d2f99ece Update the host list on initialization. 2008-03-02 06:50:34 +00:00
ea3d25e8e1 Add Queue functionality from the plugin to the core. This breaks
torrents.state.
2008-03-02 04:47:35 +00:00
2113cbc3c3 Remove Queue plugin as it's functionality has been moved to the core. 2008-03-02 04:40:40 +00:00
d4a8f29957 clean up status_fields 2008-03-01 14:20:04 +00:00
b10cdb22d1 fix reversed sorting 2008-03-01 11:10:45 +00:00
c04e9701ae move webui(done) 2008-03-01 10:42:06 +00:00
b47551d009 move webui(3) 2008-03-01 10:41:08 +00:00
7377f1416c move webui(2) 2008-03-01 10:40:46 +00:00
5dc12d1774 move webui(1) 2008-03-01 10:39:53 +00:00
62c23829be plugin_api 2008-03-01 10:16:33 +00:00
ba6018f3f3 Fix torrents being added in wrong paused/active state on state load.
This should fix #27.
2008-02-28 20:55:06 +00:00
a65251807b prepare for plugins2 2008-02-28 19:36:28 +00:00
d844337cbb prepare for plugins 2008-02-28 19:35:45 +00:00
8a4bf3ab15 improved connect-page+web.reloader 2008-02-28 16:55:23 +00:00
6914216234 fix damn web proxy pref 2008-02-28 08:40:17 +00:00
b7571ecddd launchpad lang sync 2008-02-28 07:00:41 +00:00
049f99ffae update changelog 2008-02-28 06:56:24 +00:00
a697c721bb up version # for fix release 2008-02-28 06:54:24 +00:00
e595a7d1fd fix force recheck 2008-02-28 06:53:47 +00:00
51dccc21ae lt sync 2039 2008-02-28 06:45:21 +00:00
ae18fc8b5a lt sync 2039 2008-02-28 06:45:21 +00:00
b72098e561 Start of work migrating the Queue plugin into core. 2008-02-27 08:10:14 +00:00
53ebbe011c Updates to the test plugin. 2008-02-27 08:09:47 +00:00
f1808a0cc3 Add pausing and resuming of components. This stops the update() timer
for the component and restarts it upon resume.
2008-02-27 07:43:47 +00:00
26b8fcf086 minimal admin toolbar2 2008-02-26 17:59:46 +00:00
c5cb204344 minimal admin toolbar 2008-02-26 17:59:24 +00:00
8ee529d229 Add 'on_apply_prefs' plugin hook. 2008-02-26 17:10:44 +00:00
b94fcc1da0 Fix #39 .. this is a regression from [2793] 2008-02-26 15:21:30 +00:00
06ffa8c628 Fix commit 2866 2008-02-26 05:31:05 +00:00
8c44dd40fa Make PluginManager start before TorrentManager. 2008-02-26 05:28:29 +00:00
28f0a0b9f8 Catch possible exception on shutdown. 2008-02-26 05:27:32 +00:00
3103a69754 Update Test plugin to work properly. 2008-02-26 05:27:12 +00:00
a7b12cc159 no exception on invalid sort 2008-02-26 00:33:27 +00:00
79b9eda351 fix config template 2008-02-26 00:22:54 +00:00
d1b8075fe6 webui:torrent_list:use sclient.get_torrents_status instead of async 2008-02-25 17:44:32 +00:00
9c0dc5f9e3 lt sync 2828 2008-02-25 08:52:57 +00:00
17dd85b60b lt sync 2828 2008-02-25 08:51:48 +00:00
a352202247 Account for large files in the files list. 2008-02-25 06:52:56 +00:00
367e3f1df8 Do not bother removing fastresume files on resume. 2008-02-25 04:29:18 +00:00
4513531ef4 Attempt to call 'apply_prefs()' in enabled plugins when the user clicks
OK or Apply in preferences.  This is designed to allow plugins to save 
their preferences.
2008-02-25 02:49:30 +00:00
a39b8baa72 Ensure int-ness for max-connections and upload-slots of torrents. 2008-02-25 01:22:46 +00:00
ae0652227b Add post_session_load() plugin hook. This change does break
persistent.state.
Add some queue exports and stuff to the core.
2008-02-25 00:05:09 +00:00
d9868b0ce2 disable queue 2008-02-24 13:24:29 +00:00
fb85b87580 basic reconnect 2008-02-24 12:59:36 +00:00
8f039eb0fa Fix shutdown(). 2008-02-24 05:36:36 +00:00
ada8d5641f add_torrent_file_binary 2008-02-23 15:19:47 +00:00
2c12368fad webui:add_torrent_file_binary 2008-02-23 15:18:18 +00:00
83f8481797 fix ui hang on keyerror with seed time 2008-02-23 13:09:26 +00:00
616dd6288a Minor cosmetic touch-ups.
Removed some imports that are no longer needed.
2008-02-22 22:36:31 +00:00
80f11bff0f client.has_callback->fix api/readability 2008-02-22 22:27:21 +00:00
e192b38ab6 webui:client.py refactor 2008-02-22 22:16:43 +00:00
d53a606b0e big client.py refactor 2008-02-22 22:16:13 +00:00
21c4025a7b Show max_speeds in torrent details. 2008-02-22 09:12:16 +00:00
5cb5ce15d6 Fix formatting 2008-02-22 09:11:40 +00:00
5aa3bfd16d Fix stopping signalreceiver 2008-02-22 09:10:59 +00:00
694bf6d778 update changelog with #51 fix 2008-02-22 08:36:35 +00:00
e4ee196129 fix fastresume/up mem timers - fixes ticket #51 2008-02-22 08:31:15 +00:00
5b516040f3 update changelog 2008-02-22 06:30:27 +00:00
1e02029fe1 lt sync 2020 2008-02-22 06:26:08 +00:00
63d9165dc9 lt sync 2020 2008-02-22 06:24:58 +00:00
300b4a7905 Scrape tracker if tracker doesn't report number of peers on reply. 2008-02-21 22:20:28 +00:00
27ffaab15b Change core methods to use a list of torrent_ids. 2008-02-21 20:23:02 +00:00
6d63307623 webui:fix torrent_add 2008-02-21 18:37:58 +00:00
1f5d9a10c1 Expose reset_ip_filter() to plugins. 2008-02-21 04:20:30 +00:00
361a276da4 Add reset_ip_filter() to core. 2008-02-21 04:19:13 +00:00
88f2638764 fix CoreMethod 2008-02-20 20:24:08 +00:00
4fa375bd6c proxy for plugin methods 2008-02-20 19:36:24 +00:00
86eeef4b92 refactor:remove ws.(part1) 2008-02-19 20:50:29 +00:00
35446801c6 queue+add logging 2008-02-19 18:27:28 +00:00
3d76649b78 Add missing file. Fixes #43. 2008-02-19 01:44:12 +00:00
c2a7c9fe92 queue 2008-02-18 16:51:49 +00:00
bff0e3f8d5 Attempt fix fastresume saving issue. 2008-02-18 00:50:12 +00:00
b59d148a21 Additional exposure for constants. 2008-02-17 23:54:52 +00:00
b3950faf9b Expose torrent_paused and torrent_checked alerts. 2008-02-17 23:46:44 +00:00
335c037add Modify the remove torrent behaviour to be more HIG compliant.
Add the ability to set per-torrent options from the Torrent menu.
Add new CoreConfig component for keeping a local mirror of the core 
config.
2008-02-17 22:39:50 +00:00
89bea0a40f Modify SignalReceiver to only start the XMLRPC server once the thread is
started.
Allow components to directly connect to signals in Signals.
2008-02-17 18:56:39 +00:00
2eec78f9fb Expose block_ip_range() to plugins. 2008-02-17 05:51:07 +00:00
c9caab1b4d Add block_ip_range() in core and expose it in client. 2008-02-17 05:46:51 +00:00
0940f9072e Add ip_filter.cpp 2008-02-17 05:33:59 +00:00
72e0a35986 Add ip_filter to libtorrent bindings. 2008-02-17 05:33:41 +00:00
bd99ebf190 webui:recheck 2008-02-16 15:13:26 +00:00
de77db0eae webui : robots.txt fix 2008-02-16 14:31:36 +00:00
596e8bbf21 webui : robots.txt, prevent search-engine indexing 2008-02-16 14:29:35 +00:00
07939d46b2 fix advanced webui statusbar for shwouchk 2008-02-16 14:20:00 +00:00
89e2e3ae5c update file_prio+bugfixes 2008-02-16 13:56:04 +00:00
ed7b75b956 fix move,fix add using url 2008-02-16 10:33:40 +00:00
5ca14dbfba Fix duplicate torrents on restart. 2008-02-16 10:09:17 +00:00
6b49e4e623 extra status fields for torrent options 2008-02-16 08:25:24 +00:00
68e5745e02 Fix duplicate torrent loading again.. 2008-02-16 06:09:04 +00:00
967f0a6a78 Fix duplicate torrent handling. 2008-02-16 05:07:07 +00:00
dc2f8d6c9c Only show limits when set.
Increase spacing of StatusBarItems from 5 to 10.
2008-02-16 01:44:23 +00:00
ce1398f342 fix web proxy checkbutton 2008-02-15 23:17:37 +00:00
9db2824bfe Expose set_torrent_max_connections(), set_torrent_max_upload_slots(),
set_torrent_max_upload_speed(), set_torrent_max_download_speed(), 
set_torrent_private_flag(), set_torrent_file_priorities().
2008-02-15 23:14:15 +00:00
89278153bf part_button 2008-02-15 18:13:06 +00:00
c1b8d6e880 start of torrent-move,-options,-files 2008-02-15 18:11:34 +00:00
02d66701c4 fix ppc detection 2008-02-15 17:07:56 +00:00
5fc175092b only add rt on linux 2008-02-15 17:04:31 +00:00
e03a516cb5 Fix #34 2008-02-14 08:01:18 +00:00
02cfb48eea version bump 2008-02-14 06:28:41 +00:00
c013c520df add webui to POTFILES 2008-02-13 19:46:30 +00:00
3e2f8020bb add enabled plugins to send info 2008-02-13 09:47:34 +00:00
bab5b518ab add seed time to changelog 2008-02-13 07:29:34 +00:00
1c08462dd3 add time limits for seeding torrents 2008-02-13 04:45:31 +00:00
9bb58d498c Remove some cruft. 2008-02-12 21:48:58 +00:00
4c2ec1b8fb Change torrent saving/loading to use torrent options and update the
state format to support new options.
Some minor modifications to CoreProxy in client -- only run the 
do_multicall timer when 'connected' to a core.
2008-02-12 21:29:39 +00:00
31ae3488ba Tweak 'quit and shutdown daemon'. 2008-02-12 21:26:01 +00:00
85e6c4c76d update template translation strings 2008-02-12 21:17:47 +00:00
949ee6160d add tab_files 2008-02-12 21:04:12 +00:00
991a413327 torrent_info:display torrent files 2008-02-12 21:03:33 +00:00
6b716c782d update changelog 2008-02-12 20:59:23 +00:00
05240945a7 add 'switch torrent source' to movetorrent plugin 2008-02-12 20:57:46 +00:00
cb493591f1 fix deprecation warning with float 2008-02-12 20:27:58 +00:00
75663de03c polish 2008-02-12 19:56:11 +00:00
dfaf263d66 Fix preferences to actually set global per torrent download/upload
speeds.
Apply global per torrent download/upload speeds to all torrents on 
change.
2008-02-12 19:51:45 +00:00
345f61b740 torrent_add options bugfix 2008-02-12 18:39:07 +00:00
0b306717b6 torrent_add:options 2008-02-12 18:14:18 +00:00
b0a9bf49fe fix broken svn state on torrent_add 2008-02-12 16:53:48 +00:00
9beda7c96e Return a full status, including functions, when len(keys) is 0. 2008-02-12 02:42:09 +00:00
22352888f6 add form again 2008-02-11 20:42:48 +00:00
9be62d2056 add form again 2008-02-11 20:30:44 +00:00
8719ad3c50 torrent_add : start of options ui 2008-02-11 19:13:54 +00:00
8f8a6e41aa torrent_add:options ui 2008-02-11 19:09:23 +00:00
f4a5b750d8 use gobject timer for saving mem and fastresume 2008-02-11 17:43:15 +00:00
9df4492083 refactor forms 2008-02-11 16:59:29 +00:00
ee0851b39e add support for debian kfreebsd 2008-02-11 14:26:29 +00:00
0f5d041c83 update changelog 2008-02-11 13:32:59 +00:00
1d7306910f lt sync - fixes lockup 2008-02-11 13:31:44 +00:00
d32ffa7ace Remove shutdown() from TorrentManager because stop() is already called
during a component shutdown.
2008-02-11 03:13:07 +00:00
c13fb94bcc fix keyboard interrupt 2008-02-11 00:15:31 +00:00
494c0cc558 sync asio 2008-02-10 22:07:23 +00:00
cc5ebf59d8 resync asio 2008-02-10 22:05:58 +00:00
8c5f699015 launchpad lang fix 2008-02-10 21:58:00 +00:00
0848e0faac update changelog 2008-02-10 21:51:06 +00:00
f20e1af0f0 fix alignment of torrent info 2008-02-10 21:49:23 +00:00
42e75fbcdd Fix test port button. 2008-02-10 15:29:15 +00:00
76da1ac525 Show an error message when trying to do an operation while disconnected from a deluge daemon. 2008-02-10 14:12:14 +00:00
25295ee094 Do not save fastresume files if torrent is being checked or is queued
for being checked.
2008-02-10 14:03:22 +00:00
72cb14f1d7 Remove the decorator class and just raise the NoCoreError in
CoreProxy.call().
2008-02-10 13:42:14 +00:00
e95be5d131 Prevent an exception when multiple signals are tried to send to an unreachable client. 2008-02-10 13:39:47 +00:00
3ad87b0e91 Add error.py.
Remove old cache decorator classes from client.py.
Raise deluge.error.NoCoreError when attempting to use a client function 
when not connected to a daemon.
2008-02-10 13:36:58 +00:00
e554140276 Do not try to send signals to a client after 30 consecutive failures. 2008-02-10 13:29:01 +00:00
885ca2c899 Two new commands 'halt' and 'connect'. 2008-02-10 12:02:57 +00:00
ca3f08690e Gracefully handle ctrl-d, and don't exit on blank command. 2008-02-10 11:39:29 +00:00
47406335ac Debug/Info level log messages are noisy for the null-client. 2008-02-10 11:29:36 +00:00
3d26049aeb Rearrange almost all of the code. 2008-02-10 11:11:04 +00:00
5f40e030b1 Make 'deluge -u null' launch the null client. 2008-02-10 09:40:14 +00:00
4eabde05ff Introduce the null client. 2008-02-10 08:22:56 +00:00
27feb11ae8 fix save fast resume 2008-02-10 07:46:44 +00:00
d4d1ccac33 dont resave fastresume for seeds 2008-02-10 07:42:01 +00:00
1f881a3d9c Add debug prints for every function call. Define DELUGE_CORE_DEBUG to
see prints.
2008-02-10 06:41:05 +00:00
587d5afda0 Update upload_memory prior to saving state on shutdown. 2008-02-10 05:57:54 +00:00
40ac3d1ad1 sync libtorrent 1991 2008-02-10 04:36:19 +00:00
883ce6da4a fix dht asserts 2008-02-10 02:31:49 +00:00
994fbd571d keyboard interrupt call shutdown, not core.quit 2008-02-10 00:33:54 +00:00
6322115fef improved support for out-of-memory conditions, fix pe-crypto error handling and add some dht asserts 2008-02-09 22:02:14 +00:00
cb59fd31aa More resume/pause all fixes. 2008-02-09 03:37:42 +00:00
c7c1ea26f9 Fix resuming all torrents. 2008-02-08 22:51:41 +00:00
eee68666ef torrent-index no - , mimic gtk ui and use 0 or '' 2008-02-08 18:56:35 +00:00
1c33177a63 torrent-index use '-' for unknown/empty values 2008-02-08 18:47:21 +00:00
eeac163a9d use utf-8 infinity symbol instead of Unlimited/Infinity string 2008-02-08 18:33:35 +00:00
ae792ccb21 Split up function calls in get_torrent_status() and add 'file_progress'
key.  Patch from Sadrul.
2008-02-08 05:43:14 +00:00
f1d488a09c Fix pause/resume all torrents in the SystemTray. 2008-02-08 00:46:10 +00:00
6342fe2e08 Set file_priorities default value to [] if not priorities have been set. 2008-02-07 23:19:17 +00:00
055e42776a Fix last. 2008-02-07 22:55:04 +00:00
1f3452277a Add 'file_priorities' status key to torrent. 2008-02-07 22:53:51 +00:00
f940a4c4db http_tracker connection fix and proxy support for udp-trackers 2008-02-07 07:23:43 +00:00
9a1d5e9bfa Allow incomplete options dictionaries when adding a torrent. The
missing keys will be replaced by defaults.
2008-02-07 07:20:17 +00:00
187b4c423d update stats file due to our new ftp osuosl server 2008-02-07 06:46:21 +00:00
737b95250d fix static-fileserver license 2008-02-04 21:21:02 +00:00
75a626b28d more minor stuff on status bar 2008-02-04 21:06:02 +00:00
7c0a997bbf move settings-link 2008-02-04 20:36:35 +00:00
6402b95099 dht image 2008-02-04 20:32:26 +00:00
6dbadf877d mimic gtk status-bar->images 2008-02-04 20:26:11 +00:00
ab37facd54 max 2 digits after . for %-completed 2008-02-04 18:57:36 +00:00
f7c7644362 fix error in lib/readme.txt 2008-02-04 18:17:14 +00:00
3af0ea2e9f Fix exception in get_selected_torrents(). 2008-02-04 07:28:17 +00:00
2accb9902e add ssl to changelog 2008-02-04 04:16:40 +00:00
22f6477d69 Fix another typo. 2008-02-03 22:50:06 +00:00
cc38bbdfbf Fix typo. 2008-02-03 22:45:23 +00:00
ea49afb9c3 Fix tracker scraping in tracker_reply_alert. 2008-02-03 16:28:06 +00:00
5e46ac1b42 fix library names for vc71 2008-02-03 09:05:55 +00:00
6602721526 update changelog 2008-02-03 07:29:15 +00:00
784a25aec1 Fix desired ratio to default value when adding torrents. 2008-02-03 06:37:14 +00:00
f005a5d869 remove file.cpp in win 2008-02-03 05:37:10 +00:00
d40387ada9 forgot z has to be zlib in windows 2008-02-03 05:12:47 +00:00
586543917a add proper boost path for windows 2008-02-03 03:24:36 +00:00
684c3098d9 Touch-up setup.py. 2008-02-03 01:12:46 +00:00
34fd115051 add windows support to setup.py 2008-02-03 01:04:26 +00:00
8ab923fb94 Update TODO 2008-02-02 01:31:08 +00:00
9469610aca Use new torrent states instead of using libtorrent's. 2008-02-02 01:30:18 +00:00
4b18f49ec1 Only draw the advanced progress bar if 'num_pieces' is greater than 0. 2008-02-01 21:18:58 +00:00
e2eaa9abb4 logout;more robust async 2008-01-31 19:11:39 +00:00
7a973947a7 add logout;remove json 2008-01-31 17:52:48 +00:00
9541f02fb4 Remove some Anonymous browser cruft in open_url_in_browser(). 2008-01-31 07:25:13 +00:00
a23ff6cbca randomize encryption pad size 2008-01-31 06:51:35 +00:00
aed8b1a722 randomize encryption pad size 2008-01-31 06:51:14 +00:00
1653a72c7a Do not update UI when minimized or hidden. 2008-01-30 12:56:50 +00:00
2fba592e6c Move update label calls to where they should be. 2008-01-29 09:08:27 +00:00
f8adeb9c69 Statusbar DHT touch-up 2008-01-29 09:01:02 +00:00
5e66a28e88 check dht status in start() and dont get dht nodes when dht is off 2008-01-29 08:51:46 +00:00
c3061576f3 check dht value on start() and dont get_dht_nodes() when dht is off 2008-01-29 08:12:44 +00:00
8806704043 fix dht value change 2008-01-29 07:29:14 +00:00
50fa1ff1a9 add dht to config_value_changed 2008-01-29 07:17:19 +00:00
c97175a51e add add_dht_router to libtorrent bindings 2008-01-29 07:16:20 +00:00
f757593146 add dht nodes to status bar 2008-01-29 06:58:23 +00:00
b29583024d Set the multicall to None if disconnected from the daemon. 2008-01-29 02:44:25 +00:00
70f82f947f Fix the new release check from informing user of an update when they are
unable to download the version file.
2008-01-28 08:26:31 +00:00
f4e97eae22 Fix various spelling mistakes in ChangeLog. 2008-01-28 08:13:16 +00:00
0f8a55c66c Update ChangeLog 2008-01-28 08:07:35 +00:00
2a72d56055 Fix loading of BlocklistImport if the config key 'load_after_days' is
not found.
2008-01-28 07:09:33 +00:00
a7eb6ae0f7 update version numbers for release 2008-01-28 07:04:37 +00:00
8e58ead77c update changelog 2008-01-28 07:02:45 +00:00
8604de25d8 Fix queue order on state load. 2008-01-28 06:41:13 +00:00
94f36c72a1 lt sync - cpu spike fix 2008-01-28 03:19:21 +00:00
67dfd74bdc lt update which fixes cpu spikes in 0.5.8.2 2008-01-28 03:17:29 +00:00
6dd304ee63 another unicode tracker fix 2008-01-28 02:51:38 +00:00
cd49b329f6 works yay 2008-01-27 09:58:10 +00:00
66458da847 test 2008-01-27 09:57:53 +00:00
d1677a855f Fix debug message. 2008-01-26 13:24:42 +00:00
a55dcc8099 Catch RuntimeErrors in load_torrent(). These are likely due to bad
torrent files.
2008-01-26 07:10:39 +00:00
38f0d9f71c Fix exception due to common not importing log. 2008-01-26 06:45:23 +00:00
a242566099 Update TODO. 2008-01-25 03:11:05 +00:00
c1710ca0f4 Add the ability to set file priorities for torrents in the core.
The Add Torrent dialog now sets proper file priorities based on user 
input.
2008-01-25 02:55:48 +00:00
073b62408f Show revision number in version if available. 2008-01-25 02:28:34 +00:00
4e42c2744d Remove another window.update(). 2008-01-25 00:31:19 +00:00
d5ab09e11f Remove main window update() attempts in SystemTray.
Force the add_torrent call to happen right away.
2008-01-25 00:28:07 +00:00
7406b1cd7d up version for fix release and update chnagelog 2008-01-24 23:19:28 +00:00
34b1726178 lt sync 1959 2008-01-24 23:17:49 +00:00
ec21e02cb2 launchpad lang sync 2008-01-24 23:16:50 +00:00
b22a40de9b BlocklistImport: Option to download new blocklist after certain numbers
of days has past.  Patch from Mark Stahler.
2008-01-24 08:46:17 +00:00
3ccfb4e03e Fix get_selected_torrents() when removing multiple torrents. 2008-01-24 03:51:15 +00:00
5ab95814e7 Adjust Preferences dialog height a bit. 2008-01-24 01:59:36 +00:00
10cced15a3 Fix GtkWarning in StatusBar when disconnecting from daemon. 2008-01-24 01:56:25 +00:00
9d5e60c42f Modify the Downloads tab of Preferences to include changes associated
with the new Add Torrent dialog.
2008-01-24 01:33:37 +00:00
468e51c72b Fix deregistering signal receivers in the core. 2008-01-24 01:31:48 +00:00
50e6b343c3 Fix removing torrents options in WebUI. They were reversed. 2008-01-23 01:53:20 +00:00
e231621e12 oops 2008-01-22 21:01:35 +00:00
e439b69252 tweak last 2008-01-22 21:01:10 +00:00
a1ead133df fix searching for bad url in edit trackers 2008-01-22 20:59:30 +00:00
22c07f8e10 use async api for torrent_list(index-page) 2008-01-22 18:19:30 +00:00
9236e9bff2 fix eta 2008-01-22 18:03:48 +00:00
bbe31367d4 Use os.popen2() instead of os.fork() to daemonize. 2008-01-22 11:45:56 +00:00
4ba32dc4bf Select a torrent in the list if none are selected on torrent add. 2008-01-22 11:43:58 +00:00
4036ff4310 remove torrent file by default 2008-01-22 07:30:35 +00:00
a4e7e9c41a fix webui fuck up 2008-01-22 06:42:50 +00:00
93e631d893 Add hack to determine svn revision on Gentoo with svn ebuild. 2008-01-22 05:20:20 +00:00
b64393d096 Get some error output when trying to get svn revision. 2008-01-22 04:27:33 +00:00
e092619d64 Remove hack to set revision to "". 2008-01-22 04:11:29 +00:00
3a47731483 Default to Random Ports. 2008-01-22 03:57:46 +00:00
a3fc292dd6 Tweak Network tab. 2008-01-22 03:54:29 +00:00
e7ecead473 Tweak Downloads tab. 2008-01-22 03:40:44 +00:00
c747e4e125 Revert last. 2008-01-22 03:31:50 +00:00
9a36ef3c26 fix alignment ugliness in preferences 2008-01-22 03:20:08 +00:00
20d13f8ddc tweak unicode from tracker 2008-01-22 02:09:27 +00:00
7ed0821143 Tweak EditTrackersDialog async call. 2008-01-22 01:26:31 +00:00
3946b03b83 remove extra stats as its causing too many errors 2008-01-22 00:53:20 +00:00
6438cb0121 fix edit trackers to be async 2008-01-22 00:41:05 +00:00
74a1f60e42 try to catch unicode error 2008-01-21 23:51:41 +00:00
3aca2fa33c use get_default_download_dir() for move torrent pref 2008-01-21 22:53:24 +00:00
10d7f86f6f Reset revision file to "" after build and install. 2008-01-21 22:39:10 +00:00
6cb3b2b9e0 add move torrent 2008-01-21 22:38:58 +00:00
1a0718b4ac Update 'save_path' on storage_moved_alert. 2008-01-21 22:24:31 +00:00
db97daeeeb Remove update() call as it is no longer necessary. 2008-01-21 22:13:39 +00:00
83cc479898 split torrent_status for future async 2008-01-21 19:51:55 +00:00
3807b372ff async status-bar + pause/resume 2008-01-21 19:31:36 +00:00
c9a5caa3ec test perf improvement of multicall 2008-01-21 18:28:09 +00:00
217d7eaa90 sync-wrapper for new async client 2008-01-21 17:57:38 +00:00
762f8a52af Fix preferences when not connected to daemon. 2008-01-21 10:02:30 +00:00
a461074da2 Catch signals and KeyboardInterrupt and shutdown properly in GtkUI. 2008-01-21 09:54:03 +00:00
b950d28781 Handle setting the revision in a different way. 2008-01-21 09:25:21 +00:00
0b807e8945 Fix errors on quit. 2008-01-21 09:13:36 +00:00
72ea2d0632 catch index error 2008-01-21 07:58:16 +00:00
f08fcc68d3 Only call a callback once for a specific method. 2008-01-21 06:37:30 +00:00
2a637c0b12 Fix preferences when clicking Apply or Ok.
Add revision number to about dialog.
2008-01-21 06:03:38 +00:00
f16092400d Change get_version() to only return version number, not revision.
Added get_revision() to get svn revision number of build.
2008-01-21 05:56:45 +00:00
fdb07b4929 Try to include svn revision number in version if available. 2008-01-21 03:14:24 +00:00
1c9c765cb1 Change update intervals of several components.
Have StatusBar update the respected label when it receives a 
'config_value_changed' signal.
2008-01-21 01:58:19 +00:00
f9d25287ea Change Component to use individual timers for the components. This
allows for different update intervals for the components.
2008-01-21 01:57:25 +00:00
799037a46b Improve performance by only updating labels that have changed. 2008-01-21 01:13:56 +00:00
bcd2bcd2d4 SignalReceiver now chooses a random port to listen on. 2008-01-20 23:47:57 +00:00
2ce5d5e35e Prevent Scheduler plugin from setting an invalid 'max_active_torrents'
value.
2008-01-20 23:16:38 +00:00
80514ad829 Fix last commit.
Use 'config_value_changed' signal from core to get config value updates 
instead of polling every update for StatusBar and SystemTray.
2008-01-20 21:37:11 +00:00
f0b6833d17 Reduce the amount of calls in the MultiCall batch by removing
duplicates.  Increase the MultiCall timer to 200ms.
2008-01-20 19:11:36 +00:00
452781a78c fix column width saving 2008-01-20 03:59:48 +00:00
3e2631213c log pygtk.require warning 2008-01-20 03:13:09 +00:00
0b2dcd5dc2 i need to stop smoking weed 2008-01-20 03:00:11 +00:00
bb86fefe66 try/else pass for pygtk.require 2008-01-20 02:58:41 +00:00
d965adff82 Disconnect from Gnome session during shutdown. 2008-01-20 02:49:25 +00:00
5d1dbc98e5 Give the Queue plugin some love. 2008-01-20 02:37:26 +00:00
6485986294 Silence xmlrpclib about int exceeding XML-RPC limits. 2008-01-20 02:00:42 +00:00
23840ce390 Destroy AddTorrentDialog window after clicking 'Add'. 2008-01-20 01:55:17 +00:00
f327290e33 Fix preferences for removed preference. 2008-01-20 01:52:27 +00:00
28a4883a72 Fix signals. 2008-01-20 01:00:39 +00:00
df29d7d69a lt sync 1958 2008-01-20 00:59:49 +00:00
76a0eb12e8 Do not make Core a thread anymore as it is not needed. 2008-01-20 00:56:42 +00:00
f042bf0dda use die in signal 2008-01-20 00:46:52 +00:00
77a63c791c fix finally call for 2.4 compatibility 2008-01-20 00:40:12 +00:00
bf26a9ef50 import signal and fix shutdown call 2008-01-20 00:38:36 +00:00
e5f9a313c2 fix missing icon 2008-01-20 00:30:43 +00:00
071a0cdbaa fix path oops in last 2008-01-20 00:11:50 +00:00
3a102189cf add missing pixmap 2008-01-19 23:58:03 +00:00
0e5c81c2e0 Handle losing contact with the daemon gracefully. 2008-01-19 23:33:09 +00:00
42b5f6872c Fix labels. 2008-01-19 23:11:12 +00:00
0f7a91797f Remove 'Clear Seeders' tool button. Remove 'Add URL' menu item. Modify
the Preferences dialog a bit.
2008-01-19 23:05:55 +00:00
1fa301cb69 Change client.py to use multicalls. This forces all client methods to
be async.
2008-01-19 22:33:30 +00:00
29c77e1a04 Hack xmlrpclib to stop from dieing with long numbers. 2008-01-19 16:48:45 +00:00
7e03f82d73 Import proper xmlrpclib. 2008-01-19 16:47:46 +00:00
3618b4bfe8 sync lang files 2008-01-19 04:56:48 +00:00
fe01d8c55f version updates and todo/changelog update 2008-01-19 04:54:09 +00:00
263387c6c9 fix saving fast resume on checking torrents 2008-01-19 04:53:36 +00:00
379eac85c4 lt sync 1955 2008-01-19 04:52:22 +00:00
d2f6a99778 Catch all exceptions during interactive_add_torrent. 2008-01-18 04:46:39 +00:00
4a7e0a578b Try catching more exceptions in the core. 2008-01-18 04:37:33 +00:00
8fadfb8254 Prevent the use of an invalid unique_id from throwing an exception
during get_torrent_state().
2008-01-18 03:40:38 +00:00
b73dd60e6b minor css fix+pwd-cfg 2008-01-17 20:09:05 +00:00
1c3c5b76b0 fast resume oops2 2008-01-17 12:22:27 +00:00
ac80dd4d59 fast resume oops 2008-01-17 12:18:11 +00:00
89af88e370 Refactor TorrentView to have async returns populate a local status
dictionary.  We now update every second against the local status 
dictionary instead of updating on every async return.
2008-01-16 06:42:43 +00:00
1e5af9bd87 Use threading in ConnectionManager to test online status of hosts. 2008-01-16 06:40:58 +00:00
d1eb4bc8d6 use pieces wanted instead of total pieces to draw adv progress bar 2008-01-16 02:19:15 +00:00
966b2fa459 config plugins:raise todo 2008-01-16 00:00:21 +00:00
350cad9f3f config plugins 2008-01-15 23:44:30 +00:00
03c9806b40 config pages 2008-01-15 21:04:49 +00:00
790eda0f2c lt sync 1947 2008-01-15 08:46:24 +00:00
20cce5aa68 don't commit *.pyc files 2008-01-14 22:14:14 +00:00
c71d4f3258 config within webui, see /config/ for a preview 2008-01-14 22:13:32 +00:00
8ae26b049c Fix SystemTray on systems with old PyGTK. 2008-01-14 12:02:53 +00:00
73c14b8c47 Prevent a stall in torrentview updates if a signal isn't received
properly.
2008-01-14 11:48:51 +00:00
f5cc3db2d5 Make port spinbuttons editable. 2008-01-14 11:21:35 +00:00
f9a664b9c7 Attempt to fix issues where torrents would not update correctly in the
torrent view.  Also an attempt at improving performance.
2008-01-14 09:00:13 +00:00
eaddaaa844 Fix adding torrents by URL. 2008-01-14 08:46:44 +00:00
cc81e1073d Catch 'address already in use' error when trying to use a port that is
in use by another program.  We now try to use a range of 40000-60000 
when this error occurs.
2008-01-14 08:04:28 +00:00
5a90f48ccb Include deluge_icon.gif for WebUI. 2008-01-14 05:40:40 +00:00
642663604f Fix possible issue if pref 'choose_directory_dialog_path' is None. 2008-01-14 05:13:21 +00:00
57870b8094 don't import forms 2008-01-13 11:22:51 +00:00
806e3885b4 test-commit/sync to 189 2008-01-13 11:16:56 +00:00
6b68ac9ad7 Attempt to fix issue where all the columns start very small. 2008-01-13 10:58:52 +00:00
1de14a1ce0 Fix issue with removing items while iterating through the self.state
dictionary.
2008-01-13 08:32:46 +00:00
0d793e7f89 Attempt to load the state in a safe manner. 2008-01-13 08:10:35 +00:00
2e0be83732 lt sync 1938 2008-01-13 06:24:52 +00:00
dc60e26c59 use die instead of save_yourself and add arg to shutdown func 2008-01-13 05:00:04 +00:00
dbe41a3cd5 lt sync 1929 2008-01-11 20:25:08 +00:00
a5d3444fd8 Initial commit of WebUI support for 0.6. The WebUI revision is 187.
You can start the webui by doing: $ deluge --ui web
2008-01-11 01:42:47 +00:00
49c09bf297 Catch exception in calc_free_space(). 2008-01-10 12:12:30 +00:00
8f675ebacf lt bandwidth limiter mutex fix 2008-01-10 06:23:53 +00:00
c7f3323d3e remove browser 2008-01-10 02:16:34 +00:00
e65d720890 Fix autostarting daemon. 2008-01-09 23:43:00 +00:00
c763d82306 2008-01-09 21:41:07 +00:00
ee4d054582 fix pausing of checking torrents 2008-01-09 21:16:13 +00:00
cb64ecb282 update, then present, not the other way around 2008-01-09 18:05:24 +00:00
fcfdcd6b06 tweak new release pref 2008-01-09 08:18:35 +00:00
2e895795b6 Force '-DNDEBUG'. 2008-01-09 07:12:04 +00:00
e491ecf0df lt sync 1912 2008-01-09 06:35:48 +00:00
77f542b925 more tab work 2008-01-09 04:02:13 +00:00
068e4008c6 update todo and initial stages of browser tab support 2008-01-08 06:01:34 +00:00
70497c074e fix win32 problems with rt 2008-01-08 06:00:37 +00:00
7b39f7adf5 lt sync 1912 2008-01-08 05:59:58 +00:00
e0fc7f3d2e fix #647 2008-01-07 23:25:10 +00:00
7d781568ea remove rt from win32 2008-01-07 21:43:44 +00:00
5c485afe5e Make new add torrent dialog actually work, but still needs work. 2008-01-07 02:18:40 +00:00
dcefa152c0 sync rest 2008-01-07 01:36:35 +00:00
294e1f6b76 lt sync 2008-01-07 01:36:09 +00:00
d76ed8cfba remove old files 2008-01-06 20:08:36 +00:00
62b9a9170a 2008-01-06 20:02:44 +00:00
8c67f97631 2008-01-06 20:02:16 +00:00
3997c235be 2008-01-06 20:00:13 +00:00
c6eb180e66 2008-01-06 19:58:20 +00:00
b31fa3a6df 2008-01-06 19:57:16 +00:00
22225963d5 2008-01-06 19:56:11 +00:00
9741cbbda0 2008-01-06 19:54:53 +00:00
65d007c681 browser and search are now plugins 2008-01-06 19:53:47 +00:00
d15a03bce1 test 2008-01-06 19:52:56 +00:00
0e82847ae0 fix cast oops, add youtorrent to search, catch fastresume error 2008-01-05 00:13:50 +00:00
d497a971db fix cast oops 2008-01-04 23:59:54 +00:00
3baecc13d3 save fastresume every minute 2008-01-04 23:30:25 +00:00
0ca8b5887b lt sync 2008-01-03 19:08:52 +00:00
34eec4ab93 Improve performance of the statusicon and progress cell functions. 2008-01-03 03:22:08 +00:00
76e9cb3e76 remove needless casts for performance 2008-01-03 02:43:54 +00:00
7477a0f159 Improve performance of some common functions. 2008-01-03 02:35:37 +00:00
1efe0f7778 Improve performance of the cell data functions. 2008-01-03 02:33:38 +00:00
c7fcbd40e3 Remove some needless 'casts' in common.py to slightly improve
performance.
2008-01-03 02:30:40 +00:00
9a3a96a31f py2.4 fix - thresh 2008-01-03 00:57:36 +00:00
72f49e3557 add rt/crypto to libraries - thresh 2008-01-03 00:52:08 +00:00
39e987d5da Improve get_torrent_status() speed by only building the files dictionary
when the Torrent object is created.
2008-01-02 11:54:42 +00:00
a3658e352b Fix undefined sleep. 2008-01-02 11:46:08 +00:00
df9fd2af09 Fix sorting of name column. 2008-01-02 11:45:36 +00:00
7e49e9acc4 tweak windows build preprocessors 2008-01-01 03:56:50 +00:00
ff0ade61b0 tweak vista shutdown 2008-01-01 02:36:06 +00:00
24fc4f0a49 Start of work integrating new Add Torrent dialog. 2008-01-01 01:03:15 +00:00
9972471231 lt sync 2007-12-31 10:44:40 +00:00
42f4d55db2 tweak version 2007-12-31 10:43:37 +00:00
2d27cede5f asio sync 2007-12-31 07:11:07 +00:00
4d4b30700a sort by seeds in piratebay search 2007-12-30 22:02:05 +00:00
736afd6a19 add /seeds to mininova search 2007-12-30 22:00:08 +00:00
74d382dc86 Tweak the add torrent glade file. 2007-12-30 04:01:33 +00:00
aa932b56a7 Fix crash when trying to add a bad .torrent. 2007-12-30 04:00:53 +00:00
91fa4df798 fix new release 2007-12-30 02:58:47 +00:00
150609e8c8 lang sync 2007-12-29 22:01:26 +00:00
aeb1b9bac2 allow higher ports in proxies 2007-12-29 21:27:52 +00:00
d1a5490e6b handle events before apply_queue 2007-12-29 18:40:01 +00:00
5a175587f4 Initial commit of the new Add Torrent dialog. 2007-12-29 13:18:31 +00:00
7ac3421e31 Remove pointless '+0.5' from update timer. 2007-12-29 05:37:21 +00:00
3b2d205866 alter signal handling shutdown 2007-12-29 05:04:35 +00:00
c067cbe4bd tweak import of gnome.ui 2007-12-29 04:52:14 +00:00
fb222ce57f remove no-longer needed freebsd fix 2007-12-29 04:04:08 +00:00
c21f650c45 fix handling of invalid torrents 2007-12-29 03:16:30 +00:00
ea7fdc3bc1 tweak pause/resume 2007-12-29 01:39:58 +00:00
eeb2c26002 tweaks and lt sync 2007-12-28 23:35:11 +00:00
24471624c2 Fix previous fix for non-present key in cache. 2007-12-28 13:39:47 +00:00
e069542e3a Fix allocation modes. They were reversed. 2007-12-28 13:20:34 +00:00
5c38bfdbe7 Fix batch status caching for when a key doesn't exist in the cache. 2007-12-28 13:19:50 +00:00
dd395b8c9c Attempt to reduce the number of updates to the TorrentView by caching
the previous status batch dictionary and only updating the difference.
2007-12-28 08:48:33 +00:00
44c82db9a8 Fix display of speeds in the systemtray tooltip. 2007-12-28 08:22:59 +00:00
c8508c8d15 Use an asynchronous batch torrent status method for updating the
torrentview list.
Other various minor stuff.
2007-12-28 05:29:54 +00:00
4156788296 2007-12-27 17:41:01 +00:00
2dec88e5c2 makefile fix 2007-12-27 17:40:35 +00:00
e2e3073f23 Fix last. 2007-12-27 10:56:18 +00:00
91c55522b8 Optimize torrent.get_status() a bit.
Emit signals with gobject.idle_add().
2007-12-27 10:54:05 +00:00
5eeabadc88 lt fixes 2007-12-27 06:19:51 +00:00
85fb85cf13 fix association with svn builds 2007-12-27 05:52:38 +00:00
d3492be2c2 fix having two instances of deluge running when fixing environment variables 2007-12-27 01:50:56 +00:00
c6f69d47e2 fix ubuntu and separate config dir issues 2007-12-27 00:45:11 +00:00
ea953f54b1 fix debug 2007-12-26 22:17:43 +00:00
eea8ff8e98 try to fix ubuntu again 2007-12-26 22:17:23 +00:00
cd74538adf check for bookmark first 2007-12-26 21:09:04 +00:00
7e748a1306 fix config error 2007-12-26 20:10:15 +00:00
ab8e6e6bde fix freebsd oops 2007-12-26 20:07:44 +00:00
2465c5d214 try to fix adding torrents when overwriting env variables 2007-12-26 20:06:38 +00:00
5828ee03e9 account for freebsd path for gtkmozembed 2007-12-26 19:48:48 +00:00
a29c735acd tweak last 2007-12-26 19:28:43 +00:00
dacebd2eec use external browser always for active port test 2007-12-26 19:27:52 +00:00
659c1c5f34 warning popup instead of crash if importing browser fails 2007-12-26 18:53:58 +00:00
d647031bee tweak new version 2007-12-25 23:45:55 +00:00
02ad4098bc fix update alert 2007-12-25 17:39:58 +00:00
f7952eaa7f remove restart notice in prefs for browser 2007-12-25 07:50:14 +00:00
5a3527611d fix browser icon without restart 2007-12-25 07:48:31 +00:00
3c0d9279eb add missing lt changes to changelog 2007-12-25 07:32:33 +00:00
3d794b6983 update changelog and version numbers for rc2 release 2007-12-25 07:27:23 +00:00
9b52e63f5b fix icon size in search 2007-12-25 03:34:57 +00:00
214042af9a tweak launching of frames externally 2007-12-25 03:31:34 +00:00
3fb919b99d fix oops in notification 2007-12-25 03:02:07 +00:00
653dcb046e minor glade tweak 2007-12-25 02:25:50 +00:00
445f3840b2 add buttons to launch main/footer frames into an external browser 2007-12-25 02:24:06 +00:00
c748419fa9 webui sync 2007-12-24 22:52:04 +00:00
431664fec4 lt sync 2007-12-24 22:27:26 +00:00
77d4fefba9 remove filelist from notification list 2007-12-24 09:12:23 +00:00
3ba156632f fix flexrss before blocklist 2007-12-24 04:47:34 +00:00
4ee8fd8394 tweak message 2007-12-24 04:44:08 +00:00
5b1a381389 change add torrent to ctrl+n and remove browser icon when not selected in preferences 2007-12-23 23:52:15 +00:00
b59de9aa8b fix shrinking of main window 2007-12-23 06:48:14 +00:00
4149e1d285 sync trunk 2007-12-23 02:42:22 +00:00
8d12fe6312 testing 2007-12-22 22:50:28 +00:00
58a240a998 Added tray tooltip.
Increased client cache time to 1.5 seconds.
2007-12-22 20:35:43 +00:00
75684cde8d fix up webui 2007-12-22 19:58:46 +00:00
5ccca41ea6 2007-12-22 08:36:15 +00:00
23d13a2cfd revert last 2007-12-22 08:20:17 +00:00
b803d39d63 webui sync r168 2007-12-22 08:15:51 +00:00
93d0ab797b lt fix - fix to bound check piece index before use in incoming_allowed_fast 2007-12-19 07:06:10 +00:00
473110b7fe Fix up calls to open_url_in_browser() because it's been moved to
deluge.common.
2007-12-18 00:03:34 +00:00
4d6e4b1a06 Create a specialized decorator for caching get_torrent_status(). 2007-12-17 23:55:42 +00:00
9251a82259 lt fix - added missing include guard to disk_io_thread.hpp 2007-12-17 23:55:31 +00:00
68642443a5 Make CoreProxy a GObject. 2007-12-17 11:14:22 +00:00
60fc0d24fe Start of caching for client.py. 2007-12-17 04:00:39 +00:00
53702b378e lt fix - fixed typo in plugin 2007-12-16 22:54:18 +00:00
419333b9cb Only enable plugins that are enabled in the core. 2007-12-16 11:10:12 +00:00
02fe961a8a Fix deluge.common. 2007-12-16 10:40:25 +00:00
58a0506b98 Sync lt 1825 2007-12-16 10:15:32 +00:00
3e9eff9b16 lt piece picker fix 2007-12-16 06:35:45 +00:00
6dff50c3f5 Import gobject now. Oops. 2007-12-16 05:36:51 +00:00
3dd3d22fd0 catch (more) delete 2007-12-15 18:40:03 +00:00
c6ff9e43b7 catch delete 2007-12-15 18:14:20 +00:00
c8507b4c28 fix lt assert 2007-12-14 08:44:31 +00:00
6733ce38d2 Add removals to the setup script.
Do not display the Open Folder menu item if not connected to a 
localhost.
2007-12-14 07:44:53 +00:00
62bd4a86f8 Fix EditTrackersDialog to import deluge.component correctly. 2007-12-14 06:38:11 +00:00
f133704905 home env doesnt exist in windows, so work around that 2007-12-14 03:48:16 +00:00
8821113742 fix column saving 2007-12-14 02:21:02 +00:00
2317bb4d52 change tabs to spaces 2007-12-14 01:23:09 +00:00
0ed3bda526 proper paths for cross platfrom 2007-12-14 01:19:39 +00:00
3fd1434b04 tweak path to icon 2007-12-14 01:02:42 +00:00
71cf5198d4 launchpad lang sync 2007-12-13 06:36:16 +00:00
83be470f1e Libtorrent sync 1814 2007-12-13 06:30:39 +00:00
22ddf86a4d add web seed to torrent creator in changelog 2007-12-13 06:25:51 +00:00
fa7a785aab update changelog 2007-12-13 05:08:56 +00:00
202b3019a3 fix total uploaded 2007-12-13 04:50:27 +00:00
5eb2e95dd4 change trunk version # 2007-12-13 04:44:40 +00:00
b800545ca1 lt - attempt to fix potential deadlock in disk_io_thread 2007-12-13 04:13:29 +00:00
bf037ab3d6 tweak init script 2007-12-12 23:20:30 +00:00
79b0f67760 lt bug fixes 2007-12-12 20:23:31 +00:00
657055cab1 change shutdown from using abort 2007-12-12 20:22:15 +00:00
8271d70ec7 Plugin system changes in regards to enabling/disabling plugins. 2007-12-11 04:45:47 +00:00
f3cdfa8351 Fix Queue plugin loading when state file is wrong. 2007-12-11 01:35:36 +00:00
9eaf2e602a fix seeding ratio stop on finished torrents 2007-12-11 01:08:49 +00:00
c35a13b227 set half-open connection lower on ms' retarded windows 2007-12-10 22:24:45 +00:00
54155670b5 dht fix 2007-12-10 20:57:25 +00:00
78b78ce8b3 Use deluge.component for core components. 2007-12-10 10:49:42 +00:00
559fcdf51c Move component.py up one level. 2007-12-10 10:26:44 +00:00
43c09af8b1 fix zombie fix oops 2007-12-09 19:05:17 +00:00
d355a42af8 bandwidth manager fix 2007-12-09 18:50:22 +00:00
91531deb6d no more zombie processes when launching external apps 2007-12-09 04:31:39 +00:00
f73e9be9c9 increase tracker stop timeout 2007-12-09 04:31:18 +00:00
9e9eee5d2c Fix loading when no .state file exists. 2007-12-08 21:39:19 +00:00
26350c5099 Fix listview. 2007-12-08 21:23:08 +00:00
589df97add Add ListView state saving.
Have TorrentView save and load state on startup/shutdown.
Add new method to components shutdown() which is called when the UI is 
exiting to allow components to clean-up.
Clean up some debug output.
2007-12-08 05:02:29 +00:00
7522ecf719 Fix sorting in TorrentView. 2007-12-08 03:48:52 +00:00
4a8f2c46f2 Add Classic mode to the preferences dialog. 2007-12-08 02:15:17 +00:00
0f8199dbab close upnp on close 2007-12-07 22:02:34 +00:00
04ad4ae7be launchpad language sync 2007-12-06 02:53:18 +00:00
68f9a3f265 webui sync r165 2007-12-05 22:06:31 +00:00
2324fdca83 dht abuse prevention in lt 2007-12-05 19:04:27 +00:00
3b9983f110 Add filtering to torrentview for use with sidebar labels.
Implement sidebar filtering.
2007-12-05 05:21:34 +00:00
db80d433b6 revert svg for windows 2007-12-03 18:10:15 +00:00
b4795cc362 windows now supports svg icons 2007-12-03 16:45:11 +00:00
d849684e8b fix about dialog focus in windows 2007-12-03 15:58:05 +00:00
b079f1b755 fix alignment 2007-12-03 14:43:10 +00:00
c7067c93d2 close daemon in vista, too 2007-12-03 13:14:27 +00:00
d45b859705 tweak height 2007-12-02 22:55:55 +00:00
856420c640 add web seeds to torrent creator 2007-12-02 22:36:02 +00:00
4f55d7dfc6 fix date in changelog 2007-12-01 18:31:05 +00:00
27bc2a72b0 tweak full hd warning - disable it in libtorrent 2007-12-01 06:45:43 +00:00
4037479119 update changelogs and up trunk version 2007-12-01 04:20:47 +00:00
a0af136b81 remove unneeded makefiles 2007-12-01 04:14:24 +00:00
f757efde4d sync lt to rc_0_13 branch 2007-12-01 04:07:11 +00:00
cfe1bd241d fix duplicant_torrent and libtorrent bugfixes 2007-12-01 03:54:42 +00:00
2eb3868115 increase tracker timeout 2007-12-01 03:24:36 +00:00
622080de50 Fix signalreceiver to work when connected to a remote daemon. 2007-11-30 06:50:48 +00:00
6953e280ad total_done overflow fix in libtorrent 2007-11-30 06:39:12 +00:00
e32f603103 UI tweaks. 2007-11-30 06:20:47 +00:00
f817de3575 fix faq url 2007-11-30 04:48:00 +00:00
aa019231ba Scrape tracker if we do not receive any peer information on announce.
Minor UI tweaks.
2007-11-29 07:09:18 +00:00
a7e6ec4b06 Sync libtorrent to 0.13RC
Update python bindings to support wait_for_alert() and scrape_tracker()
plus associated alerts.  This modifies lt's wait_for_alert() to return a
std::auto_ptr.
2007-11-29 06:02:33 +00:00
dae1472f61 lt sync 1787 2007-11-28 03:29:53 +00:00
5b71f1f6d9 up trunk version number post release 2007-11-27 23:16:11 +00:00
7d5e079336 remove webui example template 2007-11-27 21:35:16 +00:00
039c5591ed sync languages for release 2007-11-27 19:18:55 +00:00
e00fece477 fix portuguese encryption translation 2007-11-27 18:56:31 +00:00
fb5d4c8e55 gtk stock non translatable again 2007-11-27 18:10:36 +00:00
d3890efaf9 Add removetorrentdialog.py 2007-11-27 05:07:01 +00:00
36a5440858 webui button fix from vonck 2007-11-26 23:21:34 +00:00
b3ab64182e webui rev161 2007-11-26 19:43:51 +00:00
47acfd93ea try to catch invalid_handle in add_torrent 2007-11-26 18:56:17 +00:00
9ec83822a0 tweak replace_tracker in core.py 2007-11-26 17:31:22 +00:00
d288e39a54 tweak try/catch again 2007-11-26 17:03:04 +00:00
8c5355498c tweak boost library variables 2007-11-26 16:42:07 +00:00
4dad638a41 webui tweaks rev 160 2007-11-26 16:06:55 +00:00
1698c57f58 tweak get_index_from_unique_id 2007-11-26 06:07:47 +00:00
f96cc8e56a fix typo 2007-11-26 05:57:31 +00:00
675a286f8a make sure simplerss does not load 2007-11-26 05:40:24 +00:00
0d51bb250e fix indent 2007-11-26 04:57:28 +00:00
8f6bb96df0 add catch to get_index_from_unique_id 2007-11-26 04:48:11 +00:00
32fc9bbf07 tweak last 2007-11-26 02:20:40 +00:00
b7983a5ab4 catch invalid_handle on add_torrent 2007-11-26 02:04:55 +00:00
776ed5a9d8 another attempt for invalid handle 2007-11-26 00:59:28 +00:00
6595fe0621 fix webseed 2007-11-26 00:17:48 +00:00
fd7d1ce675 try to catch invalid handle in deluge_core 2007-11-25 23:59:19 +00:00
e0367895b7 torrent info labels selectable 2007-11-25 22:02:44 +00:00
1e65e4e396 Apply logfile patch for Windows build from Slurdge. 2007-11-25 12:16:29 +00:00
fcd70cbb44 Registering a signal receiver with the core is done with the clients ip
address.
Minor UI fix-ups.
Hook up autoadd folder options in Preferences.
2007-11-25 09:58:12 +00:00
fe33a72022 Various interface improvements.
Initial import of SideBar.
2007-11-25 02:16:54 +00:00
51bc2329c2 use system setting for toolbar text/icon style 2007-11-25 01:51:00 +00:00
5c7031ab80 cleanup trackers replace 2007-11-25 01:11:19 +00:00
9c3929f15e dont die if plugin in prefs.state is not found on the filesystem 2007-11-24 22:46:43 +00:00
ee409d71c5 fix add torrent in webui 2007-11-24 20:39:55 +00:00
9777d4e00c skip taskbar fix for win 2007-11-24 19:54:00 +00:00
7e9576a947 language files sync 2007-11-24 19:30:42 +00:00
1b0f7e89c1 asio fix for win32 2007-11-24 18:39:00 +00:00
fbf7564d42 up version number for rc release 2007-11-24 16:55:33 +00:00
0b2faf6ee1 add python-pyopenssl to README depend list 2007-11-24 16:31:02 +00:00
cda1b3aa98 update webui, show error on permission failure, differentiate queued vs paused 2007-11-24 16:22:49 +00:00
ced47db339 tweak full hd dialog when adding a new torrent 2007-11-24 05:00:08 +00:00
b221e7ac82 tweak full hd dialog 2007-11-24 04:58:57 +00:00
19f38da504 tweak tooltip 2007-11-24 03:56:11 +00:00
54aca23618 update changelog 2007-11-24 03:52:59 +00:00
dde291d6dd add connection_speed setting 2007-11-24 03:51:11 +00:00
2815d8f19f Add option to allow remote connections to daemon.
Add option to change daemon port.
Added 'Daemon' tab to Preferences dialog.
2007-11-24 03:21:37 +00:00
adb7bcdf38 set max_half_open default to 20 if not on a windows system 2007-11-24 03:12:18 +00:00
ceaec1897d update changelog 2007-11-24 03:02:07 +00:00
e701fa28ba fix merge trackers 2007-11-24 02:58:23 +00:00
4ca1206b2c Add 'torrentfiles_location' configuration option. 2007-11-24 02:34:21 +00:00
5701324e00 dont pause prior to move_storage 2007-11-24 01:58:54 +00:00
ac08425ee3 Add remove torrent dialog. 2007-11-24 01:38:17 +00:00
ffa2066046 asio sync 2007-11-23 23:36:34 +00:00
8a833af738 lt sync 1757 2007-11-23 23:32:47 +00:00
71bee41ff0 ipv6 listen fix 2007-11-23 23:23:41 +00:00
54bba4d74c fix for when lsd/natpmp/upnp are started twice 2007-11-23 21:18:26 +00:00
ae4d85d5d8 Add LSD support.
Initial import of remove torrent dialog.
2007-11-23 08:52:00 +00:00
1aec790ad6 Update Preferences dialog glade file to support new options. 2007-11-23 06:39:11 +00:00
063fe8fe2d default not to use upnp 2007-11-22 23:19:14 +00:00
2cb306ca86 new languages - bs, nds and hi 2007-11-22 23:18:14 +00:00
e617c1d3b7 remove dumb tb_middle and tb_right 2007-11-22 23:17:45 +00:00
bb03e2ff6a deal with stupid gutsy sometimes not being able to connect to dbus 2007-11-22 22:26:06 +00:00
4b7d40ed49 lang sync 2007-11-22 17:29:21 +00:00
cc0d1502cc revert webui 2007-11-22 04:20:42 +00:00
74f739a693 identify miro client 2007-11-22 02:42:07 +00:00
22317356c5 plugin name translations 2007-11-22 00:02:06 +00:00
037be4d170 tweak local setting 2007-11-21 23:42:35 +00:00
d918302e3e sync webui rev 143 2007-11-21 22:32:18 +00:00
fde0c836aa re-add features that our isp lost in the backup 2007-11-21 22:18:11 +00:00
d9a783118a fast resume fix 2007-11-20 03:37:15 +00:00
3e6b577b1b fix blocklist load on start 2007-11-20 01:59:51 +00:00
19ee80cfab pause torrent before fastresume save if in compact mode 2007-11-20 01:21:22 +00:00
7b6ece4a2c lt update 2007-11-19 18:21:36 +00:00
a0b2638ffb fix category 2007-11-19 16:24:42 +00:00
8b4053dd2e fix wizard apply_prefs mess 2007-11-19 15:17:24 +00:00
9afc4ce936 lt sync 1746 2007-11-19 14:14:22 +00:00
1ae6dbf871 allow creation of torrents without trackers 2007-11-19 12:51:46 +00:00
d8680af277 Clean up StatusBar and use new StatusBarItems. 2007-11-19 07:33:43 +00:00
de2e230e4f Enable auto add queued torrents. 2007-11-19 03:51:33 +00:00
3d1cd9bf00 update lang template 2007-11-19 02:29:22 +00:00
15983c8901 fix typo 2007-11-19 02:10:57 +00:00
7bdf7e9d1e fix eta 2007-11-19 00:43:33 +00:00
34e0a0e839 tweak pause/resume all 2007-11-19 00:27:56 +00:00
1c369bce31 same 2007-11-18 23:46:33 +00:00
9b88b8d61f tweak set_user_pause 2007-11-18 23:45:16 +00:00
423cce7c56 fix oops in last 2007-11-18 23:29:47 +00:00
43ad15b3b2 fix pause all / resume all problems 2007-11-18 23:22:36 +00:00
5a01eec297 add proper preferences for selection popup 2007-11-18 22:57:10 +00:00
06e8a0c6b9 update changelog 2007-11-18 22:27:40 +00:00
b0f991b43c only popup file selection if torrent has more than 1 file 2007-11-18 22:20:22 +00:00
61a4842bed remove remap 2007-11-18 22:09:21 +00:00
06eaabc45f update desktop file 2007-11-18 19:42:46 +00:00
553bdcc3a6 remove lsd...damnit 2007-11-18 09:17:55 +00:00
3eab9473bf lt fix 1737 2007-11-18 09:10:23 +00:00
b4b7b154ae paused/active state on add to todo 2007-11-18 08:32:15 +00:00
3a77185e1e reanable lsd with custom fix to lt 2007-11-18 05:18:12 +00:00
63fa4601fb force recheck fix 2007-11-18 04:49:25 +00:00
77f6be5aac disable lsd 2007-11-18 04:30:18 +00:00
f5f7f04e1e fix lsd 2007-11-18 04:13:41 +00:00
8e22078402 fixes for gcc-4.3 2007-11-18 02:16:31 +00:00
d0d2e59192 fix last oops 2007-11-18 00:37:30 +00:00
b793646437 use sysconfig for libdir 2007-11-18 00:35:52 +00:00
51eceeae3a redo -mt detection 2007-11-18 00:09:48 +00:00
dba9a65749 remove separate libtorrent comment 2007-11-17 20:47:46 +00:00
bbbc8024e5 fix for opensuse 10.3 being retarded 2007-11-17 20:13:00 +00:00
989abbc531 multiple torrents update tracker 2007-11-17 19:53:56 +00:00
dc2f24344c asio sync 2007-11-17 12:22:22 +00:00
732c3d8674 lt sync 1732 2007-11-17 11:45:19 +00:00
4ff0a04608 disable lsd for now 2007-11-17 11:39:05 +00:00
35fe99eee3 Updates to the QueuedTorrents dialog stuff.
Updates to StatusBar.
2007-11-17 11:36:29 +00:00
1163096a70 remove abort 2007-11-17 11:21:09 +00:00
e47f0a756e remove locations plugin 2007-11-17 10:46:59 +00:00
709b2a04a3 tweaks to shutdown 2007-11-17 10:29:31 +00:00
3c78e41fc2 Add missing file. 2007-11-17 10:17:51 +00:00
94a159a66f remove uneffective hide 2007-11-17 09:58:52 +00:00
de8b55c9ed fix plugins on restart 2007-11-17 09:15:08 +00:00
85f9b8bf41 more scheduler fixes/tweaks from ben 2007-11-17 09:12:12 +00:00
0c83ffc391 code cleanup on advanced progress bar and clear adv bar on torrent removal 2007-11-17 09:10:24 +00:00
0c5c099097 save plugin state on plugin enable/disable, instead of on shutdown. remembers active plugins in case of a crash 2007-11-17 08:14:27 +00:00
e4ab021d20 set proper transient for other speed dialog 2007-11-17 07:55:44 +00:00
e21da8636e tweak remap dialog size 2007-11-17 05:57:51 +00:00
f40e5522bd cleanup 2007-11-17 04:12:41 +00:00
7e175dd4c0 remap files update 2007-11-17 03:21:34 +00:00
b871ae8152 Do not force_reannounce if 0 trackers. 2007-11-17 02:13:43 +00:00
b764486bff deal with blank trackers in force recheck and between sessions 2007-11-16 20:56:50 +00:00
5a90e14794 edit empty trackers fix 2007-11-16 20:11:58 +00:00
2a8d36029e Fix memory leak. 2007-11-16 08:27:34 +00:00
052894e805 readd advanced progress bar and beginnings of remap_files 2007-11-16 08:08:33 +00:00
0b582261ec lt sync 1727 2007-11-16 00:52:10 +00:00
b95e3c4988 hopefully fix shutdown hang and tweak win compile 2007-11-15 04:38:35 +00:00
abc9534f7f Add --config switch to specify the config directory on startup. Patch
from slurdge.
2007-11-14 23:40:05 +00:00
eac95882d4 Queued torrents update. 2007-11-14 15:51:22 +00:00
80ef895a51 Add dependency support to the components. 2007-11-14 11:29:06 +00:00
2b519730bc remove remnant of adv progress bar 2007-11-14 02:07:20 +00:00
edfd988cf9 add torrent in paused state option 2007-11-13 23:15:17 +00:00
f7a1db3be7 remove advanced progress bar 2007-11-13 20:30:55 +00:00
10456b3f99 Add support for Dbus and adding torrents to an already running client.
Minor UI tweaks.
Additional error checking in update functions.
2007-11-13 08:47:26 +00:00
de2f265c2a update todo 2007-11-13 04:33:57 +00:00
97f2f244ae fixes to scheduler from ben 2007-11-13 03:18:44 +00:00
c4c8539401 small ui tweaks 2007-11-12 22:43:45 +00:00
fced9a2c71 dont crash on empty tracker list 2007-11-12 22:39:59 +00:00
ebe0ac39d9 update todo 2007-11-12 22:23:26 +00:00
2e86ebc6ee copy translator credits from launchpad to our about->credits 2007-11-12 21:59:54 +00:00
fd817f5e76 only show queue arrows if there are two or more torrents loaded 2007-11-12 19:59:46 +00:00
6bced0fb8c EditTrackerDialog now works.
Save trackers in torrent state.
Load trackers on torrent add from state.
2007-11-12 13:28:56 +00:00
70b7c120bc scheduler revamp by ben klein 2007-11-12 08:37:20 +00:00
091b57d65f tweak webseed glade file 2007-11-12 07:36:00 +00:00
31b05cfaa9 tweak last 2007-11-12 06:25:19 +00:00
d7c7222d4f fix wizard not working if firstrun file is already created 2007-11-12 05:49:26 +00:00
190d6d94ea Extra debug info. 2007-11-12 04:51:23 +00:00
a8c796ba59 Inital import of EditTrackersDialog. 2007-11-12 02:27:03 +00:00
efc8179261 cancels more async operations on shutdown 2007-11-11 20:55:48 +00:00
3400c444a8 adding add torrent in pause state to TODO 2007-11-11 03:37:14 +00:00
b6ff01e7c7 update pot file 2007-11-11 01:37:41 +00:00
be8a004324 add lsd to bindings 2007-11-11 00:30:29 +00:00
4e92f3f699 lt sync 1723 2007-11-11 00:22:53 +00:00
89533158e6 revert back to delete m_ses and no abort 2007-11-11 00:20:06 +00:00
3eb3ab5b6b dont delete m_ses 2007-11-11 00:04:46 +00:00
cd0465a3a1 use lazy bitfield in 0.6 2007-11-10 22:18:02 +00:00
812eeb024e revert queue 2007-11-10 19:57:51 +00:00
56e8db547c cleaning up tabs/spaces 2007-11-10 18:56:18 +00:00
6da931e815 Do not show Torrent menu when not connected.
Fix force recheck.
2007-11-10 10:04:07 +00:00
5c154c3231 Fix removing columns from ListView. 2007-11-10 09:54:09 +00:00
c42b146528 System tray fixes. 2007-11-10 09:44:51 +00:00
6a51a4b9ed tweak last 2007-11-10 08:16:43 +00:00
d3fe619f11 fix queue oops 2007-11-10 08:12:23 +00:00
8886ee9a59 tweak adv progress bar border 2007-11-10 07:50:16 +00:00
5c75c5192f fix oops 2007-11-10 07:29:10 +00:00
e7a789e453 fix ident/tabs 2007-11-10 07:28:36 +00:00
6e58e5113f fix toolbar 2007-11-10 07:13:34 +00:00
5b5232eddf Fix adding torrents. 2007-11-10 06:28:09 +00:00
4dc601c845 System tray updates. 2007-11-10 06:00:23 +00:00
2c48226cdc fix oops 2007-11-10 05:11:25 +00:00
d1f2aed58b add advanced progress bar option - modified extensively from patch by arnab 2007-11-10 05:10:28 +00:00
6da46bc546 Add separate preference for max downloading torrents and max seeding torrents 2007-11-10 02:46:27 +00:00
3c9209dce4 Display Queue preferences tab when enabled. 2007-11-10 00:22:11 +00:00
b645417689 tweak save_upmem 2007-11-09 22:32:18 +00:00
da9bf950a7 remember file priorities in force recheck 2007-11-09 21:54:10 +00:00
4e8d9b6e6d tweak shutdown 2007-11-09 21:07:14 +00:00
576b81e910 clean force recheck 2007-11-09 20:36:02 +00:00
7d9a30a545 Updates to the Connection Manager.
Updates to TorrentManager.
2007-11-09 12:08:15 +00:00
24b6def6bd little code cleanup 2007-11-09 01:12:42 +00:00
1f24972c9d use lazy_bitfield 2007-11-08 22:13:47 +00:00
a043858f2e Update TODO 2007-11-08 08:04:43 +00:00
094e132ace Add Force-recheck. 2007-11-08 07:54:56 +00:00
14c34684dc change force recheck to redo 2007-11-08 07:41:11 +00:00
1bc07d2d8e add total seeding torrents to todo 2007-11-08 07:28:29 +00:00
8bf1c1e60a fix recheck oops 2007-11-08 04:22:39 +00:00
8b13d85bdc fix queue 2007-11-08 04:21:34 +00:00
4eb0e558a8 update changelog 2007-11-08 03:18:43 +00:00
2dfb02e062 fix eta from going backwards 2007-11-08 03:17:26 +00:00
92c9d28d0c call it peer exchange, not utorrent peer exchange 2007-11-08 03:07:27 +00:00
554ad73aa1 tweak glade file 2007-11-08 03:05:03 +00:00
d94694fc73 add local discovery of peers 2007-11-08 02:44:22 +00:00
e2e507b94b warning fix 2007-11-07 03:09:42 +00:00
8d6b749a5d add flex to changelog 2007-11-07 02:00:04 +00:00
23c83e6bb1 again 2007-11-07 01:06:36 +00:00
6d70add980 tweak shutdown 2007-11-07 00:24:23 +00:00
6b3065d2cf sync webui 127 2007-11-06 23:34:23 +00:00
047a32ef9f testing some shutdown tweaks 2007-11-06 22:27:07 +00:00
ab9a3f778f cia test 2007-11-06 22:05:34 +00:00
179b5f8c55 add hd warning to changelog 2007-11-06 21:32:15 +00:00
f9e5157d6e ui warning of out of hd space 2007-11-06 21:30:12 +00:00
86732c72d0 get duplicate error again 2007-11-06 21:04:34 +00:00
09798cd394 raise error 2007-11-06 20:46:11 +00:00
0998506f9f make gtk-stock strings not translatable 2007-11-06 20:19:37 +00:00
5f21c9d276 try to solve unicode problem 2007-11-06 19:24:26 +00:00
8050c3f8a6 add torrent notification plugin as default 2007-11-06 08:20:40 +00:00
4b21cc6bf1 add ratio fix to changelog 2007-11-06 04:20:42 +00:00
c244b29a03 tweak changelog 2007-11-06 04:16:37 +00:00
9ac2b85068 fix queue in force recheck 2007-11-06 04:09:40 +00:00
5383d6d197 remove debug print 2007-11-06 03:45:19 +00:00
9b170fe759 remove stupid raise 2007-11-06 03:38:44 +00:00
a624ff5557 tweak uploaded memory in force-recheck 2007-11-06 02:51:23 +00:00
1d36020f9d make force-recheck remember trackers and upload memory 2007-11-06 02:25:21 +00:00
cdb6450d48 remove unneeded code 2007-11-05 23:42:00 +00:00
ca51b3eeff tweak to get uid after force recheck 2007-11-05 23:33:47 +00:00
b48956397f update todo 2007-11-05 23:30:34 +00:00
319bc25cd5 manual force-recheck 2007-11-05 22:34:05 +00:00
e202a79dc3 update lang for last 2007-11-05 17:19:01 +00:00
63ac691e64 remove simplerss and add flexrss 2007-11-05 17:17:30 +00:00
a4b46d0607 Queue preferences glade file. 2007-11-05 03:05:45 +00:00
a769af2262 add progress bar to todo 2007-11-05 01:32:49 +00:00
0dcc01c942 implement autoload directory preference 2007-11-05 01:05:34 +00:00
580d2a2e84 add preference for torrent files location 2007-11-04 23:55:37 +00:00
cfc05729ee Queue plugin updates. 2007-11-04 23:54:38 +00:00
91d8ad33ae add error management to blocklist plugin 2007-11-04 22:33:55 +00:00
67e79250d2 piece picker assert fix 2007-11-04 21:32:07 +00:00
eacc6dd08f Queue plugin update.
Plugin system updates.
2007-11-03 07:24:45 +00:00
0898680adc lt update 1719 2007-11-02 23:43:09 +00:00
b64bbf1e76 tweak bindings 2007-11-02 22:24:52 +00:00
330b4c2115 no need to save config here since interface does it before passing it over 2007-11-02 21:25:14 +00:00
8adff80407 fix plugin oops 2007-11-02 20:40:26 +00:00
a09c03dafd quicker window shutdown 2007-11-02 20:00:58 +00:00
3610c30a25 minor tweak 2007-11-02 19:53:18 +00:00
9ecb8a388d revert libtorrent updates 2007-11-02 19:08:15 +00:00
3733b91d32 fix ratio and remember trackers 2007-11-02 18:33:37 +00:00
c11e61355b Add testing plugin.
Plugins should now enable/disable properly and save enabled/disabled 
state.
2007-11-02 02:40:44 +00:00
b144525cab lt exception tweaks 1719 2007-11-02 02:29:33 +00:00
2eec0a766d lt sync 1717 2007-11-02 00:49:26 +00:00
b3cdf1371c use full alloc 2007-11-01 22:40:04 +00:00
bd8329e971 only set_icon when not in windows 2007-11-01 22:32:46 +00:00
3c94a2039d fix dos format 2007-11-01 05:49:06 +00:00
c446d60ecd fix minor oops 2007-10-31 11:40:56 +00:00
5d3275de01 Some plugin updates. 2007-10-31 08:16:35 +00:00
3ab044409f fixing up libtorrent and tagging 0.5.6.2 2007-10-31 07:49:48 +00:00
5ad442341f use try in case pygame isnt installed 2007-10-31 05:46:49 +00:00
a4373ef156 use try in case pynotify isnt installed 2007-10-31 05:45:07 +00:00
9604c3ff09 update changelog 2007-10-31 04:23:37 +00:00
64aeb867a4 make sound not sensitive on windows 2007-10-31 03:52:55 +00:00
99065bf452 webui sync 117 2007-10-31 03:46:36 +00:00
2a9455e50a lt sync 1710 2007-10-31 02:00:53 +00:00
15d39eeb54 fix total_size 2007-10-29 23:41:44 +00:00
cf2c4a50f4 webui sync 115 2007-10-29 20:01:37 +00:00
054f7e5721 fix max upload for 256k 2007-10-29 05:46:49 +00:00
6520e618c2 forget reloading saved trackers 2007-10-29 03:54:09 +00:00
c059d5162b sync asio 2007-10-29 03:10:12 +00:00
9b59c0507e fix hang on shutdown 2007-10-29 01:01:48 +00:00
4cca79c764 2007-10-29 00:16:42 +00:00
2bac676de7 update todo 2007-10-28 23:20:44 +00:00
f21eb1c3f4 Fix plugin sub-dir code to work in Windows. 2007-10-28 10:34:40 +00:00
ff1391b8bf Send all torrent status keys if keys is []. 2007-10-28 06:36:25 +00:00
ae81a28e6b Add 'files' key to torrent status. 2007-10-28 06:30:02 +00:00
925416dded try to fix persistent.state pooping 2007-10-28 02:00:47 +00:00
cd2f45da92 sync webui 112 and translate 2007-10-28 01:35:27 +00:00
019ea1f601 make webui name/description translatable 2007-10-28 00:55:43 +00:00
2949ab545d fix crash on exit 2007-10-27 22:07:57 +00:00
3ed1de43c2 fix bug which made set_max_connections not work 2007-10-27 21:22:54 +00:00
8f592b6330 Fix some exceptions. 2007-10-27 04:35:09 +00:00
902e8a2526 lt sync 1900 2007-10-26 20:28:03 +00:00
dead0864ad better way to show number of connections 2007-10-26 20:10:29 +00:00
9bd76e077a update changelog 2007-10-26 03:20:43 +00:00
eec0be17f9 add piece size 2048 and make default piece size 256kb 2007-10-26 03:19:30 +00:00
0a0183b0b9 add description to about dialog 2007-10-26 02:56:52 +00:00
c030789e09 Updates to ConnectionManager. Can now autostart localhost, autoconnect
and not show dialog if desired.
2007-10-26 02:32:40 +00:00
d320f2aebe update todo for 0.5.7 2007-10-26 01:48:00 +00:00
38471aa832 upnp/lsd/natpmp fixes 1699 2007-10-26 01:38:04 +00:00
4bb1f06fd3 lt sync 1694 2007-10-25 22:20:56 +00:00
cbeb2c6e6c add new languages 2007-10-25 22:20:38 +00:00
2a315def04 Change toolbar button sensitivity based on selected torrent state.
Patch from sadrul.
2007-10-25 08:47:44 +00:00
1f8884f903 Enabled 'start local daemon' in ConnectionManager.
Change startup scripts: deluged runs daemon and deluge runs ui.
Minor fix-ups.
2007-10-25 07:42:14 +00:00
2b12b10f8c update version numbers in trunk 2007-10-25 01:15:46 +00:00
557d90987c dont show 0.0kbps by Arnab 2007-10-25 01:10:20 +00:00
60eeb8deed Minor touch-ups. 2007-10-24 21:11:33 +00:00
294945dca2 Fix icon on ConnectionManager. 2007-10-24 10:11:27 +00:00
1144ee802f SignalReceiver now initializes gobject threading. 2007-10-24 09:52:20 +00:00
0d3e319bea Change sensitivity of many UI elements based on state of connection to a
daemon.
2007-10-24 08:16:09 +00:00
57ff5be823 Able to change the visibility of the toolbar and infopane. 2007-10-24 07:40:59 +00:00
40e1376bc4 Hook up ConnectionManager tool button.
Fix preferences when applying config with no daemon.
2007-10-24 07:22:11 +00:00
e03401e3aa Fix Preferences dialog so that it can load while not be connected to a
daemon.
Change ConnectionManager icon and add toolbar button.
2007-10-24 05:45:32 +00:00
dbbace5f23 piece picker priority fix 2007-10-24 00:30:21 +00:00
a534f23661 update webui version num and add missed file 2007-10-23 22:30:37 +00:00
a28e33b809 sync with webui rev87 2007-10-23 22:16:37 +00:00
ac00fef1d4 only replace tracker if handle is valid 2007-10-23 22:14:22 +00:00
f436cbff64 hopefully fix segfault 2007-10-23 22:02:15 +00:00
74e5e49ee1 try to catch replace trackers error 2007-10-23 20:51:15 +00:00
1bf007907c tweak last attribute except 2007-10-23 07:35:23 +00:00
0bec032638 fix last 2007-10-23 06:49:27 +00:00
d17f6ee274 fix attribute error 2007-10-23 06:45:21 +00:00
571ecbdfac have name column expand 2007-10-23 06:35:46 +00:00
92c4adc4c1 sync language files with launchpad for release 2007-10-23 03:36:01 +00:00
80f941a249 tweak ratio fix 2007-10-23 03:32:58 +00:00
c04ae40cf1 catch attributeerror to fix upgrade issue 2007-10-23 03:26:28 +00:00
3eacd3e2d6 remove unnecessary eval 2007-10-23 03:10:04 +00:00
7d680bdd3a ratio fix 2007-10-23 02:43:21 +00:00
79e9e1de53 fixed issue when calling close on an uninstantiated variant_stream + variant_stream cleanup (removed unncessesary templates) 2007-10-22 23:56:03 +00:00
5d4a69d852 lt sync 1688 2007-10-22 22:33:08 +00:00
2e5eb2b885 try to fix a race condition 2007-10-22 20:35:32 +00:00
88a49d17c7 Stop local daemon now works in ConnectionManager.
Some minor tweaks.
2007-10-21 16:21:00 +00:00
298fd1bc7f Fixed and enabled the SignalReceiver. 2007-10-21 01:53:40 +00:00
f2c036650c fix deleting of subfolders 2007-10-21 00:51:13 +00:00
0b4b409a53 fix edited tracker list not being persistent 2007-10-20 23:37:36 +00:00
c4d4e75667 Change the gtkui to a new component based system.
Properly handle daemon quitting unexpectedly.
Many updates to the ConnectionManager.
2007-10-20 22:26:43 +00:00
d5888131a0 Move the old dbus branch to deluge-0.6-dbus and move the xmlrpc branch
to deluge-0.6.
2007-10-20 16:58:35 +00:00
c852cfd7c1 Updates to the ConnectionManager stuff. This is a work in progress.
Renamed functions.py to client.py.
2007-10-20 16:55:38 +00:00
58be40da1e set some fields as insensitive which arent valid on win32 2007-10-18 23:25:26 +00:00
589c007386 windows tweaks to prevent error on win32 2007-10-18 23:15:52 +00:00
c70721aeac fix for some invariant checks 2007-10-18 06:19:20 +00:00
1ddbf05b92 set file browser fields in deluge's preferences insensitive when in win32 2007-10-17 03:17:59 +00:00
cc77df8216 make torrentfile pref field insensitive when on win32 to avoid confusing windows users 2007-10-17 03:12:26 +00:00
5fb1987b1b collect network information when not in the networkgraph plugin tab 2007-10-17 02:54:05 +00:00
aef72f74a2 2007-10-16 17:05:25 +00:00
3dc0b25876 win32 translations fix 2007-10-16 16:48:26 +00:00
d07d25e189 fix fastresume oops 2007-10-16 02:26:49 +00:00
664877a7e6 update changelog 2007-10-16 01:23:29 +00:00
9d75b5f306 fix fastresume 2007-10-16 01:18:08 +00:00
891a9955ad oops value switch 2007-10-16 01:13:58 +00:00
8444cb852c have thread/process selection inactive until fixed. now we automatically choose which method based on platform 2007-10-16 01:12:50 +00:00
20f580014b sync lang 2007-10-15 21:21:26 +00:00
382f4b0f1a remove no longer needed alert 2007-10-15 19:37:17 +00:00
8f030fb112 fixed issue with failing async_accept on windows 2007-10-15 19:34:24 +00:00
1690fd846b intrusive_ptr_base fix 2007-10-15 18:09:24 +00:00
871d0d15c6 fix webui kill if already running 2007-10-15 17:03:46 +00:00
27d7e80658 clarify popup message 2007-10-15 15:50:24 +00:00
bf6a709340 Start of ConnectionManager. 2007-10-15 15:12:35 +00:00
dad79748fa catch exception in last 2007-10-15 15:02:56 +00:00
3169b460f0 remove fastresume after adding torrent that's not a seed 2007-10-15 13:22:27 +00:00
c259aea06a Fix adding/removing torrents with current libtorrent. 2007-10-15 09:01:59 +00:00
b02b71e978 lt sync 1677 2007-10-15 06:11:37 +00:00
b403530fab fast reconnect fixes 2007-10-15 05:34:32 +00:00
a16eb7625c lt updates 2007-10-15 04:50:17 +00:00
b3d15c7117 Daemonize receiver thread. 2007-10-15 04:35:37 +00:00
d690e44194 Fix adding torrents by URL. 2007-10-15 04:25:05 +00:00
67c7f9a80e Fix preferences' function calls. 2007-10-15 04:06:56 +00:00
1440e78cae Add xmlrpclib from Python 2.5.1 2007-10-15 04:01:46 +00:00
287d96d1e7 Include SimpleXMLRPCServer from Python 2.5.1 2007-10-15 03:49:45 +00:00
5b7b027f48 Save the uploaded_total in torrent state. 2007-10-15 01:56:47 +00:00
7d98d49803 account for xp, which has a higher half-open allotment 2007-10-15 01:53:42 +00:00
f20d0485c3 windows sucks. vista home has a limit of 5 half-open connections, so we set our windows limit to 4 to be save 2007-10-15 01:40:37 +00:00
3fd9a0dc05 fix links/enclosures 2007-10-15 01:36:32 +00:00
715874df58 tweak last 2007-10-15 00:20:48 +00:00
87fe5fe4ad fix start/stop 2007-10-15 00:14:01 +00:00
b6dd803a95 really kill 2007-10-14 23:26:55 +00:00
30b5967f12 if already running on init, kill 2007-10-14 23:07:20 +00:00
f54f2a50ec make default run in thread if in windows and default not in thread if not in windows 2007-10-14 21:48:40 +00:00
3947a75336 fix module error 2007-10-14 20:27:32 +00:00
71a5c79c15 tweak another total_done to total_wanted_done 2007-10-14 19:47:56 +00:00
dbe83d4ede make sure we only accept folders as plugins 2007-10-14 17:35:08 +00:00
375a7fdc64 Fix CONFIG_DIR issues on windows when ~ does not expand. 2007-10-14 13:42:58 +00:00
64a94ec197 Add SignalReceiver and use it in the client.
Add SignalManager in the core for emitting signals to clients.
2007-10-14 07:06:19 +00:00
528e8c7625 rename up/down limits 2007-10-14 05:53:50 +00:00
b612f3663f re-add ratio to todo 2007-10-14 05:49:24 +00:00
ce8e47fae3 apply scheduler prefs onload 2007-10-14 04:51:05 +00:00
e4f5d822de use total_wanted instead of total_size in checking free space 2007-10-14 04:46:11 +00:00
20ffbf122e remove plugins and preferences from tray menu 2007-10-14 04:31:06 +00:00
7585642a98 apply_prefs in locations plugin 2007-10-14 04:08:16 +00:00
fe67907a5d add progress bars to files plugin - yobbobandana 2007-10-14 03:55:53 +00:00
7fa861f83a update changelog 2007-10-14 02:38:02 +00:00
0a6d638c59 add popup warning for clear :p 2007-10-14 02:34:57 +00:00
c14d4dd23a rename clear button 2007-10-13 23:33:26 +00:00
0eb88197c7 use libtorrent to remove files, which solves the problem of us deleting files that werent part of the torrent and other minor issues 2007-10-13 23:23:44 +00:00
a7868ed3fd revert upload memory change for now 2007-10-13 18:30:12 +00:00
b4cb4e7bcc Import the 0.6 xmlrpc branch.. Work in progess. 2007-10-12 23:37:42 +00:00
a1d757dfbf tweak default path 2007-10-12 20:48:47 +00:00
1251a671bd add missing bracket 2007-10-12 18:39:04 +00:00
6e4528875e scheduler todo 2007-10-12 16:59:31 +00:00
734fa157b4 fixed so that peers only get one fast-reconnect 2007-10-12 01:30:10 +00:00
370578119e hopefully fix 'losing' port in windows 2007-10-12 00:35:05 +00:00
3a23ad301a asio sync 2007-10-11 19:22:07 +00:00
8687aab7b6 association done 2007-10-11 18:05:34 +00:00
81861afa64 windows association 2007-10-11 06:11:48 +00:00
30d357d797 save uploaded_memory every minute 2007-10-11 03:47:40 +00:00
106e98a15b new 0.5.x todo file 2007-10-11 03:28:23 +00:00
991467790b fix indent oops 2007-10-10 19:49:45 +00:00
5a813106ba fix typo 2007-10-10 19:43:03 +00:00
daaa79360a fix priority...hopefully 2007-10-10 16:26:19 +00:00
dabe429108 tooltip tweak 2007-10-10 05:11:29 +00:00
ff2483af90 parole mode improvement. Doesn't clear out the request queue when choked by a peer on parole anymore 2007-10-10 02:39:01 +00:00
a45c49d037 fix deconstructor order issue 2007-10-10 02:14:01 +00:00
a54432d0cf again 2007-10-10 02:06:13 +00:00
8464c9c0f6 small tweak to deluge_core max_half_open 2007-10-10 02:03:34 +00:00
94ca1789d5 add max half-open connections 2007-10-10 01:56:05 +00:00
7196070f59 updating changelog 2007-10-10 01:29:08 +00:00
bd02f837bb first attempt at switching over to new storage allocation 2007-10-09 21:22:42 +00:00
4ff8458b3f tweak file manager drop down 2007-10-08 21:21:52 +00:00
4de4fce8ec another vista try 2007-10-08 19:24:31 +00:00
ad239210dd stderr/stdout win32 2007-10-08 16:57:00 +00:00
4892cf3df2 fix last 2007-10-08 16:37:32 +00:00
df158d88cb tweak again 2007-10-08 03:41:06 +00:00
a0031240fb fix tooltip 2007-10-08 03:33:53 +00:00
2b9d8cc670 fixed dead lock and fixed a problem in recent shutdown cleanup 2007-10-07 23:54:04 +00:00
54f0e6b91f fixed dead lock and fixed a problem in recent shutdown cleanup 2007-10-07 23:54:04 +00:00
a21b852e07 multiple sizes in ico file 2007-10-07 23:45:01 +00:00
fc12ade03a account for '-1', oops 2007-10-07 22:47:24 +00:00
1addf2541a speedlimiter fixes 2007-10-07 22:38:28 +00:00
8f974b8067 better shutdown sequence in lt 2007-10-07 21:03:25 +00:00
d8482a3fc9 better shutdown sequence in lt 2007-10-07 21:03:25 +00:00
50877923ea pickle->cPickle 2007-10-07 20:29:43 +00:00
bf8727f7bf webui rev-80 2007-10-07 04:56:01 +00:00
515305e950 fixes files that were left open in write mode by mistake, policy invariant check fix, fixed static assert being hit 2007-10-07 03:41:56 +00:00
278c6c9f3e fixes files that were left open in write mode by mistake, policy invariant check fix, fixed static assert being hit 2007-10-07 03:41:56 +00:00
85767b148a fix tray locking pop-up on quit while disabled 2007-10-07 03:33:36 +00:00
ae30cdb677 Fix an issue with large torrent sizes. 2007-10-07 01:53:58 +00:00
33fd818933 Save and load total_uploaded from torrent state. 2007-10-07 01:53:03 +00:00
cd175ebe9a libtorrent build fix 2007-10-06 17:32:41 +00:00
54b1665c50 libtorrent build fix 2007-10-06 17:32:41 +00:00
7fe0392c90 Fix config debug output. 2007-10-06 17:31:48 +00:00
5541700881 increase width a little so larger fit a bit better 2007-10-06 05:37:54 +00:00
8f6029219d Fix adding torrents with a unicode save_path. 2007-10-06 04:35:15 +00:00
19621315c6 lt sync 1649 2007-10-06 04:22:06 +00:00
94fd3c0f37 lt sync 1649 2007-10-06 04:22:06 +00:00
1489ef5bc0 i need coffee 2007-10-05 21:29:29 +00:00
a335153e0e rename error 2007-10-05 21:25:48 +00:00
a90069b5d0 backslashes should not be needed, since the we're using expanduser in conjunction with specifying a dir ('deluge') after it 2007-10-05 21:22:56 +00:00
24fbfccfb0 webui-rev73 2007-10-05 21:16:46 +00:00
d240ba3c01 Preferences plugin tab stuff. 2007-10-05 05:05:07 +00:00
84cd2da8dd Implement plugin management api in the core. 2007-10-05 00:58:26 +00:00
cc7d7e8c62 Show save_path in TorrentDetails. 2007-10-05 00:30:19 +00:00
c2f7c362b3 Use dbus variants instead of pickling objects. 2007-10-04 23:54:58 +00:00
17f62130fe Add 'save_path' to add_torrent().
Save the 'save_path' in the torrent state.
2007-10-04 22:21:47 +00:00
20d63448cb webui rev 57 2007-10-04 21:49:29 +00:00
8a0692fa4f fix storage of banned peers lt 1645 2007-10-04 21:14:32 +00:00
b8a8757076 fix storage of banned peers lt 1645 2007-10-04 21:14:32 +00:00
7f88289f1f lt 1643 2007-10-04 15:31:23 +00:00
c80a2e822b lt 1643 2007-10-04 15:31:23 +00:00
8e96afe626 Fix display of availability. 2007-10-04 01:21:39 +00:00
2707afc9c8 Show Queue menu and toolbuttons properly. 2007-10-04 00:53:39 +00:00
06e148c2ed Add PluginManagerBase class.
Only load plugins that are in the 'enabled_plugins' key in the config 
files.
2007-10-04 00:43:41 +00:00
d6fb920382 accidentaly reverted disk io priority fix, so here it is again 2007-10-04 00:09:45 +00:00
838ef287da accidentaly reverted disk io priority fix, so here it is again 2007-10-04 00:09:45 +00:00
4e5a6d61dc moved block_downloading_alert, block_finished_alert and piece_finished_alert to debug level...yay performance 2007-10-04 00:07:26 +00:00
3841ddd3dc moved block_downloading_alert, block_finished_alert and piece_finished_alert to debug level...yay performance 2007-10-04 00:07:26 +00:00
53f4a55711 disk io priority fix 2007-10-03 22:46:30 +00:00
5db5f423ce disk io priority fix 2007-10-03 22:46:30 +00:00
1a6afef6b8 lt sync 1638 2007-10-03 22:29:42 +00:00
3273dddb8a fix http connection and storage bug 2007-10-03 22:24:22 +00:00
d55fff555c storage fix 2007-10-03 18:33:32 +00:00
9ed93af6b2 handles case where a request in the allow fast set is rejected and saves banned peers in resume data 2007-10-03 18:08:17 +00:00
27360c6cf8 show 8 '*' for password 2007-10-03 05:51:41 +00:00
2eafe71a2c Implement close to tray. 2007-10-03 03:04:22 +00:00
170c3810b3 Save torrent state every 5 minutes. 2007-10-03 02:57:05 +00:00
b2ae9f1db1 revert last webui 2007-10-03 02:40:30 +00:00
3211dc9019 fixed potential race condition when removing a torrent that was just added 2007-10-03 01:58:50 +00:00
8fa2f73434 webui rev 64 update 2007-10-03 00:05:09 +00:00
5cda3e71fa fix policy bug 2007-10-02 23:09:04 +00:00
a101b4c1c9 policy now has a map of peers instead of a flat list, makes it more efficient to do lookups 2007-10-02 19:58:10 +00:00
a17328fff7 Fix exception when removing torrents. 2007-10-02 03:06:40 +00:00
cc4fc60db0 redo translation for tracker status 2007-10-02 03:02:06 +00:00
78e797796a translation for tracker alerts 2007-10-02 02:29:12 +00:00
935aa72584 Add tracker responses to TorrentDetails. 2007-10-02 01:22:30 +00:00
13a0630875 windows fixes for lt 2007-10-01 22:56:48 +00:00
4ad4ac058c remove lt example files 2007-10-01 22:32:33 +00:00
9a66035f0d Add 'paused' to TorrentState.
Move some alert handlers around.
2007-10-01 22:29:05 +00:00
7b5fb39d7f fix for boost 1.33.1 in last commit 2007-10-01 08:59:16 +00:00
2e0d50407b lt sync 1623 2007-10-01 08:46:09 +00:00
e833a2d75e remove regex dep since asio requirement for it has been removed 2007-10-01 07:31:04 +00:00
190a2de73e remove unneeded asio files 2007-10-01 07:30:20 +00:00
563c437675 add new boost regex dependency 2007-10-01 07:18:48 +00:00
5bb79f682c update list of files to be translated 2007-10-01 06:09:08 +00:00
107b044fba remove invalid inline 2007-10-01 02:23:38 +00:00
fa9bf5afc8 add valid fast check 2007-10-01 02:20:03 +00:00
4d4b2de7c3 remove misplaced and unnecessary code 2007-10-01 01:52:25 +00:00
fd7140b15e add key and unlimited notice 2007-10-01 01:45:33 +00:00
6445d1cc26 tweak glade file 2007-09-30 23:48:39 +00:00
2e398cb212 fix scheduler plugin 2007-09-30 22:27:08 +00:00
47fe9bd11f set parent for add torrent dialog 2007-09-30 21:13:37 +00:00
b9f543682b remove unneccessary import 2007-09-30 19:56:34 +00:00
3de1cb9938 sync lt and asio 1615 and upload version # of plugin 2007-09-30 18:32:19 +00:00
c6c649485e enable start in tray 2007-09-30 09:26:05 +00:00
c0d8bf2d7f fix tray password resetting itself sometimes 2007-09-30 09:12:38 +00:00
4a858a70bc fix tray password resetting itself sometimes 2007-09-30 09:12:38 +00:00
999e18e4be update changelog 2007-09-30 08:54:09 +00:00
45f5fef825 encrypted passwords for tray lock with backwards compatibility for old method to ease upgrade 2007-09-30 08:52:56 +00:00
5d62060bd8 sync webui to rev56 2007-09-30 08:20:14 +00:00
ca43940c1f sha1 hash password for tray lock 2007-09-30 07:52:48 +00:00
fd03c62ccb add tray locking 2007-09-30 07:28:06 +00:00
78f01e1397 set icon size and fix typo 2007-09-30 06:14:03 +00:00
fa73b6d125 add icon to quit daemon 2007-09-30 06:10:28 +00:00
1ce3eb7099 add quit & shutdown daemon to tray 2007-09-30 06:07:55 +00:00
f2f73b8539 Fix exception when removing multiple torrents at once.
Updated TODO.
2007-09-30 05:33:53 +00:00
b16930ea4c clean up adding via url and make enter submit it instead of having to click ok 2007-09-30 03:49:30 +00:00
466292d38e clean up adding via url and make enter submit it instead of having to click ok 2007-09-30 03:49:30 +00:00
234e6827e8 Load .fastresume files on add.
Fix opening browser function.
2007-09-29 10:37:46 +00:00
1d8b9cb402 fix windows_check() 2007-09-29 07:01:26 +00:00
53e65e9554 sync webui plugin with rev48 2007-09-29 06:39:06 +00:00
b645630773 Only enable the system tray once. 2007-09-29 05:32:42 +00:00
e0d82901e3 Remove silly line causing exception in get_torrent_status() 2007-09-28 06:29:04 +00:00
9a050065a9 - 2007-09-28 01:50:21 +00:00
72d868ff79 WebUi Plugin - rev40 2007-09-28 01:47:12 +00:00
d36ec723ac modification to setup.py to allow for subdirs in plugins 2007-09-28 01:45:17 +00:00
0858836a67 modification to setup.py to allow for subdirs in plugins 2007-09-28 01:45:03 +00:00
b02ef923ff again 2007-09-27 16:26:44 +00:00
918da976cb explorer fix 2007-09-27 16:24:40 +00:00
c4b5101189 patch for slurdge 2007-09-27 14:40:39 +00:00
9551aab1c1 Properly show the Columns menu. 2007-09-27 13:41:19 +00:00
936df09c60 Fix issue where port was not opened before attempting to add torrents.
All config 'set functions' will apply automatically when they are 
registered unless otherwise specified.
2007-09-27 13:29:20 +00:00
e74c62d307 handle launching explorer on windows a bit better 2007-09-27 07:56:28 +00:00
283f30f884 add double-click torrent to changelog 2007-09-27 03:55:22 +00:00
691cf5b34f double-click on torrent opens up containing folder and fix about dialog 'bug' on windows 2007-09-27 03:54:12 +00:00
e4effa22b1 fix enc level order 2007-09-27 03:01:25 +00:00
ed33fa1eb6 update changelog 2007-09-27 01:40:27 +00:00
c1d3fbc3f3 deal with windows systray limitation 2007-09-27 01:25:18 +00:00
2738bb2835 remove wrong space 2007-09-26 21:46:11 +00:00
71809e968c use cPickle 2007-09-26 20:19:18 +00:00
8b35caa3c8 country fix 2007-09-26 20:15:46 +00:00
2c1bed04ca Revert last commit. Did not build. 2007-09-26 11:18:34 +00:00
6bcafc02e3 country optimization 2007-09-26 07:13:04 +00:00
4401c8f238 Save .fastresume files on shutdown. 2007-09-26 01:27:38 +00:00
78244649b8 Add support for saving .fastresume files. They are not loaded on add
yet.
2007-09-26 01:16:14 +00:00
0e73700f15 Fix add_torrent() deprecation and fix tracker_reply_alert to have the
number of peers.
2007-09-26 01:14:55 +00:00
5d4931c94b save fastresume on pause 2007-09-25 21:07:12 +00:00
9ac92ca982 remove fastresume file when a torrent is unpaused 2007-09-25 21:02:22 +00:00
8a723474ed bdist_rpm fixes 2007-09-25 19:32:56 +00:00
4d05a9dfc9 temp fix to prevent plugin from crashing deluge 2007-09-25 15:36:14 +00:00
20f76b4eaa Update the alerts bindings. 2007-09-25 07:15:35 +00:00
b72a79332d Update mainwindow glade 2007-09-24 23:14:25 +00:00
d64ed7e2e4 Make sure the queue state is saved whenever there is a change. 2007-09-24 23:13:18 +00:00
280eed95b6 libtorrent sync 1605 2007-09-24 23:07:45 +00:00
c3e960aa86 fixes problem with torrents that have a name.utf-8 entry 2007-09-24 19:38:27 +00:00
33a99c140e Change directory to that of the .exe if in Windows. 2007-09-24 10:37:14 +00:00
cf116cf3a1 Make shutdown() an async method. 2007-09-24 08:22:02 +00:00
67347e67b6 Stop update timer before shutting down. 2007-09-24 06:44:20 +00:00
8b6a14403f fix icon path 2007-09-24 06:41:38 +00:00
dd3ec750aa Prevent update() thread to start until all plugins are loaded and we are
ready to show the main window.
2007-09-24 06:22:31 +00:00
5043c8bf29 activate test active port button 2007-09-24 03:54:35 +00:00
1f0579d590 Update TODO. 2007-09-23 23:51:29 +00:00
44240b194e lt tracker request url ampersand fix, endpoint to string conversion fix. 1602 2007-09-23 23:45:41 +00:00
c86a17b42b Some interactivty tweaks. 2007-09-23 23:38:54 +00:00
10632476ce Have core save the config file on shutdown. 2007-09-23 23:30:46 +00:00
e47e7920cc change where clearing of torrentdetails is done 2007-09-23 09:41:53 +00:00
f6640db58e clear torrentdetails when a torrent is removed 2007-09-23 08:53:42 +00:00
b209d268f2 fix icon path 2007-09-23 08:18:20 +00:00
9cb26544e1 fix icons to use theme properly 2007-09-23 08:06:44 +00:00
3270f23747 Initial import of StatusBar 2007-09-23 02:24:18 +00:00
d80debfbea Save and restore the main window's vpane position. 2007-09-23 00:50:42 +00:00
56e78f0cc6 Add file. 2007-09-22 23:04:05 +00:00
8f62df0732 Inital import of SystemTray 2007-09-22 23:02:58 +00:00
28447f7564 oops, fix docstring 2007-09-22 19:52:22 +00:00
731c51815e update tracker aka force reannounce 2007-09-22 19:44:11 +00:00
d91bcbe55c Update TorrentDetails when a different torrent is selected. 2007-09-22 19:27:29 +00:00
f5868df3ad ipv6 fix, race condition fix, varient_stream fixes 2007-09-22 17:50:59 +00:00
82873f8129 translate torrentview 2007-09-22 14:31:48 +00:00
30ed1f2d86 Fix saving config on exit of UI. 2007-09-22 03:30:42 +00:00
cc155d9473 ConfigManager now tries to save configs every 5 minutes.
Added close() to ConfigManager to explicitly close and save a config.
2007-09-22 03:14:23 +00:00
1f6798c98a Make sure gtkui.conf is written on quit. 2007-09-22 03:13:32 +00:00
0ed8ac1cdc MainWindow state saving. 2007-09-22 02:53:06 +00:00
61216e06b0 have either, not full, set as default 2007-09-22 00:21:24 +00:00
e2422ab64e Add translated torrent state list. 2007-09-21 23:56:59 +00:00
007f8c8dc3 Show paused state correctly in TorrentView. 2007-09-21 23:30:03 +00:00
f7b537ad81 Display progress bar in torrentview properly. 2007-09-21 22:54:46 +00:00
0c012133cd fix icon size 2007-09-21 22:37:17 +00:00
fb20bcd1a2 add avail column 2007-09-21 22:25:54 +00:00
c454ea05fe fix resizing 2007-09-21 21:20:19 +00:00
f62bf99941 fix various py_none returns 2007-09-21 20:29:40 +00:00
7b91bf83cc Fix get_pe_settings() in bindings.
More debug output for encryption settings.
Fix preferences glade file so that encryption settings are in correct 
order.
2007-09-21 04:24:26 +00:00
c69a5661df i18n fixes 2007-09-21 04:08:55 +00:00
537bc72190 peer num reminder 2007-09-21 04:02:07 +00:00
b9de236a00 Update TODO. 2007-09-21 03:09:17 +00:00
bf0c8ba820 Fix extensions. 2007-09-21 02:52:52 +00:00
7224fa7196 Fix extensions. 2007-09-21 01:18:32 +00:00
8cea7e34ed Fix python bindings. 2007-09-21 00:58:28 +00:00
adf5487962 libtorrent sync 1592 2007-09-21 00:55:58 +00:00
0b746d2ab1 revert lt sync for later testing 2007-09-21 00:22:38 +00:00
4dd7e38358 Remove Makefile.am as we do not use it. 2007-09-21 00:09:25 +00:00
4ca7ced757 Add status icons to torrentview. 2007-09-21 00:08:12 +00:00
a9961adda7 finish sync 2007-09-21 00:05:59 +00:00
b2fe562dd4 libtorrent sync 1592 2007-09-20 23:43:07 +00:00
d44632f0a9 Add 'default_load_path' to default prefs. 2007-09-20 22:57:16 +00:00
ff13e8c2f7 Update TODO. 2007-09-20 22:21:43 +00:00
943a62f62c Have all core config use set functions to apply the configuration to the
session.
2007-09-20 22:10:03 +00:00
d3c5064353 Add upnp, natpmp and pe_settings support to libtorrent bindings. 2007-09-20 22:09:23 +00:00
ec5c970499 Add 'deluged' script to start the deluge daemon. 2007-09-20 19:56:05 +00:00
ddc1ee6295 enum fixes and ipv6 update 2007-09-20 16:28:41 +00:00
f673833fe9 proper path to try to fix windows bug #6 2007-09-19 21:01:06 +00:00
cd10e9bbaa many fixes in libtorrent sync 1586 2007-09-19 20:39:29 +00:00
760acc8f30 more asserts to bandwidth limiter 2007-09-19 02:45:29 +00:00
66192d0f8d Add 'set functions' to Config.. These functions get called when the
specified key's value changes.
2007-09-18 14:40:19 +00:00
685e20fbf1 Only write a config file to disk if there is a change in the
configuration.
2007-09-18 06:26:22 +00:00
e4ebef6ae3 Properly shutdown ConfigManager. 2007-09-18 04:47:28 +00:00
9370d81444 Add extra output in add_torrent_url() and update TODO list. 2007-09-18 03:18:43 +00:00
25146891ff disable loopback for upnp 2007-09-18 02:33:04 +00:00
e3188695c6 check url in functions instead 2007-09-18 02:25:32 +00:00
7338806613 fix header 2007-09-18 02:12:30 +00:00
0a7789f649 add about dialog and open_url_in_browser 2007-09-18 01:52:32 +00:00
25271af9f3 remove unused import 2007-09-17 20:42:37 +00:00
d953c8d8b4 url checks for add torrent 2007-09-17 20:38:32 +00:00
a93c236e0e libtorrent upnp fix, compilation fix 1577 2007-09-17 19:48:16 +00:00
b6faa81c26 Upload actual status icon source svgs and update the alert status icon
to be consistent with the rest.
2007-09-17 13:55:47 +00:00
8f796738d5 Initial import of ConfigManager. 2007-09-17 12:44:31 +00:00
c5156df280 Add torrent from URL implemented. This is Marcos patch plus some more
error checking and some modifications to make it work properly with 
TorrentManager.
2007-09-17 11:07:58 +00:00
4fbef5d94a update changelog 2007-09-17 10:36:41 +00:00
2037ceba69 again, to prevent upgrade problems, disable torrentpieces from being shown as available 2007-09-17 10:36:09 +00:00
3e5ad3e60d disable torrent pieces plugin from loading to prevent upgrade problems now that its been removed 2007-09-17 10:30:29 +00:00
a026f0472d update changelog 2007-09-17 10:24:42 +00:00
9d85580029 pause torrent before move and resume afterwards 2007-09-17 09:55:48 +00:00
6898d8dd17 Add alert status icon and the source svgs of the other status icons. 2007-09-17 06:10:39 +00:00
7f8743df17 Update TODO list. 2007-09-17 05:23:59 +00:00
c072e4d605 Preferences dialog now saves and displays gtkui specific config options. 2007-09-17 05:15:31 +00:00
cc8466988c Add DEFAULT_PREFS. 2007-09-17 04:36:45 +00:00
978a2ae80b Remove debug print from that last commit and re-add libtorrent metadata
plugin.
2007-09-17 04:20:40 +00:00
f764448cad Store allocation type in the torrent state file and add the ability to
add a torrent with a different allocation type then what is set in the 
config.
2007-09-17 04:19:59 +00:00
4a2bb465f0 Fix libtorrent extensions from crashing on add_torrent. 2007-09-17 04:08:47 +00:00
e4e4ded874 move pause code in blocklist plugin 2007-09-17 03:56:42 +00:00
dcfb14d7e5 piece picker fix 1568 2007-09-17 01:13:06 +00:00
70b71ad6ce Added user-agent.
Now start the metadata and utpex extensions on start-up.
2007-09-17 01:05:27 +00:00
3f89fd2753 libtorrent sync 1567, for many fixes, including upnp and run conditions 2007-09-16 07:56:11 +00:00
e6341e35d9 finish off window icons for now 2007-09-16 07:40:44 +00:00
379eff9767 Updates to last patch and updates to the preferences dialog. 2007-09-16 04:26:32 +00:00
b9ffab2499 touchup last and remove old files 2007-09-16 03:55:32 +00:00
bc88fb3d11 icons and internal pixmap 2007-09-16 03:46:50 +00:00
9d2f6ad3a0 Adding TODO file. 2007-09-16 02:02:27 +00:00
70dde55ecf Tweaked random port selection. 2007-09-16 01:41:18 +00:00
ef5c499f17 Remove 'po' directory in gtkui due to new i18n patch. 2007-09-16 01:25:26 +00:00
7f5a0d8ab7 Applied i18n patch from Marcos. 2007-09-16 01:24:08 +00:00
9bb65d1ab4 Add random port support patch from Marcos. 2007-09-15 22:22:06 +00:00
2e461091dd clean up statvfs 2007-09-15 15:51:19 +00:00
82e7eb2e32 Add licenses for libtorrent and asio. 2007-09-15 07:21:34 +00:00
444ac9ec99 add windows notice 2007-09-14 22:42:07 +00:00
36cd2cda98 again 2007-09-14 22:30:00 +00:00
389f9d94a2 fix last, oops 2007-09-14 22:27:36 +00:00
63e4724a8c add warning for failed launch in win32 2007-09-14 22:23:38 +00:00
dc71d16ac1 add try/except for startfile 2007-09-14 22:18:06 +00:00
491e7ea0d6 window tweak for torrentfiles 2007-09-14 22:13:09 +00:00
da60769933 windows tweaks 2007-09-14 22:09:44 +00:00
ccf5f91dc2 again 2007-09-14 19:28:06 +00:00
05b105276e tweak last 2007-09-14 19:26:29 +00:00
eb7db72965 try to catch windows shutdown so we exit properly and dont lose data 2007-09-14 19:21:55 +00:00
47cac3dc4a add basic vista support 2007-09-14 19:08:01 +00:00
c1e4364c1d i like pie 2007-09-14 18:29:57 +00:00
7ad2b9ec6a change for building on windows 2007-09-14 18:26:53 +00:00
4691dcbaa2 Preferences dialog now sets core configuration options. 2007-09-14 11:45:42 +00:00
4bc18ed940 Fix deprecated add_torrent() method call. 2007-09-14 06:53:24 +00:00
ff073dc4fb fix race condition (rev 1561) 2007-09-14 03:09:05 +00:00
b7f0447228 reupping asio and some lt fixes 2007-09-12 22:43:51 +00:00
b0fdc2fab8 upnp on by default 2007-09-12 22:11:50 +00:00
c857b1fbbf upnp fixes 2007-09-12 21:37:33 +00:00
08ea29aa4c only kill our daemon, not potentially others...unlikely as it may be 2007-09-12 20:55:51 +00:00
a46610a04a Fix widget naming. 2007-09-12 12:11:10 +00:00
0d356ff79a peers and files on my default 2007-09-12 03:14:41 +00:00
1be0705aab Add activate signal to Preferences menuitem. 2007-09-12 03:09:36 +00:00
bd5cd655a1 remove torrentpieces. blah 2007-09-12 02:55:51 +00:00
116c79ba3f cleanup and kill dbus-daemon on close when in win32 2007-09-12 01:42:37 +00:00
63501ebe5b increase the maximum buffer size on bottled http_requests 2007-09-11 22:37:58 +00:00
f4bd67c320 pause torrents during blocklist loading and then resume the ones that werent paused to begin with 2007-09-11 21:55:49 +00:00
d793835a7e add try/except to catch crash if the plugin configuration window is closed 2007-09-11 21:27:50 +00:00
120b3335b4 tweaks so torrentnotification plugin doesnt crash win32 client 2007-09-11 19:20:41 +00:00
4c5a53b982 cut unnecessary import 2007-09-11 01:16:29 +00:00
ca4305c0a9 cleaning up win32 calc_free_space 2007-09-11 01:13:17 +00:00
c2b3109d0a make calc_free_space work with win32 2007-09-10 23:13:21 +00:00
f880a05e14 again 2007-09-10 21:26:21 +00:00
fd5f99630f fix last 2007-09-10 21:24:17 +00:00
5929d1ad53 install path for windows 2007-09-10 21:22:10 +00:00
c6cb4a20c8 listen port refactoring 2007-09-10 20:52:42 +00:00
c2b9a5eaaa listen port tweak 2007-09-10 17:15:48 +00:00
dcf3cac453 clarify lack of svg use in win32 2007-09-10 17:00:04 +00:00
aef7f31f5c changelog updates 2007-09-10 16:44:44 +00:00
6064706d6c windows build touchups 2007-09-10 16:44:35 +00:00
f2e78f407c freebsd build fix 2007-09-10 16:44:04 +00:00
2b120cdbe4 Inital import of Preferences dialog. 2007-09-10 13:21:33 +00:00
10a34b0951 deal with windows icons 2007-09-10 09:59:12 +00:00
f7039bdc0a i need sleep 2007-09-10 09:23:36 +00:00
aff7718e21 add ico to ease future packaging 2007-09-10 09:21:25 +00:00
889a025396 add file 2007-09-10 09:19:41 +00:00
1ef898ba37 add missing file 2007-09-10 08:52:32 +00:00
9a18581b20 merge in win32 changes to setup file 2007-09-10 08:51:21 +00:00
8b7419eb51 set half open connections to 8 on windows 2007-09-10 08:48:18 +00:00
02720ddcd9 libtorrent various fixes including upnp 2007-09-10 06:46:41 +00:00
47e47ac9cc use theme for tray icon, not hard-coded 2007-09-09 20:46:59 +00:00
93f928baac update dependencies 2007-09-09 16:02:52 +00:00
af4c9c0ea8 Updated Scheduler plugin to work with current trunk. 2007-09-09 12:07:20 +00:00
8142c69e2a Revert last change as it doesn't seem to fix the issue. 2007-09-09 12:03:03 +00:00
f164cfd2cb Fix issue of port not being closed properly on exit. 2007-09-09 11:31:09 +00:00
af177749ff icon revamp for freedesktop.org specs and to use svg instead of png inside deluge 2007-09-09 01:06:29 +00:00
1abb7c161d session_impl and connection_queue fixes 2007-09-08 19:05:43 +00:00
1b6a8925eb tweak for win python bug 2007-09-08 18:47:31 +00:00
e737e3ef12 Can now register handlers with the AlertManager to handle libtorrent
alerts.
2007-09-08 14:01:52 +00:00
f5a00e8d58 Add some more error checking. 2007-09-08 08:30:15 +00:00
a91c00c247 move explorer to end of list to not mess up current pref settings 2007-09-08 01:32:35 +00:00
cfe44a3ad9 add ms explorer to file manager list 2007-09-08 01:30:03 +00:00
eac5b42336 remove no longer needed exec_deluge_command 2007-09-08 01:03:34 +00:00
f5951ef7b7 move update.py to common 2007-09-08 01:00:51 +00:00
83474930fd touchup 2007-09-07 22:21:05 +00:00
3aedc14399 move send info into common 2007-09-07 21:26:50 +00:00
de0f454879 use thread for browser calls 2007-09-07 21:02:22 +00:00
20bbb09f4f locales tweak 2007-09-07 09:38:53 +00:00
38312177ef Inital import of the AlertManager. 2007-09-07 08:21:19 +00:00
05a0a8a6a4 Make myself the only author of this branch. 2007-09-07 08:20:20 +00:00
e8e6f5bd4b hide tray icon on close for the benefit of windows 2007-09-07 06:31:09 +00:00
58bcb2abb9 ticket #520 switch LC_ALL to LC_MESSAGES 2007-09-06 20:48:22 +00:00
402bd70816 asio sync with upstream 2007-09-06 20:27:50 +00:00
f8029692bf windows locale skipping 2007-09-06 20:07:12 +00:00
2ffbbe1eb8 more piece picker fixes for libtorrent 2007-09-06 19:36:40 +00:00
5c072322e3 piece picker fixes in libtorrent 2007-09-06 01:36:16 +00:00
5b57463125 remove incorrect assert 2007-09-05 22:50:57 +00:00
63621be3ee add private flag to torrentcreator 2007-09-05 17:35:44 +00:00
02874799f2 Update the columns menu when new columns are added. 2007-09-05 17:26:52 +00:00
87d58cd0e1 firstlast fix by andar 2007-09-05 13:25:46 +00:00
1914cbea3e remove unneeded try 2007-09-05 01:43:55 +00:00
83042205ab pref for show 18px flag on by default 2007-09-05 01:29:59 +00:00
899dd558c9 libtorrent sync 1531 and alter deluge_core to deal with api changes in libtorrent 2007-09-04 19:51:15 +00:00
d7363ffb5f path fix 2007-09-04 18:12:16 +00:00
26dd7a83cf win config dir touchup 2007-09-04 16:57:04 +00:00
1ac7e0eaab prio range fix from andar 2007-09-04 16:40:40 +00:00
692cd471f1 xdg.BaseDirectory fix for windows 2007-09-04 16:34:58 +00:00
b4ad65ab9b Add Deluge fingerprint. 2007-09-04 15:35:07 +00:00
11f033db48 revert last until further testing 2007-09-04 07:13:06 +00:00
0e3f5672a5 libtorrent sync 1531 2007-09-04 04:01:19 +00:00
f1fde2dcf0 if statement for sighup in win32 2007-09-04 01:09:15 +00:00
9af94bda88 Fix typo in Wizard: 10mbit should have read 100mbit. 2007-09-03 11:33:27 +00:00
3f60aa4c73 changing version number of trunk to reflect next release 2007-09-03 09:16:00 +00:00
a636cfc4e0 redo last properly 2007-09-03 06:45:37 +00:00
fa8b04d0a1 sync language with launchpad for rc release 2007-09-03 06:42:52 +00:00
b187d02c94 Change torrent_add_file() method in core to return a boolean value based
on the success of the torrent add.
Removed the torrent_add_failed() signal from core.
2007-09-03 06:35:31 +00:00
a33294eead add path to details tab 2007-09-03 06:26:54 +00:00
28dbb279a0 revert 1607 2007-09-02 22:57:25 +00:00
af37e0a361 peer/seed numbers cleanup - andar 2007-09-02 19:38:23 +00:00
be5855dcd6 Added TorrentDetails component to GtkUI, but it is currently not
optimized.
Added more status fields to Torrent.
2007-09-02 14:15:41 +00:00
0d12b1e0cf Fix names of widgets. 2007-09-02 11:55:41 +00:00
ba3ff0877f only show pref dialog once 2007-09-02 03:07:26 +00:00
4cc1e0e96b fix auto max ratio - micah 2007-09-02 00:24:44 +00:00
e9917bfbb2 Code clean-up. 2007-09-01 11:52:01 +00:00
55fc7f4725 Fix issue where core could not save .torrent files if the
torrentfiles_location did not exist.  Core will not create this 
directory before attempting to write the file.
2007-09-01 09:57:02 +00:00
e0937ab97a correct wording 2007-08-31 19:42:12 +00:00
782457d8d7 file and peer plugins on by default and change upload slots 2007-08-31 19:29:57 +00:00
547766cdf9 tweak queue bottom 2007-08-31 07:13:43 +00:00
6253d68e3f remove unnecessary print 2007-08-30 07:41:18 +00:00
c3bdbb59e7 touchups 2007-08-30 02:16:20 +00:00
462ad22c61 cleanup 2007-08-30 02:04:26 +00:00
fc5af09660 tweak changelog 2007-08-30 01:17:53 +00:00
7c563d92ed reorderable tabs and remember order 2007-08-29 21:38:38 +00:00
26f1970d6c adding copyright for all missing plugin files 2007-08-29 10:16:33 +00:00
b4dfd8ea5b fix line break 2007-08-29 08:51:42 +00:00
d1d0cad3fb copyright fixes 2007-08-29 08:37:38 +00:00
cb0505405d Clean-up. 2007-08-29 08:02:06 +00:00
c5d76cf8ee State saving and loading in core and TorrentQueue.
GtkUI now requests a 'session_state' on start-up to populate it's 
listview.
GtkUI can now shutdown core.
2007-08-29 08:00:19 +00:00
5aac66bb25 missing part of last commit 2007-08-29 07:09:02 +00:00
99e8f71246 edit trackers now persistent 2007-08-29 07:08:16 +00:00
8930d69df1 wizard cosmetic touchup 2007-08-29 04:56:53 +00:00
14ed3ebac3 change version number for rc prep 2007-08-29 02:28:10 +00:00
ebbf457ce5 persistence to changelog 2007-08-29 00:55:37 +00:00
e274a60373 desiredratio persistence 2007-08-29 00:53:00 +00:00
42d36e54de move persistence data so it's made before building the menu 2007-08-29 00:40:46 +00:00
d39e691c7a fix missing value 2007-08-29 00:38:34 +00:00
ee9a01ab6d more speedlimiter persistence fixes/tweaks 2007-08-28 23:38:58 +00:00
6bcd0ca604 webseed plugin persistence 2007-08-28 23:23:05 +00:00
d2761b1603 fix for old torrents 2007-08-28 23:19:09 +00:00
fae29ee8be persistence for speedlimiter 2007-08-28 23:05:08 +00:00
ca5306bd2d Code refactoring.
Sync preferences_dialog.glade from trunk.
2007-08-28 09:50:25 +00:00
53934ec8d8 Add file. 2007-08-28 07:33:07 +00:00
8e2ea90c82 cleanup line-lengths for pep8 2007-08-27 22:14:17 +00:00
dac78171aa tweak proxy tab 2007-08-27 21:29:10 +00:00
39a66dd94b add deluge logo to wizard header 2007-08-27 21:14:40 +00:00
3aeb01f38b move tabs to top 2007-08-27 19:19:23 +00:00
dd88d29f87 bunch of lt fixes 2007-08-27 19:04:41 +00:00
c85fda3188 Code refactoring and added docstrings. 2007-08-27 14:34:44 +00:00
b39f981f6d tweak last 2007-08-27 09:14:11 +00:00
3608775441 fix lt bug #126 and some duplicate data from torrent_info 2007-08-27 09:10:29 +00:00
a71a6b8e1a add run configuration wizard to help menu 2007-08-27 06:39:00 +00:00
e0442949b2 touchup plugin descriptions 2007-08-27 06:03:16 +00:00
1bd62ba584 Add TorrentQueue's menu glade file. 2007-08-27 05:52:32 +00:00
92c96a9a90 piece picker bug fixes and removed expensive invariant checks 2007-08-27 05:44:12 +00:00
623c34b349 TorrentQueue plugin now diplays menu in TorrentMenu. 2007-08-27 05:18:32 +00:00
7296920731 Updates to the MainWindow glade file. 2007-08-27 04:55:12 +00:00
b50e1775f0 close file properly 2007-08-27 01:36:45 +00:00
d5b355f807 tweak width a little 2007-08-27 01:09:51 +00:00
770ebe63bf add notice that proxy settings need a restart to become effective 2007-08-27 00:35:31 +00:00
e01ac4c846 bandwidth limiter asserts 2007-08-26 23:49:57 +00:00
b38fd29eae fix proxy settings not being saved properly 2007-08-26 23:31:04 +00:00
77a243abf3 translation sync 2007-08-26 22:04:07 +00:00
909ba1a1d0 add wizard.glade to translation 2007-08-26 21:51:31 +00:00
43fdce15c8 password lock fix to changelog 2007-08-26 21:45:23 +00:00
2ebfa02a11 fix password locking 2007-08-26 21:03:33 +00:00
d4b79ec6f7 have plugin button go to plugin tab in preferences dialog 2007-08-26 20:47:59 +00:00
22390d96dd go back to not blocking torrents during import 2007-08-26 19:59:04 +00:00
cd4c775d2f changelog updates 2007-08-26 19:50:59 +00:00
8fe5b570d1 fix spacing 2007-08-26 19:30:36 +00:00
0e470b9dda fix path 2007-08-26 19:08:34 +00:00
6a525530ee Big code clean-up and some refactoring. Added docstrings but more are
needed.
2007-08-26 14:34:50 +00:00
7be512656c pause torrents during import 2007-08-26 07:24:11 +00:00
63bd654c86 code cleanup - 9.55/10 2007-08-26 07:09:49 +00:00
ca89e7d18e add copyright 2007-08-26 06:23:06 +00:00
bcaec81edd add wizard for first time setup 2007-08-26 06:18:11 +00:00
91b6f6b26f tweaks to last commit 2007-08-26 02:03:17 +00:00
4238ac91a3 try to prevent "lost data" by removing previous fastresume file prior to creating another 2007-08-26 01:59:00 +00:00
d071961473 lt bug fixes #1502 and #1500 2007-08-25 22:43:36 +00:00
441c4de1e3 rate limiter fix from lt 2007-08-23 16:55:25 +00:00
46942d15dc fix queue bug. oops 2007-08-23 03:06:43 +00:00
54a61c8695 only try to fix dht corruption once 2007-08-23 02:26:09 +00:00
575c6f5e4f fix pause, piece picker, and bandwidth limit bugs 2007-08-23 01:48:21 +00:00
f3c80eb816 Remove idea of a 'get_function'. Updated add_row() to use new
status_fields.
2007-08-22 08:53:12 +00:00
f185f19cfb Plugins can now register 'status_fields' with core for use with
get_status().
Updates to TorrentQueue plugin.
2007-08-22 08:24:40 +00:00
ae37b3aa39 libtorrent add torrents in paused state sync 2007-08-22 07:17:21 +00:00
5611037db2 Modified update() in TorrentView. It is now able to update only the
requested columns and only columns which are visible.
2007-08-22 06:23:16 +00:00
da43f105b8 remove old plugin_manager glade file 2007-08-22 02:35:28 +00:00
4e7f2b0cd3 we crash on < 2.9 anyway, so this stupidtray isnt needed and thus being removed 2007-08-21 23:07:20 +00:00
730435c032 fix typo 2007-08-21 22:10:55 +00:00
810c0813ce Start work on the addition of 'status_field' to ListViewColumn. 2007-08-21 14:43:15 +00:00
accd178572 fix bug that caused StupidTray to be used 2007-08-21 11:41:57 +00:00
9a5db01700 Fix typo in MoveTorrent plugin. 2007-08-21 10:28:04 +00:00
d36298f2cf fix lt bug #136 2007-08-21 08:30:37 +00:00
cd7427f54d update inclusion of files to be translated 2007-08-21 02:57:46 +00:00
b868bc8d05 add plugin manager out to changelog 2007-08-21 01:32:55 +00:00
3a1c89cc48 touchup to plugin tab 2007-08-21 00:59:53 +00:00
4bea6f98ae plugin manager integrated into preferences 2007-08-21 00:50:04 +00:00
8d33015ef4 have interactive_add return unique_id 2007-08-20 19:57:27 +00:00
d12e333e3a Updates to the TorrentQueue plugin.
Added 'add_toolbutton()' and 'add_separator()' to ToolBar.
Added 'get_toolbar()' and 'get_selected_torrents()' to PluginManager.
2007-08-20 12:47:54 +00:00
5e7329026e last commit accidentaly included a couple of other changes i was working on. reverting those to have only one change per commit 2007-08-20 02:31:42 +00:00
4d2a2dd604 move "move completed downloads" into the "move torrent" plugin 2007-08-20 02:28:51 +00:00
c58331f5e6 move torrent plugin 2007-08-19 23:16:10 +00:00
4897a9b038 choked fix 2007-08-19 08:55:33 +00:00
4164f15735 initial libtorrent sync 1466 2007-08-19 07:46:55 +00:00
38dd216e16 Updates to ListView and the TorrentQueue plugin. 2007-08-18 11:16:31 +00:00
7f2232f34f swap plugins and preferences in menus to be consistant. ticket #499 2007-08-17 23:03:31 +00:00
98ecdd12a9 Added remove_column() to ListView. 2007-08-17 09:55:33 +00:00
40f9b0a7d0 Sync _dbus.py from deluge-plisk branch. 2007-08-17 09:01:26 +00:00
dd64eda432 little cleanup of width setting and saving 2007-08-17 03:44:32 +00:00
8d23e8ee80 The column menu list now toggles visibility of the columns. 2007-08-17 03:16:56 +00:00
1973d7c9e3 revert last...too many changes for now 2007-08-16 23:49:18 +00:00
476a72b0e4 1456 libtorrent sync 2007-08-16 21:06:27 +00:00
c1d2d4f0ae Per torrent preferences tweaks. 2007-08-16 07:30:09 +00:00
c9ba1cd207 require there to be active torrents for dht checking to take place 2007-08-16 01:35:43 +00:00
e208724bc3 Updated listview menu creation.
Added 'hidden' columns.
2007-08-15 14:30:47 +00:00
00a88b0ff1 destroy deluge window before doing rest of shutdown sequence so users dont kill deluge thinking it's hung 2007-08-15 07:22:10 +00:00
61b111661e move file column width into preferences 2007-08-15 06:17:54 +00:00
f8c6151568 Tweaks to peers tab columns. 2007-08-15 05:11:18 +00:00
23a2111650 fix files columns 2007-08-15 04:57:50 +00:00
70e4b2d9ed Added copyleft to _dbus.py. 2007-08-15 04:56:59 +00:00
b77f5c1c25 fix columns in peers plugin 2007-08-15 04:52:51 +00:00
c5cbc29705 fix toggle column 2007-08-15 04:39:04 +00:00
56f5e7b7d5 add save column widths to changelog 2007-08-15 04:12:51 +00:00
79ed86f0e7 save column widths 2007-08-15 04:12:21 +00:00
b89f320d26 Remember last chose download directory when "Ask where to save each download"
is selected.
2007-08-15 03:13:04 +00:00
4f697de7f3 blah. add self. 2007-08-15 02:53:40 +00:00
bb1f887a12 set timer back to zero when done...forgot that :) 2007-08-15 02:52:22 +00:00
d885d3320a try to detect a corrupted dht file and automatically fix it 2007-08-15 02:51:25 +00:00
f195c3c680 add fast to changelog 2007-08-15 02:14:38 +00:00
e9605a8432 Show seeding icon next to finished(with filtered files) torrents. 2007-08-14 22:56:37 +00:00
62c369bb6f Set desired ratio to 1.0 by default for all torrents. 2007-08-14 21:55:47 +00:00
274ba7e771 Fixed typo in Speed Limiter plugin. 2007-08-14 21:03:07 +00:00
14a57c6d00 add checking for url in web seed plugin 2007-08-14 19:21:00 +00:00
8238605aa4 add web seed plugin to changelog 2007-08-14 19:18:33 +00:00
1a3b381164 small fix for last 2007-08-14 19:17:00 +00:00
751dc5bf2b add web seed plugin 2007-08-14 19:16:47 +00:00
8b4d40664e add web url to our bindings and core 2007-08-14 18:46:57 +00:00
b26575e920 fast-extension support from libtorrent 2007-08-14 17:59:02 +00:00
1800dbad86 add payload 2007-08-14 15:01:09 +00:00
44772f9d11 Added queue fixes to ChangeLog. 2007-08-13 22:37:01 +00:00
912eb0e14c Tweaks to wording in a comment from prev commit. 2007-08-13 20:38:13 +00:00
6207033b36 More queue fixes. Now store torrent_info instance in the queue instead of
unique_id as there is no sense to store unique_ids in the persistent queue
while uqique_ids is changed on each restart. In the core self.state.torrents
now a dict with torrent_info -> unique_id. Needs testing.
2007-08-13 20:33:08 +00:00
72fa2a44a5 Refactored the way dbus is imported. 2007-08-13 11:10:15 +00:00
b7e3c6b3df Sync libtorrent to trunk.
Start of columns menu.
2007-08-13 09:28:29 +00:00
3edd3280ae Properly restore queue order on restart. 2007-08-13 09:09:15 +00:00
aea7be5aa5 fix typo 2007-08-13 08:45:31 +00:00
77a88d9797 add license to about dialog 2007-08-13 08:42:37 +00:00
19c75c10c8 use payload for session total downloaded and total uploaded 2007-08-13 05:40:48 +00:00
4af848ef49 we should've been using payload for transfer speeds from the get-go 2007-08-13 05:29:24 +00:00
952f03a6cc revamp networkgraph plugin - Ultrafusion 2007-08-12 23:23:21 +00:00
ac29983651 ListView still needs some improvements, but it is working now.
Removed columns.py as this has been merged with listview.py.
2007-08-12 09:48:34 +00:00
e13b42203b Start of move to generic ListView. Not really functional yet. 2007-08-12 07:01:27 +00:00
da8bd07ce7 libtorrent sync 1449 2007-08-11 22:55:15 +00:00
873b5397eb Add missing file. 2007-08-11 06:49:18 +00:00
895f7e2761 Add missing files.
Start of plugin support in gtkui.
2007-08-11 06:46:41 +00:00
ed9a306cf5 Removed some unused interface code. 2007-08-11 03:06:56 +00:00
ef81832120 Tweaks to tray code. 2007-08-11 01:24:51 +00:00
1372b3fc67 Replaced --tray command option with "Start in tray" preference. 2007-08-11 01:18:50 +00:00
9ae50f72d9 Tweaks to plugins tray messages. 2007-08-11 00:20:21 +00:00
371e1f9a54 Tweaks to Extra stats plugin. 2007-08-11 00:09:22 +00:00
db4ef67cff Get not cached torrent state in core.apply_queue(). 2007-08-10 22:42:53 +00:00
038a1dc316 last changes in changelog for 0.5.4.1 2007-08-10 21:40:15 +00:00
bcb03beffd Tweaks to allocation and file manager prefs. 2007-08-10 21:32:20 +00:00
c29a303dd4 fix switch 2007-08-10 21:21:58 +00:00
8bb4ea33aa update for new prefs 2007-08-10 21:18:59 +00:00
a349e5e6b9 compact/full and manager prefs tweak 2007-08-10 21:17:32 +00:00
ee074874fa fix typo 2007-08-10 21:02:05 +00:00
59f39ce65c fix weird radio group assertion error 2007-08-10 20:59:58 +00:00
33718d5e03 Show warning when external commands not found. 2007-08-10 20:58:44 +00:00
2a09f50ecb add full allocation to preferences so users arent confused thinking that we dont support it 2007-08-10 20:55:08 +00:00
23e5e588e9 language sync with launchpad for release 2007-08-10 20:12:15 +00:00
56f29c89c4 Set date of the 0.5.4.1 release. 2007-08-10 20:11:25 +00:00
bcdc02693e add extra stats plugin to translation and remove old alltime plugin 2007-08-10 20:10:06 +00:00
a8024bad30 version number bump for release 2007-08-10 19:58:35 +00:00
d51a674490 Tweaks to default file manager. 2007-08-10 19:28:46 +00:00
a011e939c9 Try 2 to fix per torrent preferences after resume. Do it in deluge's core for
now, not in libtorrent.
2007-08-10 15:51:31 +00:00
e624334b6a Wording fixed. 2007-08-10 14:59:31 +00:00
ea2592b42b Re-applied patch to fix files timestamps changing when seeding. It was removed
in [1425] and sync with libtorrent r1442 didn't fix that issue.
2007-08-10 14:36:54 +00:00
2c7463f9c3 remove debug print 2007-08-10 09:21:58 +00:00
9934635fed revert 1420 since it broke resuming torrents 2007-08-10 09:17:52 +00:00
ec579fe2d9 xdg-open is default for file manager 2007-08-10 08:16:37 +00:00
13fc181fa2 More work on the queue torrent plugin and plugins in general. 2007-08-10 08:15:02 +00:00
28ad94ea6e libtorrent sync 1442 2007-08-10 06:22:28 +00:00
51376bd2be Ask user to set his file manager in case he didn't set it yet when trying to
open folder. Based on the patch from eternalswd, thanks.
2007-08-10 03:38:08 +00:00
ff08e28470 Revert last, needs more thought. 2007-08-10 03:23:45 +00:00
b7c3fddf0e Include uploaded_memory in pickle_state(). 2007-08-10 03:18:25 +00:00
cc20a34906 Replaced All time stats plugin with Extra stats. Patch is from eternalswd,
thanks.
2007-08-10 01:38:33 +00:00
069ebf0228 Locally patched libtorrent to not reset per torrent preferences on each
resume(). See ticket #118 in libtorrent's trac.
2007-08-10 01:15:48 +00:00
c4d1415f40 Tweaks to pause all and resume all features. 2007-08-10 00:15:38 +00:00
55e637eda4 Spacing. 2007-08-09 23:35:19 +00:00
ff64068c6d Refactored the way external commands are called. 2007-08-09 23:33:16 +00:00
1e00b4f0a8 Open files in the files tab by double click. Patch is from eternalswd, thanks. 2007-08-09 21:30:47 +00:00
efe6ffec1c Tweaks to prev commit. 2007-08-09 19:52:40 +00:00
5dafdc95df Tweaks to process open code. 2007-08-09 19:44:38 +00:00
897d394581 Added file viewer preference to Torrent Files plugin. 2007-08-09 18:16:28 +00:00
a3d79bc2a7 PEP8 imports in the TorrentFiles plugin. 2007-08-09 17:01:33 +00:00
12f28e33ae Tweaks to Desktop File Manager prefs. 2007-08-09 16:56:49 +00:00
fe95c9adbc Made "Open folder with" combo box in preferences non editable. 2007-08-09 15:45:40 +00:00
602f12f410 Reverted [1408]. 2007-08-09 15:36:07 +00:00
e98b9f4679 Added link to python-xdg package in the README. 2007-08-09 15:32:33 +00:00
259e43b29a Tweaks to per torrent preferences. 2007-08-09 15:24:54 +00:00
e85a521c43 Removed Open File menu item in the files selection dialog as it's not
applicable there.
2007-08-09 14:57:12 +00:00
4f663d0229 Gracefully handle no network connection in update.py. 2007-08-09 14:32:04 +00:00
14ea39b353 more translation updates 2007-08-09 08:02:02 +00:00
dd1c6615e7 update translation info 2007-08-09 07:47:36 +00:00
cdd2955fbd call me mr consistancy 2007-08-09 07:05:38 +00:00
301d5037cb change alltime to all-time for proper grammar 2007-08-09 06:51:40 +00:00
0dfb43e2ba yeah...those blank lines are just irrtating me 2007-08-09 06:47:54 +00:00
07e50647ce more event logging tweaks -micah 2007-08-09 06:43:26 +00:00
971aa69860 remove extra blank line 2007-08-09 06:16:52 +00:00
56be8825c5 update changelog 2007-08-09 06:03:54 +00:00
4a82620833 remove debug print 2007-08-09 05:59:38 +00:00
62bdd6a12e load blocklist plugin last 2007-08-09 05:58:31 +00:00
e9d8e1b290 fix last commit 2007-08-09 05:49:02 +00:00
245b29f698 all time stats plugin - micah 2007-08-09 05:35:37 +00:00
f4118e9f08 fix icon size 2007-08-09 05:25:20 +00:00
84b1b702c9 make speed dialog more visible and always on top 2007-08-09 04:28:28 +00:00
edc7574a60 make blocklist plugin loading not lock up the UI when the client is just starting 2007-08-09 03:55:56 +00:00
aad2c464e4 Set per torrent prefences on torrent add. 2007-08-09 03:50:32 +00:00
93101340e6 add padding to file manager table 2007-08-09 03:31:37 +00:00
40a1eacc49 better config path settings for eventlogging-micah 2007-08-09 02:19:50 +00:00
cf6443432b add open folder and open file to changelog 2007-08-09 02:14:17 +00:00
ff13d99e99 add separator 2007-08-09 01:52:28 +00:00
7fbbd7da30 add popup-warning if xdg-open is not found 2007-08-09 01:49:23 +00:00
d8d6dcd998 touchup 2007-08-09 01:31:26 +00:00
2d952aaa48 add open file to file_menu 2007-08-09 01:26:33 +00:00
b89120aaa5 Tweaks to core.queue_* functions. 2007-08-09 00:36:22 +00:00
4caa29fddc Pickle state in core.queue_* methods. Idea by eternalswd, thanks. 2007-08-09 00:29:33 +00:00
c2bd8b7ac3 Tweaks to open folder feature. 2007-08-09 00:16:03 +00:00
0053ae4f59 pickle instead of sync in set_user_pause 2007-08-08 23:56:42 +00:00
95d5e33301 add custom option for file manager 2007-08-08 23:03:44 +00:00
fa505b6750 let system env find location 2007-08-08 22:17:27 +00:00
86ce83edb1 fix for multiple selected torrents and open containing folder 2007-08-08 22:11:38 +00:00
4e22511d5a finish revert i hope 2007-08-08 22:06:13 +00:00
b5e898721d fix last 2007-08-08 22:00:23 +00:00
a111d8e648 revert tray tooltip lifetime 2007-08-08 21:58:43 +00:00
2cebfca612 add try to capture possible error 2007-08-08 21:46:47 +00:00
8bd900d189 add "open containing folder" by me and lifetime totals in tray tooltip by micah 2007-08-08 21:45:18 +00:00
5b522678e0 Added new per torrent preferences to ChangeLog. 2007-08-08 20:57:12 +00:00
2f8f89cf18 alignment fixes - micah 2007-08-08 20:18:46 +00:00
b8aafa3448 Changed Availability column name to Avail. so it use a bit less space. 2007-08-08 20:08:15 +00:00
758b5d8851 Added per torrent max connections and max upload slots preferences. 2007-08-08 19:59:46 +00:00
b9a5b1c7a3 Tweaked update.py to properly call gettext function. 2007-08-08 16:56:52 +00:00
69103fdf49 Don't use global preferences in plugins. 2007-08-08 15:13:53 +00:00
c5705b2136 Fixed #485 - Properly set proxy settings. 2007-08-08 14:55:36 +00:00
1573e11acf pieces description update- micah 2007-08-08 06:52:43 +00:00
f55f32ff2a last 2007-08-08 06:37:07 +00:00
2fa11dc18f pieces rewrite - micah 2007-08-08 06:32:41 +00:00
f0b3293dad need to go back to spawning for python 2.4 compatibilitiy 2007-08-08 06:14:04 +00:00
6c168a3e56 removing the init in common made it stop working, so readding 2007-08-08 03:36:51 +00:00
df744c4658 ident 2007-08-08 03:33:08 +00:00
e039de8406 indent fix 2007-08-08 03:31:04 +00:00
9f1efa8802 more gobject tweaks 2007-08-08 03:21:43 +00:00
658282d09d remove no longer used spawn files 2007-08-08 03:16:52 +00:00
2e1e6901da remove spawning 2007-08-08 03:15:23 +00:00
17f71c916e remove old, unused code 2007-08-08 02:30:09 +00:00
a1c252dbbe Made more buttons to use clicked signal. 2007-08-08 02:03:28 +00:00
ce513e5725 asio sync 2007-08-08 01:29:13 +00:00
174ff4ee70 fix button pressed issue 2007-08-08 01:21:39 +00:00
fc5b6e525a add print for set_[up|down]load_rate_limit 2007-08-08 01:11:59 +00:00
58d4c6381e Tweaks to move_storage. 2007-08-08 01:10:28 +00:00
ff4dad534f Locally patch libtorrent so it doesn't change files timestamps on each restart
of seeding torrents. See ticket #105 in libtorrent's trac for more details.
2007-08-07 23:53:45 +00:00
71e3e6ea32 Minor tweaks to right-click handler in torrents and files lists. 2007-08-07 19:06:39 +00:00
72a55d4523 Peers plugin tweaks. 2007-08-07 17:04:56 +00:00
5b40a50efb DRY in send info routines. 2007-08-07 14:43:02 +00:00
9f13c7e522 rename variable to be consistent with name in other files 2007-08-07 12:34:12 +00:00
b5d8aedb2b more os.path.join changes 2007-08-07 11:52:21 +00:00
0ae3bdf839 use proper os.join.path 2007-08-07 11:20:07 +00:00
0159c18da4 fix indent oops 2007-08-07 10:50:11 +00:00
9cb20a96ce only resend info if it's been over a week 2007-08-07 10:45:02 +00:00
666a043275 post 0.5.4 updates 2007-08-07 10:11:42 +00:00
63ef550e45 finally catch gnome logoff and quit properly 2007-08-07 10:02:59 +00:00
ee6087579b bah 2007-08-07 09:15:01 +00:00
67a66ce2bd sync instead of just pickle on torrent move 2007-08-07 09:08:49 +00:00
c9a15f9b64 freebsd fix retry 2007-08-07 08:47:55 +00:00
ae8def9320 fix storage oops 2007-08-07 08:43:28 +00:00
680826e969 upnp fixes 2007-08-07 08:07:19 +00:00
c06b63b027 libtorrent sync 1436 2007-08-07 07:39:08 +00:00
9dd7f6c6cf piece fix -micah 2007-08-07 06:58:34 +00:00
1897faf395 rely on server to handle duplicate entires so we can get new info when user upgrades their pygtk version, etc 2007-08-07 05:06:20 +00:00
c331e3a667 clarify what's sent 2007-08-07 04:31:09 +00:00
a520ae108e remove debug print 2007-08-07 04:26:33 +00:00
bff7ba63c7 include pygtk version 2007-08-07 04:24:44 +00:00
2c45b379fc Pieces plugin updates from eternalswd, thanks. 2007-08-07 03:17:30 +00:00
48bdbbb060 add send info pref so we can get a better idea of our users 2007-08-07 03:09:18 +00:00
bacdec3e76 remove already imported import 2007-08-07 02:54:17 +00:00
a5d5cb7f4b one for max ratio queuing and one for torrent pieces - micah 2007-08-06 23:17:21 +00:00
5c0a649a65 make freebsd exception 2007-08-06 23:05:42 +00:00
7d14b8e38f add SIGINT to signals 2007-08-06 07:04:10 +00:00
92dfa72d43 touchup last 2007-08-06 06:55:18 +00:00
48d1f51f65 save state on pause/resume/move storage 2007-08-06 06:53:45 +00:00
b8a8beaedc catch and exit cleanly on SIGTERM and SIGHUP 2007-08-06 06:23:03 +00:00
e33f9dc844 Pieces plugin fixes from eternalswd, thanks. 2007-08-06 05:59:44 +00:00
ec1c5cf2c7 Tweaks to the Peers plugin. 2007-08-06 04:37:11 +00:00
cdf3011c81 Tweaks to Peers and Files tabs plugins to handle removal of torrents. Patch is
from eternalswd, thanks.
2007-08-06 04:02:42 +00:00
9d17d21804 PEP-8 and some clean up in the Peers tab plugin. 2007-08-06 03:52:16 +00:00
3848b7c67e * PEP-8 and some clean up in the Files tab plugin.
* Some improvements to tab switching code in the interface.
2007-08-06 03:23:32 +00:00
5a0bddba31 fix last 2007-08-06 03:22:50 +00:00
0dad17b5cd add ufs/ufs2 sparse file support 2007-08-06 03:18:31 +00:00
900ac29d4c More clean ups in interface code. 2007-08-06 02:23:08 +00:00
b26ebe6883 Minor tweak to previous commit. 2007-08-06 02:15:29 +00:00
39e9e77ec6 Properly update the Files tab when multiple torrents selected. 2007-08-06 02:14:18 +00:00
faf5fe5e44 Returned instant update of the Peers and Files tabs when user clicks on
torrent. Needs testing.
2007-08-06 01:53:59 +00:00
3210066d6b And one more unused import in interface. 2007-08-06 01:16:02 +00:00
e0ceccf82c Removed unused import from interface code. 2007-08-06 01:13:57 +00:00
a430705f59 Minor changes in interface's update(). 2007-08-06 01:01:22 +00:00
0a59338936 Removed some stale code in interface's update(). 2007-08-06 00:56:27 +00:00
2463828170 my bad. add peer_pref glade 2007-08-06 00:48:14 +00:00
c77327c41f flags, dialogs remain on top, peer tab touchups - micah 2007-08-06 00:40:18 +00:00
a5411fbcd9 simple rss move and touchups 2007-08-05 22:32:11 +00:00
a4b3a53c38 Added 0.5.4 date in ChangeLog. 2007-08-05 21:45:03 +00:00
ef1296cc36 dialogs/windows modality fix 2007-08-05 20:13:24 +00:00
78e225526c 'Hack' in plugin support. This is totally wrong, but it sort of works. 2007-08-05 20:03:00 +00:00
9024c5b620 tag 0.5.4 release 2007-08-05 16:37:47 +00:00
a0c79eb073 oops, had one thing in here twice 2007-08-05 11:32:28 +00:00
9ac1cb4240 po sync with launchpad 2007-08-05 11:06:09 +00:00
c6481f8da5 add O2 flag 2007-08-05 09:52:50 +00:00
1a3a630f4e version number for rc2 2007-08-05 09:44:56 +00:00
2ae55f556d more translation tweaks 2007-08-05 09:34:13 +00:00
8fd8509e5b translation updates 2007-08-05 09:22:08 +00:00
ea9068e3f8 fix interactive add 2007-08-05 07:40:52 +00:00
4783f31deb allow plugin to specify output path 2007-08-05 06:22:46 +00:00
b34219bd9c delete plugin.py for network graph 2007-08-05 05:44:00 +00:00
4201cb4bae network graph fix 2007-08-05 05:40:04 +00:00
38ba6e1ecf add peer blocked alert - micah 2007-08-05 05:09:03 +00:00
af48ec78e6 add location plugin to changelog 2007-08-05 04:44:32 +00:00
171e686ae5 make plugin list scrollable 2007-08-05 04:17:18 +00:00
eff70a1c2c files tab and peers tab made into plugins - micah 2007-08-05 04:07:17 +00:00
bf695f9cfa show post 0.5.4rc1 updates 2007-08-05 02:10:33 +00:00
05d3d3fd28 add locations plugin - stoffe 2007-08-05 01:06:59 +00:00
589a2cf549 Patch libtorrent locally to properly query country service with reversed IPs. 2007-08-04 23:55:27 +00:00
a92f61a48d Added peers countries to ChangeLog. 2007-08-04 20:32:13 +00:00
94d1883a3a Minor changes to peer's country flag code. 2007-08-04 20:24:02 +00:00
9571cfd96a Fixed #198 - Added countries display to peers in the Peers tab. 2007-08-04 20:12:31 +00:00
05a96dcc52 glade fix 2007-08-04 20:05:22 +00:00
c0b8f7fb5b version numbers 2007-08-04 20:04:46 +00:00
88e626a92c Add separator to Edit menu. 2007-08-04 19:58:17 +00:00
f1ae5e6156 separator in edit menu 2007-08-04 19:57:09 +00:00
06a9592a3d Properly set private flag in files selection dialog. 2007-08-04 18:47:56 +00:00
508ad6f8b2 Made names and interfaces consistent in code of all tabs. 2007-08-04 18:38:29 +00:00
92e2bd8087 Refactored peers tab code to tab_peers.py. 2007-08-04 18:17:21 +00:00
71afa115d1 Fixed #356 - Added no. of files to Torrent info in the details pane. 2007-08-04 17:27:37 +00:00
842b54523b Properly count active torrents in the queue and correctly do queueing. 2007-08-04 15:55:45 +00:00
e40398652c Properly stop DHT in torrent_stop_DHT() in deluge_core.cpp. 2007-08-04 15:29:55 +00:00
9ac7eed49b turnicate - micah 2007-08-04 08:35:31 +00:00
09558b82e4 improve pieces performance - micah 2007-08-04 07:41:27 +00:00
c0beb51d37 -mt fix 2007-08-04 07:31:40 +00:00
ea1f96c246 replace tabs with spaces 2007-08-03 22:22:40 +00:00
ffc513763f compile arg touchup 2007-08-03 22:20:08 +00:00
ba3ccb7635 break stuff up - micah 2007-08-03 21:23:12 +00:00
43ae5566ee random port speedup 2007-08-03 21:16:03 +00:00
fdae0dad68 2007-08-03 20:29:55 +00:00
4c5a51266e clean up build args 2007-08-03 20:27:09 +00:00
053dec6e9e libtorrent sync 1429 2007-08-03 18:05:17 +00:00
0585d0930e pieces tab update - micah 2007-08-03 17:59:32 +00:00
ba53e0268f Optimized counting number of DHT peers. 2007-08-03 09:06:29 +00:00
a69be4161b libtorrent sync 1427 2007-08-03 08:25:15 +00:00
b1b9f45789 fix a segfault 2007-08-03 07:41:26 +00:00
f9f1b95a4e get dht back working for now 2007-08-03 06:20:36 +00:00
396a245d84 revert last 2007-08-03 06:17:07 +00:00
86c735401d new pieces per file thing - micah 2007-08-03 05:57:37 +00:00
452ee4089c enforce queue on resume all and update changelog 2007-08-03 04:37:47 +00:00
a37bccbf68 oops, move resume all above pause all 2007-08-03 04:33:34 +00:00
1f12f3b421 add pause all and resume all to tray 2007-08-03 04:31:07 +00:00
12fe0930b3 Tweaks to random ports code. 2007-08-03 04:23:02 +00:00
6d8864338f remove clear finished from tray 2007-08-03 04:10:52 +00:00
c43224b038 changelog update 2007-08-03 04:05:25 +00:00
e10a27bf56 add session totals to tray msg 2007-08-03 03:56:09 +00:00
867687e724 Fixed #474 - Properly show unlock tray dialog when tray clicked several times
in a row.
2007-08-03 03:01:54 +00:00
aa3d1e7569 finally fix logging - micah 2007-08-02 23:47:43 +00:00
6ef4323969 eventlogging fix, hopefully - micah 2007-08-02 22:47:43 +00:00
5e7f442c8b touchup torrent menu 2007-08-02 21:46:00 +00:00
2b291340e8 prepare log tab before initializing event handling - micah 2007-08-02 19:39:16 +00:00
9579e82a7c move select all to edit menu 2007-08-02 19:35:51 +00:00
7cd0ba0a6c Updates and revert mainwindow.py from last change 2007-08-02 18:52:33 +00:00
4ef33f7449 forgot a line 2007-08-02 18:47:25 +00:00
d7379227ab damn peer block 2007-08-02 18:44:27 +00:00
b7b31804c1 add peer_blocked_alert 2007-08-02 18:31:46 +00:00
b40d54cd10 separate add rule and set filter to speed things up 2007-08-02 18:20:24 +00:00
7fed084bda install prefix touchup 2007-08-02 17:52:35 +00:00
8f18530113 actually commit ip filter 2007-08-02 17:37:56 +00:00
a383f42957 set correct paths 2007-08-02 07:12:33 +00:00
5bfc868aad adds log to file - micah 2007-08-01 21:47:05 +00:00
874128f595 fix quotes...again 2007-08-01 21:33:53 +00:00
d0bc1e018a fix quotes 2007-08-01 21:31:31 +00:00
da7c5f9ff6 forgot to add proxy update 2007-08-01 21:25:46 +00:00
5d9c3b25ed add post 0.5.3 items to changelog 2007-08-01 21:18:31 +00:00
8f679e8bbc clarification of svn/unstable 2007-08-01 21:14:11 +00:00
be362d194c set default max torrents to 8 2007-08-01 20:44:40 +00:00
413c72d0aa libtorrent sync 1423 2007-08-01 20:19:54 +00:00
fbe3bc976d redone proxy support 2007-08-01 19:57:32 +00:00
8c9b1de33b dont update pieces tab with multiple or none torrents selected - micah 2007-08-01 19:27:42 +00:00
8cc8ffe4a4 2007-08-01 18:44:49 +00:00
076e04b642 change max num of connections to match utrorent's default of 200 2007-08-01 08:23:27 +00:00
ef234039f6 fix last commit's oops 2007-08-01 06:53:42 +00:00
692b0b507d event loggin plugin and libtorrent cleanup 2007-08-01 06:53:11 +00:00
908430aae4 fix libtorrent crash 2007-08-01 06:40:15 +00:00
ff18a44c8d libtorrent sync 1419 2007-08-01 05:36:25 +00:00
bb5231bdf7 touchup to new version check 2007-08-01 04:20:44 +00:00
756dcd294b add new "automatically check for new deluge version" feature :-D 2007-08-01 04:14:58 +00:00
865c826b60 fix test active port...who the hell removed this before? 2007-08-01 01:00:10 +00:00
d7d0877d8b rearrange import for pygtk assert problem 2007-08-01 00:22:42 +00:00
5aec3526cf touchups for torrentpieces - micah 2007-07-31 21:54:11 +00:00
b6ee1d0e37 torrent piece plugin - micah 2007-07-31 06:04:40 +00:00
d1342efc67 centos5 support 2007-07-30 17:21:37 +00:00
3105453e69 add upgrade info 2007-07-30 17:19:32 +00:00
a79b420eee 2007-07-30 09:35:21 +00:00
74cb012fa3 fix keyboard links 2007-07-30 09:34:33 +00:00
e31e2d7e25 fix unload bug 2007-07-30 09:31:51 +00:00
0a41a421b1 add per-torrent speed limits 2007-07-30 09:27:22 +00:00
9d32724a8e change speed submenus to specify global 2007-07-30 06:26:40 +00:00
8ef7a26c7b add 48x48 icon and have torrentnotification use it 2007-07-30 03:47:59 +00:00
25f69c52e0 add keyboard links 2007-07-30 01:58:35 +00:00
b9831e2e48 add select all torrents to torrent_menu 2007-07-30 01:34:30 +00:00
e62942c0b4 fix if/then loop 2007-07-30 00:01:57 +00:00
4f389246e2 add deluge icon to libnotify message 2007-07-29 03:27:44 +00:00
7dc82a5983 remove remnants of old pause/start 2007-07-29 03:03:47 +00:00
c6a1b06884 set tooltip for random port 2007-07-29 01:37:50 +00:00
35fdac60a6 change version number to differentiate from stable release 2007-07-28 23:13:06 +00:00
0c86a8e3ad smart prefs for random port 2007-07-28 23:02:15 +00:00
639cc297d2 account for the entire range of ports that the user has in preferences 2007-07-28 21:57:44 +00:00
83d45c4626 cosmetic touchup 2007-07-28 21:14:32 +00:00
98c6ab7137 fix dht problem with new random ports 2007-07-28 21:13:31 +00:00
a1534878c7 fix major oops 2007-07-28 20:12:22 +00:00
267ba8f7ac add use random port option 2007-07-28 18:58:59 +00:00
bcf70c3e0f get_torrent_status() now takes a list of keys and only returns the
values for those keys.
2007-07-28 18:48:32 +00:00
d77afef3c3 template update 2007-07-28 17:05:29 +00:00
1a09bf38dd lang update -onceme 2007-07-28 16:36:27 +00:00
e6085713fa have clear be insensitive if no torrents are present 2007-07-27 23:24:07 +00:00
29da6c9645 small tweak to resume 2007-07-27 23:17:31 +00:00
b25b15a902 get rid of silly up/down sensitive or not 2007-07-27 23:08:09 +00:00
eaafe81a07 separate buttons for resume/pause 2007-07-27 23:02:42 +00:00
bb299f4e97 Add Resume button/menuitem to the toolbar and torrent menu. 2007-07-27 22:16:57 +00:00
8c67927974 Fix up the importing of functions 2007-07-27 20:20:38 +00:00
510bc30971 Moving functions.py to UI (actual file move) 2007-07-27 20:17:57 +00:00
6f3a57f827 Moving functions.py to UI 2007-07-27 20:17:13 +00:00
371b18d855 connection queue fix 2007-07-27 20:12:50 +00:00
f80f499135 Tweak to [1169]. 2007-07-27 10:46:44 +00:00
7791d293a1 Tried to fix queue order issue. 2007-07-27 10:43:18 +00:00
ba675a89b3 I18N tweaks. 2007-07-27 09:20:27 +00:00
e46c75ecff fix translations in core.py 2007-07-27 08:31:46 +00:00
240d3de894 2007-07-27 08:17:30 +00:00
4d6ccb75d0 fix progress text translations 2007-07-27 07:17:06 +00:00
edb46be1b7 fix progress text translations 2007-07-27 07:15:26 +00:00
ed6b2ad3cf libtorrent sync 1417 2007-07-27 06:45:15 +00:00
139b5d82c7 updating mainwindow to current trunk 2007-07-27 06:35:45 +00:00
b0677d937b add toolbar items to translations 2007-07-26 22:08:53 +00:00
3aea3280b8 Changed max_number_uploads preference to 10 by default after some
tests/discussion.
2007-07-26 18:11:44 +00:00
87821dfc92 * Removed unused max_number_downloads preference.
* Changed max_number_uploads from -1 to 5 by default, with unlimited number of
upload slots users have download speed issues.
2007-07-26 17:59:57 +00:00
4f23af98da Try to properly handle utf-8 and latin-1 encoded client names in the peers tab. 2007-07-26 17:35:32 +00:00
7219c84c78 Properly focus preferences dialog of the RSS plugin. 2007-07-26 17:20:03 +00:00
1258eafd9e lang update 2007-07-26 06:29:59 +00:00
cb370be039 tag 0.5.3 release 2007-07-25 23:33:22 +00:00
7e861f6848 launchpad lang sync 2007-07-25 22:40:14 +00:00
10f6fd64ff Use screen depth resolution in NetworkGraph plugin. 2007-07-25 11:53:46 +00:00
38923ed22b remove scheduler plugin from translation 2007-07-25 07:49:25 +00:00
ac1bffb65f get_torrent_status() and get_torrent_info() now use pickled
dictionaries thus removing the need for the templates.
2007-07-25 05:07:43 +00:00
dfc0c962cf remove scheduler for stable 0.5.3 release 2007-07-25 02:14:07 +00:00
2eb455179b Updates 2007-07-25 00:43:37 +00:00
e4c37ffab8 Set correct tooltip for Max Global Upload Slots option. 2007-07-24 23:07:17 +00:00
150a1a8a46 Show files selection dialog even for single file torrents. 2007-07-24 22:50:03 +00:00
09c430f05a 2007-07-24 21:16:05 +00:00
2953c7606d version number 2007-07-24 21:13:11 +00:00
43af92d2ed remove files.py from translation and add new tab files 2007-07-24 21:02:19 +00:00
7b4009d6cf remove redundant upload slot 2007-07-24 20:59:47 +00:00
d812cb6729 blah 2007-07-24 20:55:20 +00:00
a5082fda82 float/int tweaks 2007-07-24 20:30:34 +00:00
98f38f3e71 fix max_number_uploads name in core 2007-07-24 20:24:01 +00:00
31128a2e25 fix max_number_uploads name 2007-07-24 20:21:23 +00:00
585f9b20b6 add max upload slots per torrent preference 2007-07-24 20:05:58 +00:00
bf1b157b88 Tweaks to the files tab code. 2007-07-24 20:00:35 +00:00
47e723fa89 Moved the files tab code to tab_files.py. 2007-07-24 19:57:37 +00:00
49b39e638d Tweaks to the details tab code. 2007-07-24 19:52:21 +00:00
9fac711ff7 Properly update the Details tab of paused torrents. 2007-07-24 19:43:28 +00:00
2e035967d0 remove extra border 2007-07-24 19:34:19 +00:00
a8795e8de9 remove redundant border in the torrent-info tab -Mattias Bengtsson 2007-07-24 19:20:18 +00:00
f539c8e9e8 libtorrent sync 1416 2007-07-24 19:11:59 +00:00
63c573aaa5 fix for opening urls if not installed to /usr 2007-07-24 17:21:38 +00:00
52635dfa59 tooltip on RSS button 2007-07-24 17:14:05 +00:00
ae2f7d60c9 update README to use Makefile to build and install deluge 2007-07-24 17:05:31 +00:00
f8e1df3515 scrollable text area in plugins dlg 2007-07-24 16:59:20 +00:00
117cbb7d1b 2007-07-24 16:34:49 +00:00
a4c44252f3 Tweak Makefile to allow user specified prefixes 2007-07-24 16:31:17 +00:00
d277cfb21a auto-detect python version for uninstall and change xpm to png 2007-07-24 11:07:53 +00:00
7c36587f23 Can now change queue order in the UI. 2007-07-24 07:19:38 +00:00
ef293f0742 Remove some debug prints from RSS plugin 2007-07-24 05:44:49 +00:00
603675494d __file__ change for foresightlinux people 2007-07-24 05:10:33 +00:00
02cd556f18 remove firstlast plugin from POTFILES, rearrange preferences, change version number for rc2, sync translation with launchpad 2007-07-24 02:12:04 +00:00
ca5297e20d Can now remove torrents.
Torrent view is now updating in timer.
2007-07-24 01:53:35 +00:00
ae649c7c3b Tweaks to first/last pieces priorities code. 2007-07-24 00:23:50 +00:00
f0149c4474 Added first and last pieces priorities to ChangeLog. 2007-07-24 00:08:03 +00:00
0bc90356a7 set default to false as to be nice to the protocol 2007-07-23 23:31:52 +00:00
442cac8aef Fixed #368 - Added ability to prioritize first and last pieces of files in
torrent.
2007-07-23 23:29:37 +00:00
f5bed290df remove flexrss since it's broken 2007-07-23 23:01:26 +00:00
ddfc5ef95d add utf8 encoding to files 2007-07-23 21:59:32 +00:00
507f8a4139 add spawning to deal with 2.5 being stupid with threading 2007-07-23 21:52:13 +00:00
1a05d470a2 fix version number assert error 2007-07-23 21:21:36 +00:00
5bcf5fbfac flexrss update by 'daddy' 2007-07-23 20:52:25 +00:00
bf46b310a5 set version number for 0.5.3 release 2007-07-23 20:48:03 +00:00
c4e688b450 Added TorrentManager class for handling torrents.
Added get_torrent_state() in the core, but this will be changed.
2007-07-23 20:43:42 +00:00
77e5b62fac 2007-07-23 18:56:37 +00:00
98f21aca86 Tweaks to [1102]. Get compact_mode for the Files tab with
manager.get_torrent_state(), for the Files selection dialog with preferences.
2007-07-23 14:24:38 +00:00
87e2b36074 remove translation from stock lables 2007-07-23 08:18:36 +00:00
48eb4504ec dont translate close and ok 2007-07-23 07:27:18 +00:00
8aedf2d201 add compact_mode check to changelog 2007-07-23 07:16:24 +00:00
cb0b5c3e1c get compact_mode per torrent_state, not prefs 2007-07-23 06:28:37 +00:00
626e7657d0 Sync to libtorrent revision 1415 2007-07-23 05:36:20 +00:00
903a8da7a5 add compact_mode to torrent_status in deluge_core 2007-07-23 05:36:01 +00:00
a0fb5a12fa libtorrent 1415 sync 2007-07-23 05:31:17 +00:00
5145dafeae Added torrent queueing in the core. 2007-07-23 04:42:26 +00:00
b220064462 disable lsd for private torrents 2007-07-23 01:17:33 +00:00
946a86c815 Fixes an issue with clear_max_ratio_torrents and changes pause/resume block in
Manager.apply_queue() to use enumerate. Patch is from eternalswd, thanks.
2007-07-22 22:48:59 +00:00
3ec15816ac Refactored the way we update any gtk.ListStore instance and made the Peers tab
use less CPU.
2007-07-22 19:17:50 +00:00
6c78b6595f Clean ups to torrents list and files tab focus code. 2007-07-22 17:35:39 +00:00
67976167aa Made focus in the Files tab to work the same way as in torrents list. 2007-07-22 17:17:30 +00:00
2c746a3ee9 fix right click on file tab not selecting the row 2007-07-22 07:44:43 +00:00
b57b07b783 RSS plugin by 'daddy' 2007-07-22 06:16:17 +00:00
369c21b6f7 fix gay resizing of alignment 2...only 5 should expand when resizing window 2007-07-22 06:07:42 +00:00
1bf9ccdfc2 Don't update paused torrents in UI. Based on the idea by eternalswd. 2007-07-22 05:05:52 +00:00
7ca17a3922 Changed the way adding torrents is done.
The core is now sent the torrent file data and saves it's own copy of 
the torrent file.
Start of receiving signals in the UI.
2007-07-22 03:01:38 +00:00
d3613a8ce6 Set the torrent view to resize. 2007-07-22 01:00:28 +00:00
95b03bdb48 i18n for status bar. never finished with i18n, it seems :) 2007-07-21 22:37:07 +00:00
d9c2ab0a32 Minor changes. 2007-07-21 21:41:24 +00:00
2fb2cdda10 Added Don't repeat yourself (DRY) principle to recommendations in HACKING. 2007-07-21 21:40:01 +00:00
12a685dff1 with ntfs-3g and reiser4 support, considering the new priority feature, set default to full alloc 2007-07-21 21:06:09 +00:00
a6f22ccc09 show alert and stop action when trying to change priorities with compact allocation 2007-07-21 21:04:10 +00:00
b6c99ce1c2 i18n touchup for blocklist plugin 2007-07-21 20:17:20 +00:00
4ec3a75538 Added availability and piece size to ChangeLog. 2007-07-21 19:33:54 +00:00
7738f8c290 Added availability column. 2007-07-21 19:28:30 +00:00
04b5a8936e move pieces and avail to left side so right side isnt so much higher 2007-07-21 19:05:44 +00:00
4f266454ec Some tweaks to availability and piece size display. 2007-07-21 18:59:01 +00:00
7a37c58dde Properly calculate ETA in common.estimate_eta(). 2007-07-21 18:53:31 +00:00
92acd7907e Fixed #331 - Added availability and piece size to Torrent Info pane. 2007-07-21 18:08:32 +00:00
3bba92929d same again 2007-07-21 07:42:10 +00:00
380fcf889a fix last 2007-07-21 07:32:11 +00:00
b73ce6fb46 general updates on plugin - lazka 2007-07-21 07:15:18 +00:00
be081ae103 Can now add torrents from the UI.
Various other updates.
2007-07-21 00:50:13 +00:00
619e418a16 Added one forced UI update when restoring from minimized state. 2007-07-20 23:27:03 +00:00
34e268defd Forced update of UI when main window is restored from tray or from minimized
state.
2007-07-20 23:15:36 +00:00
b3a912cdea Fixed some issues in [1067]. Thanks for testing, eternalswd. 2007-07-20 23:11:03 +00:00
3f13587ed9 Optimized cached_data() class and all depended functions and their usage.
Needs testing.
2007-07-20 22:41:26 +00:00
6876c4b67c add all plugin files to our template 2007-07-20 22:09:54 +00:00
48b0b106f5 make blocklist plugin translatable 2007-07-20 22:08:48 +00:00
8182b5ce9a made rss plugin translatable 2007-07-20 21:25:48 +00:00
8a39796daa make torrentnotification plugin translatable 2007-07-20 21:17:34 +00:00
88b356f22b make networkhealth plugin translatable 2007-07-20 21:14:11 +00:00
6df2dba77d make networkgraph plugin translatable 2007-07-20 21:12:11 +00:00
396e3501ff missed two strings in search plugin that needed translating 2007-07-20 21:09:37 +00:00
df5b85cd40 make scheduler plugin translatable 2007-07-20 21:07:55 +00:00
7ef61be07c add i18n to torrent search plugin 2007-07-20 21:01:51 +00:00
4b253ff9e8 fix non urgency oops 2007-07-20 20:17:00 +00:00
6049f72a93 fix typo 2007-07-20 20:06:24 +00:00
a21ae0e9c0 Minor tweaks to interface code. 2007-07-20 19:20:10 +00:00
3bac6bcfc8 Properly do i18n in common.fsize(). 2007-07-20 19:03:15 +00:00
a6e8db9bb0 Fixes one typo that was causing an error in handle_events and adds attribute self.update_interface to DelugeGTK class so that plugins can determine whether or not to update information for the interface - micah 2007-07-20 18:36:16 +00:00
938c1fed43 Some performance tweaks. Still the main issue is in Tree View to display data
and more tweaks to come.
2007-07-20 11:58:55 +00:00
76184c1be8 Added merging trackers of duplicate torrents to ChangeLog. 2007-07-20 08:17:28 +00:00
5cd99eace3 remove debug print 2007-07-20 07:53:29 +00:00
09334d8892 update gui tweaks - micah 2007-07-20 07:42:35 +00:00
e80da672f0 Clean up output 2007-07-20 05:43:12 +00:00
e7ddc59322 add merge_dialog to translation 2007-07-20 02:37:33 +00:00
e0311a9ff3 duplicate torrent trackers merge - micah 2007-07-20 02:32:33 +00:00
1f6d182f76 Added event for each tracker alert we are intrested in and some tracker
status messages i18n tweaks.
2007-07-19 21:14:30 +00:00
31407d0231 ghetto i18n support for tracker messages 2007-07-19 20:08:45 +00:00
7787a6cf0c Added more informative tracker status display. 2007-07-19 19:33:49 +00:00
f486ea3dc1 Removed Manager.set_pref() function as it's not used anywhere. 2007-07-19 16:27:34 +00:00
c0de2bd32d Minor clean ups in the core. 2007-07-19 15:48:02 +00:00
1c5db57f79 TorrentNotification plugin updates. Thanks, eternalswd. 2007-07-19 04:42:51 +00:00
4e8fe33658 Add torrent in interactive_add_torrent() only if we succefully passed all
checks.
2007-07-18 19:18:59 +00:00
8f96d9318a Some fine tune tweaks to [1004]. 2007-07-18 19:12:29 +00:00
d15442493c Some more recommendations in HACKING. 2007-07-18 18:56:50 +00:00
173e5743e7 update translations for 0.5.3rc1 2007-07-18 14:45:27 +00:00
858269986a add alex dedul to authors list 2007-07-18 14:42:19 +00:00
ff8c02b8ce Attempt to handle the issue with fast resume. Thanks, eternalswd. 2007-07-18 14:19:39 +00:00
d209d8d7ed Added files priorities to ChangeLog. 2007-07-18 14:07:04 +00:00
a7ce81d4d0 Some queue above completed feature touch ups. Thanks, eternalswd. 2007-07-18 13:06:22 +00:00
280f4dfb10 Added files priorities. 2007-07-18 12:47:24 +00:00
9310c7dce5 Minor clean up in the files manager. 2007-07-18 10:00:41 +00:00
76bf286a52 Open urls in browser from UI without threading for now until we find out why
it causes up to 1 minute delays.
2007-07-18 09:46:27 +00:00
6a22d12975 * Added dump_torrent_info_file() to core to just list files in torrent by its
filename.
* Replaced all file filters in torrents with priorities. Nothing to see in UI
yet. Based on patch from eternalswd.
2007-07-18 09:06:24 +00:00
89972e1e54 fix gay toolbar spacing 2007-07-18 04:52:02 +00:00
a3acf0aed9 Some more smart preferences tweaks. Thanks, eternalswd. 2007-07-18 03:41:26 +00:00
0cbb9b49cf Spacing tweaks. Previous commit [1024] is based on patch from eternalswd, thanks. 2007-07-18 03:11:36 +00:00
c42b54d6c4 Tweaks for smart preferences. 2007-07-18 03:08:06 +00:00
94bdc619fc fix for smart dlg 2007-07-17 22:35:16 +00:00
7a93e1a0fd preliminary smart pref dialog 2007-07-17 22:29:53 +00:00
ce535213b0 change rss image 2007-07-17 20:52:10 +00:00
e8eab5909d show plugins toolbar buttons 2007-07-17 20:48:14 +00:00
b914af3403 toolbar button for scheduler 2007-07-17 20:40:50 +00:00
f04a29bb03 better menu icon 2007-07-17 20:05:20 +00:00
c5e7c0d7bd Fixed typo in manager.set_priv(). 2007-07-17 17:16:44 +00:00
0016c39656 Removed unused code from interface.build_torrent_table(). 2007-07-17 15:22:50 +00:00
37825effa1 minor bugfixes - mark adamson 2007-07-17 12:23:32 +00:00
6f7ceb4faa keyboard shortcut 2007-07-17 11:32:38 +00:00
0297409f2f additional move_storage conditional -micah 2007-07-17 09:15:43 +00:00
d04124b998 fix disk_io move_storage 2007-07-17 09:00:04 +00:00
2ef85f46db revert 1010 2007-07-17 08:31:34 +00:00
7eef1a418e fix move_storage behavior 2007-07-17 08:15:55 +00:00
b5673d563e fix uploads limit 2007-07-17 07:02:56 +00:00
93921971ed new max ratio features -micah 2007-07-17 06:00:33 +00:00
6793741972 fix to append when there are no torrents - micah 2007-07-17 05:52:09 +00:00
d9b1fce480 option to load new torrents above completed ones 2007-07-17 05:24:43 +00:00
d94c7e6986 last commit fix 2007-07-17 05:03:31 +00:00
776004320e clear on max ratio - micah 2007-07-17 04:51:11 +00:00
e9a42b6fcd lt 1405 sync 2007-07-17 02:24:34 +00:00
a055299141 remove autotools stuff that obviously arent happening in 0.5.x trunk 2007-07-17 00:57:32 +00:00
ad869e1460 remove autotools stuff that obviously arent happening in 0.5.x trunk 2007-07-17 00:57:29 +00:00
571fe44987 remove autotools stuff that obviously arent happening in 0.5.x trunk 2007-07-17 00:56:26 +00:00
da4081b8b6 Set '.torrent' extension by default when creating torrent. 2007-07-16 23:17:53 +00:00
9fcf4eb4c0 Hm, ULONG doesn't work as expected - reverted back to UINT64. 2007-07-16 23:13:54 +00:00
27cf24a679 Changed all gobject.TYPE_UINT64 to gobject.TYPE_ULONG - it's more
future-compatible this way.
2007-07-16 22:46:32 +00:00
26b74f442a readme touchup 2007-07-16 21:00:42 +00:00
95a4b770cd Some love for #209 - Added Macedonian translation of Deluge. 2007-07-16 20:13:15 +00:00
89cedf7565 Changed wording in ChangeLog. 2007-07-16 19:07:27 +00:00
df898e22b8 Fixed #268 - Tweaks for torrents loading from command line, from url. 2007-07-16 16:07:06 +00:00
30b69cd85a open_url_in_browser() tweaks. 2007-07-16 15:26:37 +00:00
681e43ef9d Properly focus preferences dialog of TorrentNotification plugin. 2007-07-16 14:55:53 +00:00
3e528b0966 Properly center files selection dialog. 2007-07-16 14:15:50 +00:00
6d42f2234e Plugins and preferences dialogs code clean up. 2007-07-16 13:59:22 +00:00
468667d068 Cleaned up files selection dialog code. 2007-07-16 13:31:30 +00:00
ea239ee6ef Show files selection dialog only if torrent contains 2 and more files. 2007-07-16 12:12:51 +00:00
2e489bb00b Tweaks to TorrentNotification plugin. 2007-07-16 12:05:24 +00:00
3115498790 Tweaks to plugins events. 2007-07-16 11:51:12 +00:00
ac81d240bd Massive clean up of loading torrents. 2007-07-16 03:23:36 +00:00
c0cb16425b add tooltip to help new users with private flag 2007-07-16 01:49:11 +00:00
1d09e5009f remove unneeded deluge.in 2007-07-16 01:46:09 +00:00
877aa31fc3 priv flag 2007-07-16 00:21:17 +00:00
afa8f88292 connect set_priv in file selection dialog 2007-07-16 00:15:04 +00:00
cec8cef864 changelog update with ticket numbers -micah 2007-07-15 23:52:57 +00:00
e9ded6f25f set private flag when adding torrents with the file selection thingy - not yet connected 2007-07-15 23:48:12 +00:00
83bf3d76db back to total_wanted - micah catch 2007-07-15 22:27:26 +00:00
c1271ffbc1 add files.py to be translated 2007-07-15 21:23:16 +00:00
31c028f54e changelog updates 2007-07-15 21:19:09 +00:00
c93a5c57b7 Added feature select files when adding torrent. Patch is from eternalswd,
thanks :).
2007-07-15 19:24:37 +00:00
b06922dcd4 libtorrent sync 1401 2007-07-15 19:06:12 +00:00
e95c399ac5 rss plugin 2007-07-15 19:00:52 +00:00
db32e74895 RSS plugin by Mark Adamson with some gui tweaks from me 2007-07-15 18:49:45 +00:00
ede8627b77 Added core.prioritize_files(). 2007-07-15 16:53:54 +00:00
76c82d8946 Set default values of preferences "default_finished_path" and
"default_download_path" to user's $HOME/.
2007-07-15 12:43:21 +00:00
6e1a1b88fa fix last piece oops 2007-07-15 09:22:39 +00:00
e84d6cf588 adding First/Last piece priority plugin 2007-07-15 09:20:45 +00:00
23f744cada fix small torrent issue 2007-07-15 08:06:06 +00:00
ae0d21f115 set other as an option and not requirement for radio menus and changed label in glade file to be set by the plugin itself - fixes other in desired ratio plugin from saying 'Speed' 2007-07-15 07:04:38 +00:00
5a103a4e35 Fixed ETA display issue when it doesn't fit to python's int and become long. 2007-07-15 06:51:03 +00:00
9d68f5f494 Minor wording change in ChangeLog. 2007-07-15 04:29:25 +00:00
82b54e809f backlog for posterity 2007-07-15 04:15:34 +00:00
8d69ed21de Minor changes. 2007-07-15 04:13:20 +00:00
5f3e065073 Added ChangeLog. 2007-07-15 04:06:31 +00:00
4dab371209 remove empty column - no visible change 2007-07-15 02:56:18 +00:00
ff0ff0364a Show text from clipboard in Add URL dialog only if it looks like an URL. 2007-07-15 02:36:09 +00:00
baf18969f6 translation touchup 2007-07-15 02:30:03 +00:00
99a6b4bcc7 translation touchup 2007-07-15 02:18:30 +00:00
44880135d9 translation fixes 2007-07-15 02:03:27 +00:00
0ba0fb9407 PEP8 imports in interface.py. 2007-07-15 01:42:53 +00:00
3fa2ebd11c Minor changes. 2007-07-15 01:19:40 +00:00
e9c618f506 Minor changes. 2007-07-15 01:17:59 +00:00
0999349be5 Fixed #437 - Startup no longer fails with old persistent.state files. Thanks,
codergeek42.
2007-07-15 00:55:53 +00:00
f31b079a42 didnt mean to uncomment print events, so i'm commenting it again 2007-07-14 22:29:53 +00:00
78d8d116cc more cleaning up - removing unneeded white spaces 2007-07-14 22:22:37 +00:00
70b6e40a55 mostly code layout cleanup 2007-07-14 21:52:22 +00:00
375d73431c fix #420 - total size to total wanted along with eta update - micah 2007-07-14 20:58:46 +00:00
4964f11943 Fixed Clear Completed feature. 2007-07-14 10:58:29 +00:00
01edae6a7b Fixed Plugins dialog to properly set_sensitive() for Preferences button. 2007-07-14 08:58:30 +00:00
14b0ec2e96 Fixed up EVENT_FINISHED event in core.handle_events(self). 2007-07-14 08:24:54 +00:00
76c8792ce4 Cleaned up core.handle_events(self). 2007-07-14 08:04:52 +00:00
8ba55e4dfa Replaced TrayBlink plugin with TorrentNotification plugin. Patch from
eternalswd.
2007-07-14 01:38:31 +00:00
9280781dd3 Updates 2007-07-14 01:33:16 +00:00
b123ffbc34 minor touchup 2007-07-13 20:57:25 +00:00
c0d86f9a66 fix the nightmare that is move_storage with gui alert 2007-07-13 20:53:38 +00:00
ee7137a196 expose storage move failure - micah 2007-07-13 20:18:24 +00:00
9e80e91ae9 expose storage_moved_alert 2007-07-13 19:50:17 +00:00
8dad5d9fd8 Bringed back self.notebook in DelugeGTK(was removed in [931]) as it is used by
plugins.
NetworkGraph plugin is working again.
2007-07-13 17:05:44 +00:00
105703d630 removing old, useless plugins 2007-07-13 16:50:25 +00:00
02b189f5a5 rename branch to deluge-0.6 2007-07-13 16:47:22 +00:00
62bb4cd961 Tried to fix move completed feature. 2007-07-13 08:25:28 +00:00
28133d0e07 Show plugins list sorted by name by default in Plugins dialog. 2007-07-13 07:53:16 +00:00
a60470b58b Fixed forced UI update when user changes tabs. 2007-07-13 07:36:36 +00:00
e081888a9e trayblink plugin - micah 2007-07-13 06:09:18 +00:00
ad8e685743 breaks off browser calls so the client doesnt hang 2007-07-13 05:41:59 +00:00
27d5db228a Pass events to plugins in a more resource aware way. Based on andar's
proposition.
2007-07-13 05:14:29 +00:00
a0ca8a031e Minor fix. 2007-07-13 04:33:31 +00:00
cbbce338f9 Renamed plugin's event handling method to 'handle_events'. 2007-07-13 04:31:54 +00:00
1eed8f34d9 Spacing fixed. 2007-07-13 04:26:38 +00:00
6705e87160 open up events to plugins - elpargo 2007-07-13 03:40:31 +00:00
90ac623215 Fixed #421, #430 - check/uncheck files on the Files tab should be working
correct now.
2007-07-13 02:18:52 +00:00
702967a2c6 Changed from 2 spaces ident to 4 2007-07-13 01:34:18 +00:00
63d19d05bc mostly pep8 fixes 2007-07-13 01:13:13 +00:00
a7c93458c8 Updates! 2007-07-13 00:48:21 +00:00
77b5ce765b version fix 2007-07-13 00:47:27 +00:00
aaa856b931 forgot a file, oops 2007-07-13 00:15:19 +00:00
ce59598635 set program version so we dont get people using svn and saying it's 0.5.2 or 0.5.3 2007-07-13 00:13:40 +00:00
61ca73dde1 Updates 2007-07-12 23:16:39 +00:00
0b621fd581 Updates 2007-07-12 23:15:38 +00:00
2fe15d8198 More tweaks to the Peers and Files tabs. 2007-07-12 23:03:07 +00:00
e08ad9ddaf Updates 2007-07-12 22:43:23 +00:00
49e5e9b093 Updates 2007-07-12 22:34:33 +00:00
358e9384bd gui tweak and version number 2007-07-12 21:10:46 +00:00
6f0d751067 Reduce CPU usage on Files tab even more. 2007-07-12 20:35:49 +00:00
bc39371af6 New directory structure 2007-07-12 20:02:34 +00:00
ef8e1185ed Indent fixes. 2007-07-12 19:50:34 +00:00
4c03881aba raise gui warning on move_storage failure 2007-07-12 19:38:47 +00:00
e09d489077 Remove some obscure var and associated parts of code from UI. 2007-07-12 19:01:46 +00:00
86db5dbaa7 Refactor Statusbar and Tray Tips update. 2007-07-12 18:38:54 +00:00
9f8385eda5 Clean up loading of plugins. 2007-07-12 17:56:37 +00:00
dedef184c4 Add comment about usage of self.statusbar_temp_msg in DelugeGTK.update() and
minor fix.
2007-07-12 17:27:34 +00:00
680c30e0de Minor update UI code clean up. 2007-07-12 16:02:42 +00:00
b5aff38295 Massive clean up in UI update code. Update torrents info UI instantly when we
click on them in torrents list.
2007-07-12 10:21:03 +00:00
d07e8cddb6 More Files tab clean up. 2007-07-12 05:41:27 +00:00
a4000c46e2 Test commit, fixed spacing. 2007-07-12 02:30:55 +00:00
1cdea54047 fix cpu usage in peer and file tab - plisk 2007-07-11 21:17:39 +00:00
7938cb7fba only change storage dir location if move is successful 2007-07-11 20:59:33 +00:00
cd70b85850 fixes seeding issue after restarting deluge when move_storage is enabled - micah 2007-07-11 20:48:49 +00:00
3f9193592f do not code at 4:30am 2007-07-11 09:29:21 +00:00
ecb552f939 touchup for file progress 2007-07-11 09:26:03 +00:00
2d9948e083 fix peers tab oops 2007-07-11 09:16:33 +00:00
db11bd01eb fix missing pref 2007-07-11 09:08:21 +00:00
73bde09e49 fix file progress hang...yes\! 2007-07-11 09:02:13 +00:00
ee856c7521 fix last commit 2007-07-11 08:13:06 +00:00
1e1c5ed780 move finished downloads to - eternalswd 2007-07-11 08:04:45 +00:00
c5e2b67800 clean up torrent list creation - plisk 2007-07-11 07:26:07 +00:00
37a502ad40 more file progress tweaks but not enough 2007-07-11 07:08:06 +00:00
8faf6d624a cleanup file tab progress code 2007-07-11 06:55:27 +00:00
623c1c8dfc Fix sorting by size on the Files tab - plisk 2007-07-11 05:30:49 +00:00
8ecd826e8a coding style guidelines 2007-07-11 05:00:10 +00:00
2efe45896b fix buildvalue segfault 2007-07-11 04:34:15 +00:00
2482aba77b remove offset in file tab - plisk 2007-07-11 04:29:07 +00:00
d27137b4e2 fixing imports and indents to comply with python style guide - first attempt, this might break things 2007-07-11 04:22:44 +00:00
6fd53ec356 fix typo 2007-07-11 02:31:44 +00:00
432adbab87 make up/dl speed usage consistent - plisk 2007-07-11 02:25:19 +00:00
9dfbe53ed6 add 'help translate this app' to help menu 2007-07-11 00:43:16 +00:00
cbf1c5c9ab remove unused torrent_popup 2007-07-10 22:40:52 +00:00
33d3ecc5cd 1395 lt sync 2007-07-10 20:09:44 +00:00
bdf37286cf #422 -plisk 2007-07-10 19:56:25 +00:00
6aabd140f5 ntfs-3g - plisk 2007-07-10 19:52:02 +00:00
3c3703bdf1 reiser4 support in libtorrent - plisk 2007-07-09 23:20:36 +00:00
3e04e54937 1392 lt snc 2007-07-09 18:56:38 +00:00
788b882f0f ydl 5.0 support 2007-07-09 18:47:32 +00:00
db50da4fc0 optimized peer_connection by postponing diffie hellman key creation and generation of handhake until the connection has succeeded 2007-07-09 06:17:52 +00:00
3e53b24db7 cleanup - eternalswd/plisk 2007-07-09 05:38:05 +00:00
11eecbc293 remember dir of last loaded torrent - eternalswd 2007-07-09 04:40:34 +00:00
51eb0040e3 get rid of additions and rely on extra compile flag 2007-07-09 03:26:11 +00:00
65c4d72fd0 More updates 2007-07-09 02:51:40 +00:00
770cfa0a07 Update to my branch.. 2007-07-09 02:50:20 +00:00
8ee99ee9a1 Allow 'deluge_core.cpp' to be compiled without NDEBUG defined. Patch
from plisk.
2007-07-09 02:26:59 +00:00
c87d165a1f lt sync 1388 2007-07-08 21:06:45 +00:00
6f7ac72599 start hidden in tray fix - oksana 2007-07-08 20:55:31 +00:00
ac483482b6 tray toggle preferences - plisk 2007-07-08 20:54:31 +00:00
210329f85b fix typo 2007-07-08 01:38:10 +00:00
3a699585d5 fix exception for preferences 2007-07-08 01:37:39 +00:00
d122e57f1a stfu 2007-07-08 01:11:54 +00:00
6bfd1d504d more info to help newbies 2007-07-08 00:50:47 +00:00
59656397d0 Changed from Pyro to DBUS.. Still doesn't do anything. 2007-07-08 00:28:17 +00:00
7d3c05f3fa lt sync 1384 2007-07-07 20:54:26 +00:00
2eed5c615c openssl cleanup 2007-07-07 00:13:37 +00:00
9d8e27754c change default from float to int to prevent warning 2007-07-07 00:11:56 +00:00
9be38a0ad0 peer_connections stats fix 2007-07-06 20:52:47 +00:00
8f520c717b made the piece picker handle multi-request blocks better. fixes problem that might occur at the end of a torrent where the piece picker could take over blocks back and forth 2007-07-06 18:11:01 +00:00
334d7ec341 shorten toolbar labels 2007-07-06 18:02:37 +00:00
38deb031b7 blag 60001 support 2007-07-06 11:31:45 +00:00
642e62b793 lt sync 1378 2007-07-06 10:07:36 +00:00
238289049d change some default prefs 2007-07-06 03:46:43 +00:00
57bf0f35f9 fix prefix and add 2.4 2007-07-06 03:28:31 +00:00
606bd6bcf1 add andar 2007-07-06 02:42:15 +00:00
f9bfd9c6cb made piece picker less anal about speed categories, to improve performance 2007-07-06 01:44:16 +00:00
83c9b2f275 0.5.2 release 2007-07-06 01:10:37 +00:00
180c77b3f7 remove unnecessary update 2007-07-06 01:09:08 +00:00
0f7708bcc6 change dir 2007-07-06 00:59:36 +00:00
b3c32803de initial import and conversion to new plugin format 2007-07-06 00:57:33 +00:00
f18ee4e1e8 2007-07-06 00:06:28 +00:00
b77fcdf6ef shortened things up 2007-07-06 00:03:12 +00:00
fc8791deba little touchup and uninstall 2007-07-05 23:50:05 +00:00
2c958c6cf5 fix typo 2007-07-05 21:56:35 +00:00
5cc4865e8a default compact allocation 2007-07-05 20:09:27 +00:00
29c4b6aee1 Just some updates.. Probably going to change to DBUS instead of Pyro in
next revision.
2007-07-05 19:35:59 +00:00
da539f5353 Add '-NDEBUG' to EXTRA_COMPILE_ARGS for some systems that don't seem to
add it properly to CFLAGS.  Seems to effect python-2.5 systems.
2007-07-04 21:46:41 +00:00
e618d37611 Remove bogus assert() 2007-07-04 21:31:12 +00:00
daaf215f64 i18n updates 2007-07-04 19:18:21 +00:00
4ea66b684f activates or deactivates the queue-up/down arrows depending on which torrents are selected. It also makes it possible to move several torrents at the same time - Mattias Bengtsson 2007-07-04 08:48:20 +00:00
cb4630ded9 Initial import. 2007-07-04 08:24:30 +00:00
bdf9182bb5 DesiredRatio plugin will now reset all desired ratios in the core upon
unload().
2007-07-03 21:17:07 +00:00
e2eab3f2c0 show tooltips on labels as well 2007-07-03 02:15:15 +00:00
43c19d0d0b fix tooltip for max active torrents 2007-07-03 02:03:13 +00:00
bee4a3c552 lets us not need to alter hasher.hpp to compile 2007-07-03 01:14:18 +00:00
0a78631a6c remove bandwidth_manager.cpp 2007-07-03 00:13:49 +00:00
31f84d1c24 libtrunk sync 1370 2007-07-03 00:12:14 +00:00
b6b9fb4276 libtrunk sync 1369 2007-07-02 20:34:46 +00:00
20755b32c5 2007-07-01 03:30:46 +00:00
3c4eb6201e fix bug of dht starting before a listening port is set 2007-07-01 03:18:54 +00:00
728107f3a8 libtorrent svn 'pi->pe_support == false' assertion 2007-06-30 08:11:47 +00:00
aec942d243 2007-06-30 07:08:20 +00:00
1a5500703b french/lang updates - rpmfarm 2007-06-29 07:30:49 +00:00
2f1cfd8546 Fix download/upload tray menu speed list 2007-06-29 05:09:37 +00:00
159aef9680 fix typo 2007-06-29 02:03:48 +00:00
afd563d7b7 multiple file add 2007-06-29 02:00:15 +00:00
f3d83f687d win remove quote 2007-06-28 23:08:20 +00:00
72d6a0ebd5 win touchups 2007-06-28 23:00:36 +00:00
cd1de4388c Fix double values in desired ratio list 2007-06-28 18:45:34 +00:00
7c81ee68f1 fix typo 2007-06-28 14:44:58 +00:00
3edeea1e25 win deps again 2007-06-28 14:42:49 +00:00
b35b08d9f7 set more windows-specific paths 2007-06-28 14:14:09 +00:00
7b92e05326 set boost path for windows 2007-06-28 13:22:51 +00:00
6f03bef238 more windows stupidity 2007-06-28 13:20:17 +00:00
c681ad5299 windows is retarded. needs this '_' to compile 2007-06-28 12:59:40 +00:00
9ff9a38049 Force an update() when changing notebook tabs 2007-06-28 08:22:41 +00:00
9e5e6ddfb9 Fix remove torrent lock-up issue. 2007-06-28 08:16:12 +00:00
fa2814b498 Added a couple more forced update()'s to improve UI responsiveness 2007-06-28 07:40:15 +00:00
aa6b522036 blocklist doesn't config every load 2007-06-28 00:51:14 +00:00
b0e047368c just a template update 2007-06-27 23:54:40 +00:00
0cd1ebb009 Fixes for translations. #383, #384 rpmfarm@free.fr
Did not include the fr.po patch because I believe it is out-of-date.
2007-06-27 22:59:45 +00:00
6658d64db0 add vertical scrollbar 2007-06-27 22:33:16 +00:00
297b8ce65a do search on enter 2007-06-27 22:31:09 +00:00
b375ede4d0 fix remove torrent bug 2007-06-27 21:20:37 +00:00
c566ff7231 synch po files with launchpad 2007-06-27 20:32:37 +00:00
f2a38204d7 Call update() prior to setting the timer 2007-06-27 20:02:17 +00:00
9ac9f13044 Remove old desired ratio code 2007-06-27 19:55:35 +00:00
d64a5c0d03 Initial import of DesiredRatio plugin.
Removed desired ratio options from tray menu, but code from old method 
still exists in interface.py.
2007-06-27 19:51:31 +00:00
b0e1210c1b Some updates to build_menu_radio_list for use with the DesiredRatio
plugin.
2007-06-27 19:37:05 +00:00
7aff2c1ae9 remove max_number_torrents 2007-06-27 19:35:12 +00:00
8d0c348598 Fixed so preferences is saving to 'max_active_torrents' and not the
invalid 'max_number_torrents'
2007-06-27 19:31:00 +00:00
aec3bd392b sync remove torrent loop fix - aaron 2007-06-27 18:15:37 +00:00
a2c63a1f49 prepping for rc1 2007-06-27 15:42:10 +00:00
b036e5abe1 status col expand again 2007-06-27 15:40:11 +00:00
30fced111e Change tray menu item order 2007-06-27 05:54:44 +00:00
30700a67c7 Add mnemonic to New Torrent menu item. 2007-06-27 05:45:18 +00:00
999a4d31c7 Add tooltip to New Torrent tool button 2007-06-26 22:56:43 +00:00
2a646d91c0 fix exception in handle_events 2007-06-26 20:12:47 +00:00
433e6aa28d fix queue_bottom in handle_event 2007-06-26 19:56:23 +00:00
3779a025ff Fix write resume data on seed
Fix apply_queue in update
2007-06-26 18:56:58 +00:00
a2a18d35d8 remove buggy fast resume on seed 2007-06-26 18:54:25 +00:00
d5a2d53b96 you're right, my bad 2007-06-26 18:47:09 +00:00
b1c923c1f3 handle_events already calls apply_queue, so there's no need to do it right before 2007-06-26 18:43:12 +00:00
f4d542b568 Have update() call handle_events() 2007-06-26 18:39:54 +00:00
92e985cec0 Updated status icons 2007-06-26 18:16:02 +00:00
eeafe64e0f set icon size to 1 in torrent right-click menu 2007-06-26 08:59:51 +00:00
f6e8f6d13e save fast resume once torrent finshes so as to not recheck seed if client crashes 2007-06-26 08:53:48 +00:00
63cc644195 Make torrent view columns reorderable. 2007-06-26 07:44:20 +00:00
ea315a3720 Stop the status column from expanding. 2007-06-26 07:42:37 +00:00
44d649036b Changed the min_width of the torrent view columns so they can be shrunk
smaller than previously able to.
2007-06-26 07:30:53 +00:00
1383e6c3ca Change status icon sizes from 22 pixels to 16 pixels. 2007-06-26 07:16:53 +00:00
7372e8b26b Change icon sizes in tray menu 2007-06-26 07:00:03 +00:00
4fb4fb32f7 Changed the show/hide window option in the tray menu to a CheckMenuItem
and have it toggle accordingly.
2007-06-26 06:15:00 +00:00
c5fc69fa2e update version info and plugin details 2007-06-26 05:58:52 +00:00
1f4665c189 add multiple file selection for 'add torrent' 2007-06-26 05:51:45 +00:00
8649b4b973 remembers configuration in the UI and fixes a cancellation bug - tarka 2007-06-26 04:31:55 +00:00
3091a6943f fix my typo 2007-06-26 04:29:19 +00:00
5d1f64b537 'python pygtk' was redundant 2007-06-26 04:23:06 +00:00
263ac80e6a added tooltips for newbies 2007-06-26 04:18:36 +00:00
5f657fdd7a we want efficient torrents, so added capability for smaller piece sizes 2007-06-26 03:56:47 +00:00
1a91ff7c5c Some minor UI updates for TorrentCreator 2007-06-26 03:24:00 +00:00
85d1078dd2 also add python-dbus to dependency list 2007-06-26 02:43:52 +00:00
547d378ceb remove unneeded includes and cleanup 2007-06-26 02:07:17 +00:00
11ae69c83d set severity level to info 2007-06-26 01:19:31 +00:00
304b4156ab TorrentCreator is now interfaced with the core and is able to create
torrents.
2007-06-26 01:17:15 +00:00
efe63cb722 fix last commit 2007-06-25 23:37:44 +00:00
936a0fceab add a small count of blocks in the status bar - tarka 2007-06-25 23:31:26 +00:00
826057649c Some updates to the torrentcreator interface. 2007-06-25 23:11:16 +00:00
0407c8119a remove wacky progress slider - increases speed by literally hundreds of times 2007-06-25 21:35:39 +00:00
7a760d16a5 add runtime dependencies for newbies 2007-06-25 16:58:25 +00:00
3490a99f7b add more keyboard links 2007-06-25 16:37:25 +00:00
b99341ed7a Remove 'Create Torrent' option from File menu. 2007-06-25 10:00:23 +00:00
b5ca613cd5 New TorrentCreator plugin. It is not interfaced to core yet and as such
is non-functional.
2007-06-25 09:58:32 +00:00
a74d64080f blocklist update -tarka 2007-06-25 07:53:58 +00:00
b22a0111ca Fix up edit trackers 2007-06-25 03:56:51 +00:00
367f5823d2 remove blank lines from edit tracker list 2007-06-25 03:17:07 +00:00
6601a0a7e3 edit tracker done 2007-06-25 02:25:53 +00:00
66e61a62bc edit trackers fixing 2007-06-25 02:20:23 +00:00
b1d14357a1 trying to cleanup replace tracker code 2007-06-25 00:52:19 +00:00
2aaf9277c8 fix add url bug 2007-06-24 22:33:32 +00:00
2c4978b9ef active ok button in edit trackers list 2007-06-24 22:24:21 +00:00
078af4148f fix blocklist indents 2007-06-24 18:55:47 +00:00
c97fafa2b3 fix indented block error 2007-06-24 17:11:41 +00:00
08cd36de7f test updates for blocklist - tarka 2007-06-24 10:32:51 +00:00
61f000fae9 add underline shortcuts 2007-06-24 06:01:59 +00:00
1ec8c9bdc5 mule list support for blocklist - tarka 2007-06-24 05:45:01 +00:00
7484ff5bb0 remove unused old code 2007-06-24 05:27:50 +00:00
27ab96fa94 remove unneeded edit tracker debug line 2007-06-24 05:26:34 +00:00
be5a7f5767 edit tracker glade touchup 2007-06-24 05:24:48 +00:00
50d7282fcb beginnings of gui interface for editing trackers 2007-06-24 05:14:00 +00:00
bc76d648ba remove unused code 2007-06-23 19:34:49 +00:00
51d0f95d0d go back to latin-1...weird errors with utf-8 2007-06-22 23:59:35 +00:00
38d8b20072 switch to using utf-8 instead of latin-1 2007-06-22 23:48:27 +00:00
27c55eb8c7 make ratio in torrent view be 4 digits instead of 3, to match summary details pane 2007-06-22 22:46:19 +00:00
7c65bce6d8 fix negative ratio bug. maybe :) 2007-06-22 22:31:53 +00:00
2bb0ec122e fix default value of max num of torrents 2007-06-22 18:24:41 +00:00
3374b5f50c Do not start DHT Proxy if DHT is not started 2007-06-22 09:20:44 +00:00
93a0945915 Prevent set_DHT() from starting DHT if it's already started. 2007-06-22 09:10:32 +00:00
47aa99eb6d Change the code for the tray download/upload speed limiting to be more
generalized thus removing duplicated code.
2007-06-22 08:15:52 +00:00
94dc14b355 Only call apply_prefs() if OK is pressed in the Preferences dialog. 2007-06-22 07:21:46 +00:00
ee9e5a09ea . 2007-06-22 03:21:44 +00:00
bad3ea64d2 remove web seed proxy 2007-06-22 03:21:19 +00:00
c98ca19dbe tooltip touchups 2007-06-22 01:09:38 +00:00
b75a3c3dda cast max torrents to float 2007-06-21 23:36:36 +00:00
4682fe3079 add max_number_torrents default 2007-06-21 23:32:03 +00:00
554baccc4a Fix segfault in torrent_proxy_settings()
The torrent name column is resizable again
2007-06-21 23:27:42 +00:00
34fe76780e Add missing semi-colons 2007-06-21 23:13:37 +00:00
67c09ebf56 deluge_core update for proxy 2007-06-21 23:12:36 +00:00
0b34410f37 same 2007-06-21 23:06:20 +00:00
fcbc3b48b4 new proxy redone 2007-06-21 23:06:06 +00:00
65f1f32771 Changed Preferences.get() to not set a type or default value.
If a default value is needed, it should be set in the DEFAULT_PREFS 
dictionary in pref.py.
2007-06-21 22:38:48 +00:00
7024caa6f3 Fix deprecation warning 2007-06-21 22:19:18 +00:00
80335eb0ae lt updates 2007-06-21 21:42:32 +00:00
92263af970 upped default number of max connections to match that of utorrent 2007-06-21 19:16:05 +00:00
34809aa74d fix for last commit. oops 2007-06-21 19:10:08 +00:00
3603445992 unlimited max connections show as unlimited in status bar, not -1 2007-06-21 18:56:15 +00:00
3ef9e9a3c6 bringing infinity back (timberlake style) 2007-06-21 18:52:18 +00:00
c642991d9f grey out icons if no torrent is selected ticket #360 - benmat 2007-06-21 18:27:20 +00:00
41c4669149 fix download rate setting 2007-06-21 16:10:48 +00:00
85d3c16c6d reactive remove torrent in toolbar. oops 2007-06-21 08:32:05 +00:00
77fca5a1c0 automatically paste clipboard contents on 'add url' 2007-06-21 07:49:15 +00:00
b5fa8939e4 bitfield may be sent after interested 2007-06-21 06:24:02 +00:00
862d59f8cc remove 'remove torrent' from file menu 2007-06-21 01:01:53 +00:00
820d427a61 Small fix for list order in tray upload speed limit submenu 2007-06-21 00:50:43 +00:00
652639540f Add 'max_connections' to status bar and tray tooltip 2007-06-21 00:48:35 +00:00
a132c6a038 Add 'max_upload_rate' and 'max_download_rate' to tray tooltip.
Will now display 'Unlimited' if the max is -1
2007-06-21 00:45:34 +00:00
8454c4b416 Add 'max_download_rate' and 'max_upload_rate' to the status bar. 2007-06-21 00:41:39 +00:00
28b3ad4a80 fix missing comma 2007-06-21 00:29:22 +00:00
a17466f6b9 Changed status icons size.
Changed the way the download/upload speed limit is done in the system 
tray.
2007-06-20 23:34:53 +00:00
3e2332ecd3 Fix 'auto_end_seeding' preference to actually be used by apply_queue()
Fixed some text in the Download/Upload speed system tray menu
2007-06-20 19:42:37 +00:00
b5ac3b880b didnt mean to update setup.py...reverting that part. 2007-06-20 19:20:46 +00:00
8a3c47eea2 add "remove torrent" to right-click menu 2007-06-20 19:19:59 +00:00
846058a8d0 resync with lt trunk 2007-06-20 19:11:44 +00:00
620aab25f9 glade file for tray menu - idefixx 2007-06-20 19:08:49 +00:00
0023e44ed1 guess i was wrong 2007-06-20 07:56:26 +00:00
a3236a275e fix stop seeding ratio 2007-06-20 07:41:23 +00:00
82660a29cc change eta from infinity to done for seeding files 2007-06-20 07:35:44 +00:00
e166b066dd upload/download limit setting in tray - idefix 2007-06-20 02:07:38 +00:00
05bf525ff9 Fix 'queue_seeds_to_bottom' to actually work. 2007-06-19 23:44:21 +00:00
c557dcd293 Fix 'max_active_torrents' spinner to allow for -1 value. 2007-06-19 23:40:00 +00:00
221304325a Fixes for auto end seed ratio.
Torrents will now pause and queue to bottom when ratio is hit.
2007-06-19 23:37:23 +00:00
7be4e7f9b7 Use 'max_active_torrents' instead of 'max_number_torrents'
Adjust default for 'max_connections' to 200
2007-06-19 21:21:52 +00:00
7635b91bb4 remove line 2007-06-19 21:11:10 +00:00
973f80e6f9 Fixed GtkWarning and made the details pane scrollable 2007-06-19 18:44:51 +00:00
06758b2b86 fix auto seed ratio stuff 2007-06-19 08:51:21 +00:00
e6a1d2ab9f -1 clarification 2007-06-19 08:39:27 +00:00
72752fbbfe Better looking colours 2007-06-19 07:50:25 +00:00
5843ddf4d3 Resume fix 2007-06-19 06:16:50 +00:00
f59155bd48 Add status icons to the torrent view 2007-06-19 05:41:03 +00:00
449b9bd972 Some changes to the torrent view column setup.. Using an enumerated type
(sort of) instead of just numbers.
2007-06-19 05:16:19 +00:00
e2e1828454 fix enable system tray pref 2007-06-19 03:19:02 +00:00
b885d2deeb Do not check for available free space if resuming a torrent that is
seeding
2007-06-19 03:17:23 +00:00
3118c2912f More pause/resume fix ups 2007-06-19 03:13:29 +00:00
9ec33795a9 revert 664...i'll make the menu a glade file soon 2007-06-19 00:59:09 +00:00
af928cf83f switch hide show in systray 2007-06-19 00:20:26 +00:00
29bbac19db fix type and log pad size when using encryption 2007-06-18 20:25:54 +00:00
829294cc80 oops, one more file 2007-06-17 21:51:03 +00:00
708f85296f fix max connections 2007-06-17 21:49:46 +00:00
1a9a714fe7 tidy up 2007-06-17 17:12:22 +00:00
6ea7ddd7a0 fixed mutex issue in disk io thread 2007-06-17 14:21:44 +00:00
fa0a4813a6 for blocklist, fixes cancelling downloads and not being able to update broken configurations - tarka/steve 2007-06-17 14:02:17 +00:00
1d6984b0ba adds basic text blocklist support - tarka/steve 2007-06-17 04:59:24 +00:00
82d2fb08c0 remove undeeded code 2007-06-17 03:26:12 +00:00
f8cb36a109 Fix window position when restoring window from tray 2007-06-17 02:38:56 +00:00
20c4323cc7 allocation fix 2007-06-17 01:13:46 +00:00
ce150491c0 align proxy prefs 2007-06-16 23:08:44 +00:00
8eb04467bb Small fix for the resume code 2007-06-16 18:56:11 +00:00
73e7e741dd proper prefix fix 2007-06-16 14:57:46 +00:00
a7b9c89557 remove debug print 2007-06-16 12:30:35 +00:00
1cd18512dc proxy touchup 2007-06-16 12:26:43 +00:00
6da1ec0ad1 remove frame 2007-06-16 11:36:30 +00:00
71ed6b6f67 proxy support 2007-06-16 10:56:09 +00:00
8873ac3cce clarification touchup 2007-06-16 07:02:40 +00:00
39e7d25c1e add "desired ratio" option on per torrent basis 2007-06-16 07:00:55 +00:00
df63d91a46 default "remove .torrent" checked 2007-06-16 06:04:53 +00:00
525526316c connect queue to top 2007-06-16 05:45:22 +00:00
ac99ef7d26 remove unused code 2007-06-16 04:47:35 +00:00
726992ab53 Some minor fix ups for the pause/resume 2007-06-16 02:16:34 +00:00
eede17988a Fixed up Pausing/Resuming in the interface, especially the Torrent menu.
Forcing update() on pausing/resuming and queue changes to improve UI 
responsiveness.
2007-06-16 02:09:03 +00:00
57d5ae802f remove debug printouts 2007-06-15 23:23:17 +00:00
ec03ff3085 Remove 'applying queue' print out 2007-06-15 23:14:58 +00:00
261be67769 add new lt files 2007-06-15 22:30:39 +00:00
72261756f5 restart need notice on utpex 2007-06-15 21:54:43 +00:00
1d4561d513 remove debug print line 2007-06-15 21:53:34 +00:00
630f55dda2 add two new lt files 2007-06-15 21:46:39 +00:00
55e5b75e54 major lt upgrade to trunk and turn on options for upnp, natpmp and utpex 2007-06-15 21:45:53 +00:00
cdf34e92e9 Have the torrent view sort by Queue order by default. 2007-06-15 08:48:40 +00:00
8390e3977e embarrassing bug fixed in queue_bottom, that caused torrents to vanish... 2007-06-15 08:41:32 +00:00
2982ae4b8c Update() now calls manager.apply_queue()
Small fix in get_selected_torrent() to account for a TypeError
2007-06-15 08:31:45 +00:00
2be048d89e prevent infinite recursion in apply_queue 2007-06-15 08:20:52 +00:00
cb4358f65e apply_queue after all queuing operations 2007-06-15 08:14:02 +00:00
d195907bde Changed the check for available space. Libtorrent automatically pauses
torrents if there is not enough disk space available.  There is now an 
available disk space check when the user tries to resume a torrent.
2007-06-15 07:35:04 +00:00
1b6205990f Testing 2007-06-14 23:35:55 +00:00
2538406872 Testing 2007-06-14 23:32:13 +00:00
edd017b785 Some of my updates to the UI. Re-added the scrolled window to the
details pane, but glade doesn't seem to load it properly.  Added word 
wrapping for a few of the fields.  Also added Torrent to the menubar and 
it uses the torrent_menu from the right-click pop-up menu.
2007-06-14 22:03:04 +00:00
cac850939c remove homog setting for now 2007-06-14 21:50:37 +00:00
1cb3439b06 v 2007-06-14 21:10:22 +00:00
3dce6a919d Set 'Resize' on the top vpane so that the lower vpane will not resize
when the window size is changed.
2007-06-14 20:51:08 +00:00
e9beaa35b1 my name was misspelled, wtf? 2007-06-14 20:49:02 +00:00
2468275ef8 version # 2007-06-14 20:46:05 +00:00
dad6a5e956 ui tweaking 2007-06-14 20:38:49 +00:00
f631fb3116 Delete torrent's files correctly now. 2007-06-14 20:01:22 +00:00
797ac38ca7 Delete torrent's files correctly now. 2007-06-14 19:59:48 +00:00
7cbb69bd20 more ui stuff 2007-06-14 19:01:17 +00:00
eefdb466e6 gui tweaking 2007-06-14 17:35:19 +00:00
477278961b remove dht limit pref 2007-06-14 15:59:02 +00:00
bcefc45880 these seeds/peers numbers appears to be working better. 2007-06-14 13:49:57 +00:00
d4f241ce5f fix seeds/peers numbers with help of libtorrent author so i know it's finally right 2007-06-14 12:45:00 +00:00
31d21bb161 remove dir even if it has empty dirs left over 2007-06-14 05:34:59 +00:00
c598637824 Update authors list 2007-06-14 01:22:03 +00:00
63a8ddb39e ubuntu 6.10 support 2007-06-13 21:56:48 +00:00
29f5f732f6 ok...real fix for torrentsearch :) 2007-06-13 21:42:20 +00:00
525a6091eb fix torrentsearch - nuno 2007-06-13 21:29:36 +00:00
3d1e4017d3 Now able to specify if the .torrent file gets deleted when removing a
torrent.
2007-06-13 21:10:12 +00:00
ed76e66e3d Updated the Remove Torrent alert. 2007-06-13 20:56:05 +00:00
6e1f089fc8 fix for not sorting correctly in file tab if sort column was not progress column 2007-06-13 19:23:33 +00:00
856764489a Fix tracker display issue 2007-06-13 18:42:21 +00:00
d17ec86483 fix networkgraph plugin for new module system 2007-06-13 17:13:30 +00:00
04cd6fb67b libtorrent 'endpoint not connected' exception fix 2007-06-13 16:21:59 +00:00
188af2eee3 fix oops 2007-06-13 07:48:50 +00:00
9a588c73f9 fix default for auto_seed_ratio 2007-06-13 07:47:58 +00:00
393cbafa19 actually save/load auto_end_seeding and auto_seed_ratio settings 2007-06-13 07:41:16 +00:00
0c4f08afdf check if update is necessary first 2007-06-13 06:06:46 +00:00
f0ba87c28e fix crash 2007-06-13 05:36:51 +00:00
96cc172ae1 cleanup automatic progress update in file tab 2007-06-13 04:20:05 +00:00
180fb899f4 ok...progress in file tab again 2007-06-13 03:58:27 +00:00
1c5c82f3af reverse 591 2007-06-13 03:47:51 +00:00
412017ae46 reactivate progress in file tab *WITH* automatic updating of percentages per file 2007-06-13 03:35:48 +00:00
67073ba8c5 Fix problem with removing torrent. 2007-06-13 01:33:16 +00:00
43ea807a9b Reverted the preferences state saving because it was silly.
Did some touch-ups on the Preferences dialog.
2007-06-12 23:23:05 +00:00
56d61f1570 The preferences dialog state (height, width, x, y) is now saved. 2007-06-12 22:45:30 +00:00
2c2f646a47 Fix for the Details pane to not have a fixed height. 2007-06-12 21:54:47 +00:00
da127646cd Better fix for the toolbar text issue. This one does not override the
user's system preferences.
2007-06-12 21:17:12 +00:00
2df62aef08 Fix for toolbar not displaying text. 2007-06-12 21:08:18 +00:00
cc2c6d94d4 more autotools work 2007-06-12 20:35:59 +00:00
e0e502aaa9 Update interface.py for use with the new Details pane. 2007-06-12 20:09:44 +00:00
0f075deadd Updates to the main UI including a complete re-design of the Details
pane.
2007-06-12 20:07:06 +00:00
df31a83f0b readme touchup 2007-06-12 19:41:17 +00:00
ac749997c5 fedora 7 support 2007-06-12 19:14:19 +00:00
70c8b4de9a ui tinkering 2007-06-12 17:51:33 +00:00
caa0f1427a beginnings of automake files 2007-06-12 17:44:05 +00:00
fab729a5c6 svg logo 2007-06-12 16:37:58 +00:00
442bdf1c4c license fixes 2007-06-12 16:33:32 +00:00
20f2696bad plugins reworked as modules and ip block - tarka 2007-06-12 08:13:16 +00:00
c7fa12bc81 Fix to the window pane settings 2007-06-12 05:06:13 +00:00
f4cda9baaf The window vpane position is now saved.
Re-ordered default preferences to be alphabetical.
2007-06-12 03:42:40 +00:00
3b9b8beba1 revert ip block and module changes 2007-06-12 03:32:49 +00:00
5414b2eb12 revert ip block and module changes 2007-06-12 03:32:39 +00:00
976df3963f add 2007-06-12 03:01:48 +00:00
4fe3d2769d new plugin system + ip block plugin...hopefully... 2007-06-12 02:52:53 +00:00
0d2711ab06 This should fix the window displaying before it is ready. 2007-06-12 02:52:18 +00:00
71a25a4c9c i'm an idiot 2007-06-12 02:27:29 +00:00
127e85c565 fix interface.start 2007-06-12 02:21:18 +00:00
352861703c Better window geometry handling.
Window geometry will now save maximize state.
Main window is now hidden until it has been resized/moved.
2007-06-12 02:16:30 +00:00
7fbd166725 missing bracklet 2007-06-12 02:09:36 +00:00
ee579a5e6d missed one line last commit 2007-06-12 02:03:32 +00:00
0c774012d8 remove progress lines from interfaces.py since it's already out of glade file 2007-06-12 01:56:46 +00:00
1d4b1eea2b -- 2007-06-11 23:55:56 +00:00
2861 changed files with 678123 additions and 109172 deletions

10
.gitattributes vendored Normal file
View File

@ -0,0 +1,10 @@
/libtorrent export-ignore
/win32 export-ignore
docs/build export-ignore
docs/source export-ignore
/tests export-ignore
deluge/scripts export-ignore
.gitattributes export-ignore
.gitmodules export-ignore
.gitignore export-ignore
*.py diff=python

11
.gitignore vendored Normal file
View File

@ -0,0 +1,11 @@
*~
build
dist
*egg-info
*.egg
*.log
*.pyc
*.tar.*
_trial_temp
deluge/i18n/*/
*.desktop

149
ChangeLog Normal file
View File

@ -0,0 +1,149 @@
=== Deluge 1.3.0 (In Development) ===
* Improved Logging
* Removed the AutoAdd feature on the core. It's now handled with the AutoAdd
plugin, which is also shipped with Deluge, and it does a better job and
now, it even supports multiple users perfectly.
* Authentication/Permission exceptions are now sent to clients and recreated
there to allow acting upon them.
* Enforced the use of the "deluge.plugins" namespace to reduce package
names clashing beetween regular packages and deluge plugins.
==== Core ====
* Implement #1063 option to delete torrent file copy on torrent removal - patch from Ghent
* Implement #457 progress bars for folders
* Implement #1012 httpdownloader supports gzip decoding
* #496: Remove deprecated functions in favour of get_session_status()
* #1112: Fix renaming files in add torrent dialog
* #1247: Fix deluge-gtk from hanging on shutdown
* #995: Rewrote tracker_icons
* Make the distinction between adding to the session new unmanaged torrents
and torrents loaded from state. This will break backwards compatability.
* Pass a copy of an event instead of passing the event arguments to the
event handlers. This will break backwards compatability.
* Allow changing ownership of torrents.
* File modifications on the auth file are now detected and when they happen,
the file is reloaded. Upon finding an old auth file with an old format, an
upgrade to the new format is made, file saved, and reloaded.
* Authentication no longer requires a username/password. If one or both of
these is missing, an authentication error will be sent to the client
which sould then ask the username/password to the user.
* Implemented sequential downloads.
* #378: Provide information about a torrent's pieces states
==== GtkUI ====
* Fix uncaught exception when closing deluge in classic mode
* Allow changing ownership of torrents
* Host entries in the Connection Manager UI are now editable. They're
now also migrated from the old format were automatic localhost logins were
possible, which no longer is, this fixes #1814.
* Implemented sequential downloads UI handling.
* #378: Allow showing a pieces bar instead of a regular progress bar in a
torrent's status tab.
==== WebUI ====
* Migrate to ExtJS 3.1
* Add gzip compression of HTTP data to the server
* Improve the efficiency of the TorrentGrid
==== Blocklist ====
* Implement local blocklist support
* #861: Pause transfers until blocklist is imported
=== Deluge 1.2.0 - "Bursting like an infected kidney" (10 January 2010) ===
==== Core ====
* Implement new RPC protocol DelugeRPC replacing XMLRPC
* Move to a twisted framework
* Add an 'Error' filter for Trackers to show trackers that currently have a tracker error
* Use system GeoIP database if available, this is now an optional dependency
==== GtkUI ====
* Remove SignalReceiver
* Implemented a cross-platform IPC method thus removing the DBUS dependency
* Implement a "True" Classic Mode where there is no longer a separate daemon process
* Add preferences option "Add torrent in paused state"
* Add tracker icons to the Tracker column
* Implement #259 show tooltip with country name in the peers tab
* Add an error category to the tracker sidebar list
* Add Find More Plugins button to Plugins preference page
* Fix #518 remove header in add torrent dialog to save vertical space
* Add a Cache preferences page to adjust cache settings and examine cache status
* Add ability to rename files prior to adding them
* Fix shutdown handler with GNOME session manager
* Allow 4 MiB piece sizes when creating a torrent
==== ConsoleUI ====
* Changed to use curses for a more interactive client
==== WebUI ====
* Move over to using Twisted-Web for the webserver.
* Move to only AJAX interface built upon Ext-JS.
==== Plugins ====
* Add Scheduler plugin
* Add Extractor plugin
==== Misc ====
* PyGTK dependency bumped to => 2.12 to use new tooltip system
* Add new scripts for invoking UIs: deluge-gtk, deluge-web, deluge-console
* Remove GeoIP database from the source tree
=== Deluge 1.1.0 - "Time gas!" (10 January 2009) ===
==== Core ====
* Implement #79 ability to change outgoing port range
* Implement #296 ability to change peer TOS byte
* Add per-torrent move on completed settings
* Implement #414 use async save_resume_data method
* Filter Manager with torrent filtering in get_torrents_status , for sidebar and plugins.
* Implement #368 add torrents by infohash/magnet uri (trackerless torrents)
* Remove remaining gtk functions in common
* Tracker icons.
* Add ETA for torrents with stop at seed ratio set
* Fix #47 the state and config files are no longer invalidated when there is no diskspace
* Fix #619 return "" instead of "Infinity" if seconds == 0 in ftime
* Add -P, --pidfile option to deluged
==== GtkUI ====
* Add peer progress to the peers tab
* Add ability to manually add peers
* Sorting # column will place downloaders above seeds
* Remove dependency on libtorrent for add torrent dialog
* Allow adding multiple trackers at once in the edit tracker dialog
* Implement #28 Create Torrent Dialog
* Redesiged sidebar with filters for Active and Tracker (see Filter Manager)
* Implement #428 the ability to rename files and directories
* Implement #229 add date added column
* Implement #596 show speeds in title
* Fix #636 not setting the daemon's config directory when using --config= with the UI in classic mode.
* Fix #624 do not allow changing file priorities when using compact allocation
* Fix #602 re-did files/peers tab state saving/loading
* Fix gtk warnings
* Add protocol traffic statusbar item
* Rework the Remove Torrent Dialog to only have 2 options, remove data and remove from session.
* Add "Install Plugin" and "Rescan Plugins" buttons to the Plugins preferences
* Make active port test use internal graphic instead of launching browser
==== WebUI ====
* Lots of smaller tweaks.
* All details tabs have the same features as in gtk-ui 1.0.x
* Persistent sessions #486
* Plugin improvements for easy use of templates and images in eggs. #497
* Classic template takes over some style elements from white template.
* https (for users that know how to create certificates)
* Easier apache mod_proxy use.
* Redesigned sidebar
==== AjaxUI ====
* Hosted in a webui template.
==== ConsoleUI ====
* New ConsoleUI written by Idoa01
* Callable from command-line for scripts.
==== Plugins ====
* Stats plugin for graphs.
* Label plugin for grouping torrents and per torrent settings.
==== Misc ====
* Implement #478 display UI options in usage help
* Fix #547 add description to name field per HIG entry 2.1.1.1
* Fix #531 set default log level to ERROR and add 2 command-line options, "-L, --loglevel" and "-q, --quiet".

29
DEPENDS Normal file
View File

@ -0,0 +1,29 @@
=== Core ===
* python >= 2.5
* twisted >= 8.1
* twisted-web >= 8.1
* pyopenssl
* simplejson (if python < 2.6)
* setuptools
* gettext
* intltool
* pyxdg
* chardet
* geoip-database (optional)
* libtorrent >= 0.14, or build the included version
* If building included libtorrent::
* boost >= 1.34.1
* openssl
* zlib
=== Gtk ===
* python-notify (libnotify python wrapper)
* pygame
* pygtk >= 2.12
* librsvg
* xdg-utils
=== Web ===
* mako

862
LICENSE
View File

@ -1,340 +1,634 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Deluge is licensed under the GNU General Public License version 3 with the
addition of the following special exception:
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
In addition, as a special exception, the copyright holders give
permission to link the code of portions of this program with the OpenSSL
library.
You must obey the GNU General Public License in all respects for all of
the code used other than OpenSSL. If you modify file(s) with this
exception, you may extend this exception to your version of the file(s),
but you are not obligated to do so. If you do not wish to do so, delete
this exception statement from your version. If you delete this exception
statement from all source files in the program, then also delete it here.
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
TERMS AND CONDITIONS
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
0. Definitions.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
"This License" refers to version 3 of the GNU General Public License.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
A "covered work" means either the unmodified Program or a work based
on the Program.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
1. Source Code.
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
The Corresponding Source for a work in source code form is that
same work.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
13. Use with the GNU Affero General Public License.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
14. Revised Versions of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
NO WARRANTY
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
15. Disclaimer of Warranty.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
16. Limitation of Liability.
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
17. Interpretation of Sections 15 and 16.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.
END OF TERMS AND CONDITIONS

View File

@ -1,11 +1,12 @@
include LICENSE
include README
include Makefile
include deluge.desktop
include deluge.xpm
include msgfmt.py
recursive-include libtorrent/ *
recursive-include glade/ *.glade
recursive-include pixmaps/ *.png
recursive-include plugins/ *
recursive-include po/ *
recursive-include docs/man *
recursive-include deluge *
recursive-include win32 *
recursive-exclude deluge *.egg-link
exclude deluge/ui/web/gen_gettext.py
exclude deluge/ui/web/css/*-debug.css
exclude deluge/ui/web/js/build.sh
exclude deluge/ui/web/js/Deluge*.js
exclude deluge/ui/web/js/*-debug.js
prune deluge/ui/web/docs
prune deluge/scripts

View File

@ -1,15 +0,0 @@
#
# Makefile for Deluge
#
PREFIX = /usr
all:
python setup.py build
install:
python setup.py install --prefix=$(PREFIX)
clean:
python setup.py clean; rm -rf ./build; rm msgfmt.pyc

121
README
View File

@ -1,63 +1,94 @@
Deluge BitTorrent Client
Authors:
Zach Tibbitts, aka zachtib
Alon Zakai, aka kripkenstein
Marcos Pinto, aka markybob
==========================
Deluge BitTorrent Client
==========================
Homepage: http://deluge-torrent.org
Authors:
Andrew Resch
Damien Churchill
For past developers and contributers see: http://dev.deluge-torrent.org/wiki/About
==========================
License
==========================
Deluge is under the GNU GPLv3 license.
Icon ui/data/pixmaps/deluge.svg and derivatives in ui/data/icons are copyright
Andrew Wedderburn and are under the GNU GPLv3.
All other icons in ui/data/pixmaps are copyright Andrew Resch and are under
the GNU GPLv3.
==========================
Contact/Support:
==========================
We have two options available for support:
Our Forum, at: http://forum.deluge-torrent.org
or
Our IRC Channel, at #deluge on Freenode: http://freenode.net
==========================
Installation Instructions:
==========================
First, make sure you have the proper bulid
dependencies installed. On a normal Debian
or Ubuntu system, those dependencies are:
For more detailed instructions see: http://dev.deluge-torrent.org/wiki/Installing/Source
g++
python-all-dev
python-all
python-support
libboost-dev
libboost-thread-dev
libboost-date-time-dev
libboost-filesystem-dev
libssl-dev
zlib1g-dev
See: DEPENDS for a full list of dependencies.
But the names of the packages may vary
depending on your OS / distro.
First, make sure you have the proper build dependencies installed. On a normal
Debian or Ubuntu system:
Once you have the needed libraries installed,
build Deluge by running:
sudo apt-get install g++ make python-all-dev python-all python-dbus \
python-gtk2 python-notify librsvg2-common python-xdg python-support \
subversion libboost-dev libboost-python-dev \
libboost-thread-dev libboost-date-time-dev libboost-filesystem-dev \
libssl-dev zlib1g-dev python-setuptools \
python-mako python-twisted-web python-chardet python-simplejson
python setup.py build
The names of the packages may vary depending on your OS / distro.
You shouldn't get any errors. Then run, as
root (or by using sudo):
Once you have the needed libraries installed, build and install by running:
python setup.py install
$ python setup.py build
$ sudo python setup.py install
and Deluge will be installed.
==========================
FAQ
==========================
You can then run Deluge by executing:
How to start the various user-interfaces
deluge
Notes:
Gtk:
deluge-gtk
Console:
deluge-console
Web:
deluge-web
Go to http://localhost:8112/ default-password = "deluge"
1) On some distributions, boost libraries are
renamed to have "-mt" at the end (boost_thread_mt
instead of boost_thread, for example), the "mt"
indicating "multithreaded". In some cases it
appears the distros lack symlinks to connect
things. The solution is to either add symlinks
from the short names to those with "-mt", or to
alter setup.py to look for the "-mt" versions.
2) After upgrading your Deluge installation, it
may fail to start. If this happens to you, you
need to remove your ~/.config/deluge directory
to allow Deluge to rebuild it's configuration
file.
Why is deluge still listed in my system tray even after I close it ?
You closed the gtk user-interface but you did not close the daemon. Choose "Quit & Shutdown Daemon" to close both Daemon and gtk-ui.
How do I start the daemon?
deluged
How do I start the daemon with logging to console?
deluged -d -L <log level>
I can't connect to the daemon from another machine
* Configure the daemon to allow remote connections
* Add a user to the auth file located in the config folder: ~/.config/deluge/auth
* Restart the daemon.
I upgraded from 0.5 and plugin x is missing
1.0 is a rewrite, all old 0.5 plugins have to be rewritten.
For the full FAQ see: http://dev.deluge-torrent.org/wiki/Faq

View File

@ -1,11 +0,0 @@
NOTE: Deluge 0.5.1 uses an unstable build of libtorrent. This
build differs from a clean libtorrent source checkout and has
been hacked in order to get it to work properly with Deluge.
As a result, Deluge will likely not build properly against a
vanilla libtorrent 0.12 installation or a nightly build of
libtorrent 0.13. It is recommended that you build against our
included libtorrent, as our build will not conflict with any
installed libtorrent.
- zachtib

21
check_glade.sh Executable file
View File

@ -0,0 +1,21 @@
#!/bin/sh
# Fixes glade files which may have set gtk stock labels set to translatable
for x in `find . -name '*.glade' |grep -v '.git\|build'` ; do \
for y in gtk-add gtk-apply gtk-bold gtk-cancel gtk-cdrom gtk-clear \
gtk-close gtk-color-picker gtk-connect gtk-convert gtk-copy gtk-cut \
gtk-delete gtk-dialog-error gtk-dialog-info gtk-dialog-question \
gtk-dialog-warning gtk-dnd gtk-dnd-multiple gtk-edit gtk-execute gtk-find \
gtk-find-and-replace gtk-floppy gtk-goto-bottom gtk-goto-first \
gtk-goto-last gtk-goto-top gtk-go-back gtk-go-down gtk-go-forward \
gtk-go-up gtk-help gtk-home gtk-index gtk-italic gtk-jump-to \
gtk-justify-center gtk-justify-fill gtk-justify-left gtk-missing-image \
gtk-new gtk-no gtk-ok gtk-open gtk-paste gtk-preferences gtk-print \
gtk-print-preview gtk-properties gtk-quit gtk-redo gtk-refresh \
gtk-remove gtk-revert-to-saved gtk-save gtk-save-as gtk-select-color \
gtk-select-font gtk-sort-descending gtk-spell-check gtk-stop \
gtk-strikethrough gtk-undelete gtk-underline gtk-undo gtk-yes \
gtk-zoom-100 gtk-zoom-fit gtk-zoom-in gtk-zoom-out; do \
sed -i "s/<property\ name\=\"label\"\ translatable\=\"yes\">$y<\/property>/<property\ name\=\"label\"\ translatable\=\"no\">$y<\/property>/g" $x; \
done;\
done

32
create_potfiles_in.py Executable file
View File

@ -0,0 +1,32 @@
#!/usr/bin/env python
import os
import re
import sys
# Paths to exclude
EXCLUSIONS = [
"deluge/scripts",
"deluge/i18n",
]
POTFILE_IN = "deluge/i18n/POTFILES.in"
pattern = "deluge\/plugins\/.*\/build"
compiled = re.compile(pattern)
sys.stdout.write("Creating " + POTFILE_IN + " ... ")
sys.stdout.flush()
to_translate = []
for (dirpath, dirnames, filenames) in os.walk("deluge"):
for filename in filenames:
if os.path.splitext(filename)[1] in (".py", ".glade", ".in") \
and dirpath not in EXCLUSIONS \
and not compiled.match(dirpath):
to_translate.append(os.path.join(dirpath, filename))
f = open(POTFILE_IN, "wb")
for line in to_translate:
f.write(line + "\n")
f.close()
print "Done"

6
createicons.sh Executable file
View File

@ -0,0 +1,6 @@
#!/bin/bash
for size in 16 22 24 32 36 48 64 72 96 128 192 256; do mkdir -p deluge/ui/data/\
icons/hicolor/${size}x${size}/apps; rsvg-convert -w ${size} -h ${size} \
-o deluge/ui/data/icons/hicolor/${size}x${size}/apps/deluge.png deluge/ui/data/pixmaps\
/deluge.svg; mkdir -p deluge/ui/data/icons/scalable/apps/; cp deluge/ui/data/pixmaps/\
deluge.svg deluge/ui/data/icons/scalable/apps/deluge.svg; done

View File

@ -1,12 +0,0 @@
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=Deluge BitTorrent Client
Comment=Bittorrent client written in Python/PyGTK
Exec=deluge
Icon=deluge.xpm
Terminal=false
Type=Application
Categories=Application;Network
StartupNotify=true
MimeType=application/x-bittorrent;

View File

@ -1,415 +0,0 @@
/* XPM */
static char * deluge_torrent_xpm[] = {
"32 32 380 2",
" c None",
". c #8893A8",
"+ c #8994A8",
"@ c #B0B7C5",
"# c #919BAE",
"$ c #737F98",
"% c #A3ABBB",
"& c #8E98AD",
"* c #AEB5C4",
"= c #858FA5",
"- c #5E6D89",
"; c #929CB0",
"> c #8794A9",
", c #8592AA",
"' c #919FB5",
") c #A5B0C3",
"! c #7688A4",
"~ c #7687A1",
"{ c #8A99B1",
"] c #768AA7",
"^ c #7E92AE",
"/ c #8397B3",
"( c #92A4BD",
"_ c #96A8C0",
": c #5B7295",
"< c #8B9DB7",
"[ c #6A83A4",
"} c #728BAD",
"| c #7791B3",
"1 c #7B95B6",
"2 c #7C96B8",
"3 c #95ABC6",
"4 c #829CBC",
"5 c #45618C",
"6 c #7F96B3",
"7 c #6483A9",
"8 c #6384AC",
"9 c #6B8BB3",
"0 c #7091B8",
"a c #7495BC",
"b c #7596BD",
"c c #7496BD",
"d c #95AECC",
"e c #6F91B9",
"f c #6081A9",
"g c #3C6292",
"h c #365989",
"i c #4B6B97",
"j c #5676A1",
"k c #5F81AB",
"l c #6E93BF",
"m c #7097C2",
"n c #7297C3",
"o c #8FADCE",
"p c #618AB7",
"q c #476D9D",
"r c #5A779F",
"s c #1B4075",
"t c #1F4377",
"u c #365785",
"v c #4A6791",
"w c #4D6B94",
"x c #5D80AA",
"y c #6C93BF",
"z c #779DC6",
"A c #84A6CB",
"B c #5382B6",
"C c #3A659A",
"D c #5C789F",
"E c #224579",
"F c #1E4277",
"G c #274A7C",
"H c #2E4F7F",
"I c #335483",
"J c #44628D",
"K c #557197",
"L c #526E95",
"M c #506F99",
"N c #668FBD",
"O c #7FA3CA",
"P c #7299C4",
"Q c #36639A",
"R c #4F6D97",
"S c #345484",
"T c #305181",
"U c #42618A",
"V c #4E6992",
"W c #4A678F",
"X c #4B6992",
"Y c #4B6994",
"Z c #5F7A9E",
"` c #5E779C",
" . c #597398",
".. c #527099",
"+. c #618ABA",
"@. c #84A6CD",
"#. c #5D89BB",
"$. c #375A89",
"%. c #4C6992",
"&. c #3A5986",
"*. c #536E94",
"=. c #577197",
"-. c #6F92BB",
";. c #759ECA",
">. c #739CCA",
",. c #759DC9",
"'. c #6880A4",
"). c #5C7699",
"!. c #4F6F98",
"~. c #618DBD",
"{. c #81A4CA",
"]. c #4B7CB3",
"^. c #274F84",
"/. c #5A759B",
"(. c #375784",
"_. c #577196",
":. c #5A7498",
"<. c #6F89AB",
"[. c #8BADD1",
"}. c #7EA5D0",
"|. c #7FA6D0",
"1. c #7CA4CF",
"2. c #7CA4CE",
"3. c #789FC7",
"4. c #6984A7",
"5. c #5A7398",
"6. c #5076A5",
"7. c #6791C0",
"8. c #7198C3",
"9. c #2D5081",
"0. c #25477A",
"a. c #4C6890",
"b. c #627A9D",
"c. c #657DA1",
"d. c #A0BBD7",
"e. c #89AED6",
"f. c #8BAFD7",
"g. c #8BB0D7",
"h. c #8AAED6",
"i. c #86ACD4",
"j. c #82A8D2",
"k. c #7CA3CF",
"l. c #749DC8",
"m. c #6984A6",
"n. c #567298",
"o. c #5786BA",
"p. c #779CC6",
"q. c #5583B7",
"r. c #295086",
"s. c #2C4E7F",
"t. c #345483",
"u. c #5B7498",
"v. c #5D7699",
"w. c #93AAC4",
"x. c #9EBDDD",
"y. c #96B8DD",
"z. c #97B9DE",
"A. c #94B7DC",
"B. c #90B3DA",
"C. c #8AAFD6",
"D. c #83A9D2",
"E. c #7AA2CE",
"F. c #6F95BF",
"G. c #667E9F",
"H. c #577FAF",
"I. c #5585B8",
"J. c #759AC5",
"K. c #3F6FA7",
"L. c #254A80",
"M. c #5C769C",
"N. c #3C5B87",
"O. c #60789C",
"P. c #B0C3D8",
"Q. c #A1C0E3",
"R. c #A3C2E4",
"S. c #A3C3E5",
"T. c #A2C2E4",
"U. c #9EBFE2",
"V. c #98BADE",
"W. c #91B4DA",
"X. c #88AED6",
"Y. c #759ECB",
"Z. c #6885AD",
"`. c #5780B0",
" + c #5383B8",
".+ c #7299C3",
"++ c #4675AB",
"@+ c #395A89",
"#+ c #46648F",
"$+ c #3E5D88",
"%+ c #617A9C",
"&+ c #637B9D",
"*+ c #BFD1E4",
"=+ c #ADCBEA",
"-+ c #B0CDEB",
";+ c #AFCCEB",
">+ c #ACCAE9",
",+ c #A7C6E6",
"'+ c #9FC0E2",
")+ c #8DB1D8",
"!+ c #82A9D2",
"~+ c #77A0CC",
"{+ c #6A94C4",
"]+ c #5F8DBF",
"^+ c #5C89BA",
"/+ c #5C85B4",
"(+ c #3F5E8B",
"_+ c #3B5A86",
":+ c #647C9E",
"<+ c #61799D",
"[+ c #C1D2E4",
"}+ c #BBD5F1",
"|+ c #BCD6F2",
"1+ c #BAD5F1",
"2+ c #B5D1EE",
"3+ c #AECBEA",
"4+ c #A5C4E5",
"5+ c #9BBCE0",
"6+ c #84AAD3",
"7+ c #78A0CC",
"8+ c #6B96C6",
"9+ c #5F8CBF",
"0+ c #5282B8",
"a+ c #4F7FB4",
"b+ c #668CB7",
"c+ c #43618D",
"d+ c #325382",
"e+ c #5E779B",
"f+ c #5F789A",
"g+ c #BACADC",
"h+ c #C9E0F9",
"i+ c #C7DFF8",
"j+ c #C3DCF6",
"k+ c #BCD7F2",
"l+ c #B3CFED",
"m+ c #A8C7E7",
"n+ c #9DBEE1",
"o+ c #6A96C5",
"p+ c #5D8BBE",
"q+ c #5081B7",
"r+ c #497BB2",
"s+ c #698DB7",
"t+ c #45638E",
"u+ c #2E5080",
"v+ c #25487B",
"w+ c #506B93",
"x+ c #647B9E",
"y+ c #9DAFC7",
"z+ c #D6E9FD",
"A+ c #D1E8FE",
"B+ c #CAE2FA",
"C+ c #C1DAF5",
"D+ c #A9C8E8",
"E+ c #6894C4",
"F+ c #5A89BC",
"G+ c #4D7EB5",
"H+ c #4577AF",
"I+ c #6B8DB5",
"J+ c #3B6090",
"K+ c #3D5D8A",
"L+ c #3C5B89",
"M+ c #1D4276",
"N+ c #647C9C",
"O+ c #657D9E",
"P+ c #C2D4E6",
"Q+ c #D3E9FF",
"R+ c #CEE5FC",
"S+ c #C2DBF5",
"T+ c #80A7D1",
"U+ c #729CC9",
"V+ c #6491C2",
"W+ c #5686BA",
"X+ c #497BB3",
"Y+ c #5580B3",
"Z+ c #5B7EAA",
"`+ c #335686",
" @ c #4D6993",
".@ c #26497B",
"+@ c #4C6990",
"@@ c #6B82A2",
"#@ c #7D92B0",
"$@ c #C1D4E9",
"%@ c #C0DAF4",
"&@ c #B2CFED",
"*@ c #7BA3CE",
"=@ c #6F99C7",
"-@ c #6390C0",
";@ c #5886B9",
">@ c #4A7BB2",
",@ c #698CB7",
"'@ c #4C6F9C",
")@ c #284C7F",
"!@ c #577299",
"~@ c #2F517F",
"{@ c #536E93",
"]@ c #7086A5",
"^@ c #7B8FAC",
"/@ c #9FB3CD",
"(@ c #B8D2EE",
"_@ c #91B5DB",
":@ c #85ABD4",
"<@ c #7CA3CD",
"[@ c #729AC8",
"}@ c #6791C1",
"|@ c #5A87BA",
"1@ c #5280B4",
"2@ c #7A97BB",
"3@ c #416290",
"4@ c #2F5080",
"5@ c #4F6B91",
"6@ c #687F9F",
"7@ c #7B8FAB",
"8@ c #8396B0",
"9@ c #8AA1BF",
"0@ c #8CACCE",
"a@ c #8FB2D8",
"b@ c #86AAD2",
"c@ c #7DA3CC",
"d@ c #749BC7",
"e@ c #6993C1",
"f@ c #5B88B9",
"g@ c #7999C0",
"h@ c #587AA5",
"i@ c #21416E",
"j@ c #516D96",
"k@ c #415F8A",
"l@ c #567196",
"m@ c #637B9E",
"n@ c #6F84A3",
"o@ c #778BA7",
"p@ c #758BAA",
"q@ c #7490B3",
"r@ c #749BC5",
"s@ c #6992C0",
"t@ c #799DC4",
"u@ c #7291B6",
"v@ c #46658C",
"w@ c #264878",
"x@ c #4F6C94",
"y@ c #42608C",
"z@ c #294B7D",
"A@ c #4A6790",
"B@ c #567095",
"C@ c #597599",
"D@ c #587398",
"E@ c #536F96",
"F@ c #4F6D95",
"G@ c #7690B4",
"H@ c #7090B7",
"I@ c #4A6991",
"J@ c #2B4871",
"K@ c #41608C",
"L@ c #59749A",
"M@ c #234679",
"N@ c #214578",
"O@ c #3A5A87",
"P@ c #47648F",
"Q@ c #667EA2",
"R@ c #7188A9",
"S@ c #4B6892",
"T@ c #395985",
"U@ c #1C314F",
"V@ c #2E4F7D",
"W@ c #395986",
"X@ c #526E96",
"Y@ c #58739A",
"Z@ c #5B759B",
"`@ c #6A82A5",
" # c #627CA0",
".# c #365887",
"+# c #324B69",
"@# c #344B69",
"## c #34537D",
"$# c #294C7C",
"%# c #315383",
"&# c #40618D",
"*# c #40638F",
"=# c #3B5C87",
"-# c #36537A",
";# c #2E4156",
" ",
" . ",
" + @ # ",
" $ % & * = ",
" - ; > , ' ) ! ",
" ~ { ] ^ / ( _ ",
" : < [ } | 1 2 3 4 ",
" 5 6 7 8 9 0 a b c d e ",
" 7 f g h i j k l m n o p ",
" q r s s s t u v w x y z A B ",
" C D E s F G H I J K L M N O P ",
" Q R S s T U V W X Y Z ` ...+.@.#. ",
" $.%.t &.*.=.r -.;.>.,.0 '.).!.~.{.]. ",
" ^./.F (._.:.<.[.}.|.}.1.2.3.4.5.6.7.8. ",
" 9.v 0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q. ",
" r.v s.t.u.v.w.x.y.z.z.A.B.C.D.E.F.G.H.I.J.K. ",
" L.M.s N.b.O.P.Q.R.S.T.U.V.W.X.|.Y.Z.`. +.+++ ",
" @+#+s $+%+&+*+=+-+;+>+,+'+z.)+!+~+{+]+ +^+/+ ",
" (+S s _+:+<+[+}+|+1+2+3+4+5+B.6+7+8+9+0+a+b+ ",
" c+T s d+e+f+g+h+i+j+k+l+m+n+W.6+~+o+p+q+r+s+ ",
" t+u+s v+w+x+y+z+A+B+C+2+D+n+B.D.Y.E+F+G+H+I+J+ ",
" K+L+s M+N.N+O+P+Q+R+S+2+m+5+)+T+U+V+W+X+Y+Z+ ",
" `+ @s s .@+@@@#@$@R+%@&@4+z.e.*@=@-@;@>@,@'@ ",
" )@!@t s s ~@{@]@^@/@(@=+'+_@:@<@[@}@|@1@2@3@ ",
" S #+s s s 4@5@6@7@8@9@0@a@b@c@d@e@f@g@h@ ",
" i@j@u s s s G k@l@m@n@o@p@q@a r@s@t@u@v@ ",
" w@x@y@s s s s z@_+A@B@C@D@E@F@G@H@I@ ",
" J@K@L@y@M@s s N@z@S O@P@Q@R@S@T@ ",
" U@V@W@X@L@Y@Z@L@c.`@ #v .#+# ",
" @###$#%#&#*#=#-#;# ",
" ",
" "};

4
deluge/__init__.py Normal file
View File

@ -0,0 +1,4 @@
"""Deluge"""
# this is a namespace package
import pkg_resources
pkg_resources.declare_namespace(__name__)

20
deluge/__rpcapi.py Normal file
View File

@ -0,0 +1,20 @@
from new import classobj
from deluge.core.core import Core
from deluge.core.daemon import Daemon
class RpcApi:
pass
def scan_for_methods(obj):
methods = {
'__doc__': 'Methods available in %s' % obj.__name__.lower()
}
for d in dir(obj):
if not hasattr(getattr(obj,d), '_rpcserver_export'):
continue
methods[d] = getattr(obj, d)
cobj = classobj(obj.__name__.lower(), (object,), methods)
setattr(RpcApi, obj.__name__.lower(), cobj)
scan_for_methods(Core)
scan_for_methods(Daemon)

60
deluge/_libtorrent.py Normal file
View File

@ -0,0 +1,60 @@
#
# _libtorrent.py
#
# Copyright (C) 2009 Andrew Resch <andrewresch@gmail.com>
#
# Deluge is free software.
#
# You may redistribute it and/or modify it under the terms of the
# GNU General Public License, as published by the Free Software
# Foundation; either version 3 of the License, or (at your option)
# any later version.
#
# deluge is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with deluge. If not, write to:
# The Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor
# Boston, MA 02110-1301, USA.
#
# In addition, as a special exception, the copyright holders give
# permission to link the code of portions of this program with the OpenSSL
# library.
# You must obey the GNU General Public License in all respects for all of
# the code used other than OpenSSL. If you modify file(s) with this
# exception, you may extend this exception to your version of the file(s),
# but you are not obligated to do so. If you do not wish to do so, delete
# this exception statement from your version. If you delete this exception
# statement from all source files in the program, then also delete it here.
#
#
"""
This module is used to handle the importing of libtorrent.
We use this module to control what versions of libtorrent this version of Deluge
supports.
** Usage **
>>> from deluge._libtorrent import lt
"""
REQUIRED_VERSION = "0.14.9.0"
def check_version(LT):
from deluge.common import VersionSplit
if VersionSplit(lt.version) < VersionSplit(REQUIRED_VERSION):
raise ImportError("This version of Deluge requires libtorrent >=%s!" % REQUIRED_VERSION)
try:
import deluge.libtorrent as lt
check_version(lt)
except ImportError:
import libtorrent as lt
check_version(lt)

129
deluge/bencode.py Normal file
View File

@ -0,0 +1,129 @@
# The contents of this file are subject to the Python Software Foundation
# License Version 2.3 (the License). You may not copy or use this file, in
# either source code or executable form, except in compliance with the License.
# You may obtain a copy of the License at http://www.python.org/license.
#
# Software distributed under the License is distributed on an AS IS basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
# Written by Petru Paler
# Minor modifications made by Andrew Resch to replace the BTFailure errors with Exceptions
def decode_int(x, f):
f += 1
newf = x.index('e', f)
n = int(x[f:newf])
if x[f] == '-':
if x[f + 1] == '0':
raise ValueError
elif x[f] == '0' and newf != f+1:
raise ValueError
return (n, newf+1)
def decode_string(x, f):
colon = x.index(':', f)
n = int(x[f:colon])
if x[f] == '0' and colon != f+1:
raise ValueError
colon += 1
return (x[colon:colon+n], colon+n)
def decode_list(x, f):
r, f = [], f+1
while x[f] != 'e':
v, f = decode_func[x[f]](x, f)
r.append(v)
return (r, f + 1)
def decode_dict(x, f):
r, f = {}, f+1
while x[f] != 'e':
k, f = decode_string(x, f)
r[k], f = decode_func[x[f]](x, f)
return (r, f + 1)
decode_func = {}
decode_func['l'] = decode_list
decode_func['d'] = decode_dict
decode_func['i'] = decode_int
decode_func['0'] = decode_string
decode_func['1'] = decode_string
decode_func['2'] = decode_string
decode_func['3'] = decode_string
decode_func['4'] = decode_string
decode_func['5'] = decode_string
decode_func['6'] = decode_string
decode_func['7'] = decode_string
decode_func['8'] = decode_string
decode_func['9'] = decode_string
def bdecode(x):
try:
r, l = decode_func[x[0]](x, 0)
except (IndexError, KeyError, ValueError):
raise Exception("not a valid bencoded string")
return r
from types import StringType, IntType, LongType, DictType, ListType, TupleType
class Bencached(object):
__slots__ = ['bencoded']
def __init__(self, s):
self.bencoded = s
def encode_bencached(x,r):
r.append(x.bencoded)
def encode_int(x, r):
r.extend(('i', str(x), 'e'))
def encode_bool(x, r):
if x:
encode_int(1, r)
else:
encode_int(0, r)
def encode_string(x, r):
r.extend((str(len(x)), ':', x))
def encode_list(x, r):
r.append('l')
for i in x:
encode_func[type(i)](i, r)
r.append('e')
def encode_dict(x,r):
r.append('d')
ilist = x.items()
ilist.sort()
for k, v in ilist:
r.extend((str(len(k)), ':', k))
encode_func[type(v)](v, r)
r.append('e')
encode_func = {}
encode_func[Bencached] = encode_bencached
encode_func[IntType] = encode_int
encode_func[LongType] = encode_int
encode_func[StringType] = encode_string
encode_func[ListType] = encode_list
encode_func[TupleType] = encode_list
encode_func[DictType] = encode_dict
try:
from types import BooleanType
encode_func[BooleanType] = encode_bool
except ImportError:
pass
def bencode(x):
r = []
encode_func[type(x)](x, r)
return ''.join(r)

714
deluge/common.py Normal file
View File

@ -0,0 +1,714 @@
#
# common.py
#
# Copyright (C) 2007, 2008 Andrew Resch <andrewresch@gmail.com>
#
# Deluge is free software.
#
# You may redistribute it and/or modify it under the terms of the
# GNU General Public License, as published by the Free Software
# Foundation; either version 3 of the License, or (at your option)
# any later version.
#
# deluge is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with deluge. If not, write to:
# The Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor
# Boston, MA 02110-1301, USA.
#
# In addition, as a special exception, the copyright holders give
# permission to link the code of portions of this program with the OpenSSL
# library.
# You must obey the GNU General Public License in all respects for all of
# the code used other than OpenSSL. If you modify file(s) with this
# exception, you may extend this exception to your version of the file(s),
# but you are not obligated to do so. If you do not wish to do so, delete
# this exception statement from your version. If you delete this exception
# statement from all source files in the program, then also delete it here.
#
#
"""Common functions for various parts of Deluge to use."""
import os
import time
import subprocess
import platform
import chardet
import logging
try:
import json
except ImportError:
import simplejson as json
log = logging.getLogger(__name__)
# Do a little hack here just in case the user has json-py installed since it
# has a different api
if not hasattr(json, "dumps"):
json.dumps = json.write
json.loads = json.read
def dump(obj, fp, **kw):
fp.write(json.dumps(obj))
def load(fp, **kw):
return json.loads(fp.read())
json.dump = dump
json.load = load
import pkg_resources
import gettext
import locale
from deluge.error import *
LT_TORRENT_STATE = {
"Queued": 0,
"Checking": 1,
"Downloading Metadata": 2,
"Downloading": 3,
"Finished": 4,
"Seeding": 5,
"Allocating": 6,
"Checking Resume Data": 7,
0: "Queued",
1: "Checking",
2: "Downloading Metadata",
3: "Downloading",
4: "Finished",
5: "Seeding",
6: "Allocating",
7: "Checking Resume Data"
}
TORRENT_STATE = [
"Allocating",
"Checking",
"Downloading",
"Seeding",
"Paused",
"Error",
"Queued"
]
FILE_PRIORITY = {
0: "Do Not Download",
1: "Normal Priority",
2: "High Priority",
5: "High Priority",
7: "Highest Priority",
"Do Not Download": 0,
"Normal Priority": 1,
"High Priority": 5,
"Highest Priority": 7
}
def get_version():
"""
Returns the program version from the egg metadata
:returns: the version of Deluge
:rtype: string
"""
return pkg_resources.require("Deluge")[0].version
def get_default_config_dir(filename=None):
"""
:param filename: if None, only the config path is returned, if provided, a path including the filename will be returned
:type filename: string
:returns: a file path to the config directory and optional filename
:rtype: string
"""
if windows_check():
if filename:
return os.path.join(os.environ.get("APPDATA"), "deluge", filename)
else:
return os.path.join(os.environ.get("APPDATA"), "deluge")
else:
import xdg.BaseDirectory
if filename:
return os.path.join(xdg.BaseDirectory.save_config_path("deluge"), filename)
else:
return xdg.BaseDirectory.save_config_path("deluge")
def get_default_download_dir():
"""
:returns: the default download directory
:rtype: string
"""
if windows_check():
return os.path.expanduser("~")
else:
from xdg.BaseDirectory import xdg_config_home
userdir_file = os.path.join(xdg_config_home, 'user-dirs.dirs')
try:
for line in open(userdir_file, 'r'):
if not line.startswith('#') and 'XDG_DOWNLOAD_DIR' in line:
download_dir = os.path.expandvars(\
line.partition("=")[2].rstrip().strip('"'))
if os.path.isdir(download_dir):
return download_dir
except IOError:
pass
return os.environ.get("HOME")
def windows_check():
"""
Checks if the current platform is Windows
:returns: True or False
:rtype: bool
"""
return platform.system() in ('Windows', 'Microsoft')
def vista_check():
"""
Checks if the current platform is Windows Vista
:returns: True or False
:rtype: bool
"""
return platform.release() == "Vista"
def osx_check():
"""
Checks if the current platform is Mac OS X
:returns: True or False
:rtype: bool
"""
return platform.system() == "Darwin"
def get_pixmap(fname):
"""
Provides easy access to files in the deluge/ui/data/pixmaps folder within the Deluge egg
:param fname: the filename to look for
:type fname: string
:returns: a path to a pixmap file included with Deluge
:rtype: string
"""
return resource_filename("deluge", os.path.join("ui", "data", "pixmaps", fname))
def resource_filename(module, path):
# While developing, if there's a second deluge package, installed globally
# and another in develop mode somewhere else, while pkg_resources.require("Deluge")
# returns the proper deluge instance, pkg_resources.resource_filename does
# not, it returns the first found on the python path, which is not good
# enough.
# This is a work-around that.
return pkg_resources.require("Deluge>=%s" % get_version())[0].get_resource_filename(
pkg_resources._manager, os.path.join(*(module.split('.')+[path]))
)
def open_file(path):
"""
Opens a file or folder using the system configured program
:param path: the path to the file or folder to open
:type path: string
"""
if windows_check():
os.startfile("%s" % path)
else:
subprocess.Popen(["xdg-open", "%s" % path])
def open_url_in_browser(url):
"""
Opens a url in the desktop's default browser
:param url: the url to open
:type url: string
"""
import webbrowser
webbrowser.open(url)
## Formatting text functions
def fsize(fsize_b):
"""
Formats the bytes value into a string with KiB, MiB or GiB units
:param fsize_b: the filesize in bytes
:type fsize_b: int
:returns: formatted string in KiB, MiB or GiB units
:rtype: string
**Usage**
>>> fsize(112245)
'109.6 KiB'
"""
fsize_kb = fsize_b / 1024.0
if fsize_kb < 1024:
return "%.1f %s" % (fsize_kb, _("KiB"))
fsize_mb = fsize_kb / 1024.0
if fsize_mb < 1024:
return "%.1f %s" % (fsize_mb, _("MiB"))
fsize_gb = fsize_mb / 1024.0
return "%.1f %s" % (fsize_gb, _("GiB"))
def fpcnt(dec):
"""
Formats a string to display a percentage with two decimal places
:param dec: the ratio in the range [0.0, 1.0]
:type dec: float
:returns: a formatted string representing a percentage
:rtype: string
**Usage**
>>> fpcnt(0.9311)
'93.11%'
"""
return '%.2f%%' % (dec * 100)
def fspeed(bps):
"""
Formats a string to display a transfer speed utilizing :func:`fsize`
:param bps: bytes per second
:type bps: int
:returns: a formatted string representing transfer speed
:rtype: string
**Usage**
>>> fspeed(43134)
'42.1 KiB/s'
"""
fspeed_kb = bps / 1024.0
if fspeed_kb < 1024:
return "%.1f %s" % (fspeed_kb, _("KiB/s"))
fspeed_mb = fspeed_kb / 1024.0
if fspeed_mb < 1024:
return "%.1f %s" % (fspeed_mb, _("MiB/s"))
fspeed_gb = fspeed_mb / 1024.0
return "%.1f %s" % (fspeed_gb, _("GiB/s"))
def fpeer(num_peers, total_peers):
"""
Formats a string to show 'num_peers' ('total_peers')
:param num_peers: the number of connected peers
:type num_peers: int
:param total_peers: the total number of peers
:type total_peers: int
:returns: a formatted string: num_peers (total_peers), if total_peers < 0, then it will not be shown
:rtype: string
**Usage**
>>> fpeer(10, 20)
'10 (20)'
>>> fpeer(10, -1)
'10'
"""
if total_peers > -1:
return "%d (%d)" % (num_peers, total_peers)
else:
return "%d" % num_peers
def ftime(seconds):
"""
Formats a string to show time in a human readable form
:param seconds: the number of seconds
:type seconds: int
:returns: a formatted time string, will return '' if seconds == 0
:rtype: string
**Usage**
>>> ftime(23011)
'6h 23m'
"""
if seconds == 0:
return ""
if seconds < 60:
return '%ds' % (seconds)
minutes = seconds / 60
if minutes < 60:
seconds = seconds % 60
return '%dm %ds' % (minutes, seconds)
hours = minutes / 60
if hours < 24:
minutes = minutes % 60
return '%dh %dm' % (hours, minutes)
days = hours / 24
if days < 7:
hours = hours % 24
return '%dd %dh' % (days, hours)
weeks = days / 7
if weeks < 52:
days = days % 7
return '%dw %dd' % (weeks, days)
years = weeks / 52
weeks = weeks % 52
return '%dy %dw' % (years, weeks)
def fdate(seconds):
"""
Formats a date time string in the locale's date representation based on the systems timezone
:param seconds: time in seconds since the Epoch
:type seconds: float
:returns: a string in the locale's datetime representation or "" if seconds < 0
:rtype: string
"""
if seconds < 0:
return ""
return time.strftime("%x %X", time.localtime(seconds))
def is_url(url):
"""
A simple test to check if the URL is valid
:param url: the url to test
:type url: string
:returns: True or False
:rtype: bool
**Usage**
>>> is_url("http://deluge-torrent.org")
True
"""
return url.partition('://')[0] in ("http", "https", "ftp", "udp")
def is_magnet(uri):
"""
A check to determine if a uri is a valid bittorrent magnet uri
:param uri: the uri to check
:type uri: string
:returns: True or False
:rtype: bool
**Usage**
>>> is_magnet("magnet:?xt=urn:btih:SU5225URMTUEQLDXQWRB2EQWN6KLTYKN")
True
"""
if uri[:20] == "magnet:?xt=urn:btih:":
return True
return False
def create_magnet_uri(infohash, name=None, trackers=[]):
"""
Creates a magnet uri
:param infohash: the info-hash of the torrent
:type infohash: string
:param name: the name of the torrent (optional)
:type name: string
:param trackers: the trackers to announce to (optional)
:type trackers: list of strings
:returns: a magnet uri string
:rtype: string
"""
from base64 import b32encode
uri = "magnet:?xt=urn:btih:" + b32encode(infohash.decode("hex"))
if name:
uri = uri + "&dn=" + name
if trackers:
for t in trackers:
uri = uri + "&tr=" + t
return uri
def get_path_size(path):
"""
Gets the size in bytes of 'path'
:param path: the path to check for size
:type path: string
:returns: the size in bytes of the path or -1 if the path does not exist
:rtype: int
"""
if not os.path.exists(path):
return -1
if os.path.isfile(path):
return os.path.getsize(path)
dir_size = 0
for (p, dirs, files) in os.walk(path):
for file in files:
filename = os.path.join(p, file)
dir_size += os.path.getsize(filename)
return dir_size
def free_space(path):
"""
Gets the free space available at 'path'
:param path: the path to check
:type path: string
:returns: the free space at path in bytes
:rtype: int
:raises InvalidPathError: if the path is not valid
"""
if not os.path.exists(path):
raise InvalidPathError("%s is not a valid path" % path)
if windows_check():
import win32file
sectors, bytes, free, total = map(long, win32file.GetDiskFreeSpace(path))
return (free * sectors * bytes)
else:
disk_data = os.statvfs(path.encode("utf8"))
block_size = disk_data.f_bsize
return disk_data.f_bavail * block_size
def is_ip(ip):
"""
A simple test to see if 'ip' is valid
:param ip: the ip to check
:type ip: string
:returns: True or False
:rtype: bool
** Usage **
>>> is_ip("127.0.0.1")
True
"""
import socket
#first we test ipv4
try:
if socket.inet_pton(socket.AF_INET, "%s" % (ip)):
return True
except socket.error:
if not socket.has_ipv6:
return False
#now test ipv6
try:
if socket.inet_pton(socket.AF_INET6, "%s" % (ip)):
return True
except socket.error:
return False
def path_join(*parts):
"""
An implementation of os.path.join that always uses / for the separator
to ensure that the correct paths are produced when working with internal
paths on Windows.
"""
path = ''
for part in parts:
if not part:
continue
elif part[0] == '/':
path = part
elif not path:
path = part
else:
path += '/' + part
return path
XML_ESCAPES = (
('&', '&amp;'),
('<', '&lt;'),
('>', '&gt;'),
('"', '&quot;'),
("'", '&apos;')
)
def xml_decode(string):
"""
Unescape a string that was previously encoded for use within xml.
:param string: The string to escape
:type string: string
:returns: The unescaped version of the string.
:rtype: string
"""
for char, escape in XML_ESCAPES:
string = string.replace(escape, char)
return string
def xml_encode(string):
"""
Escape a string for use within an xml element or attribute.
:param string: The string to escape
:type string: string
:returns: An escaped version of the string.
:rtype: string
"""
for char, escape in XML_ESCAPES:
string = string.replace(char, escape)
return string
def decode_string(s, encoding="utf8"):
"""
Decodes a string and re-encodes it in utf8. If it cannot decode using
`:param:encoding` then it will try to detect the string encoding and
decode it.
:param s: string to decode
:type s: string
:keyword encoding: the encoding to use in the decoding
:type encoding: string
"""
try:
s = s.decode(encoding).encode("utf8", "ignore")
except UnicodeDecodeError:
s = s.decode(chardet.detect(s)["encoding"], "ignore").encode("utf8", "ignore")
return s
def utf8_encoded(s):
"""
Returns a utf8 encoded string of s
:param s: (unicode) string to (re-)encode
:type s: basestring
:returns: a utf8 encoded string of s
:rtype: str
"""
if isinstance(s, str):
s = decode_string(s)
elif isinstance(s, unicode):
s = s.encode("utf8", "ignore")
return s
class VersionSplit(object):
"""
Used for comparing version numbers.
:param ver: the version
:type ver: string
"""
def __init__(self, ver):
ver = ver.lower()
vs = ver.replace("_", "-").split("-")
self.version = [int(x) for x in vs[0].split(".")]
self.suffix = None
self.dev = False
if len(vs) > 1:
if vs[1].startswith(("rc", "alpha", "beta")):
self.suffix = vs[1]
if vs[-1] == 'dev':
self.dev = True
def __cmp__(self, ver):
"""
The comparison method.
:param ver: the version to compare with
:type ver: VersionSplit
"""
# If there is no suffix we use z because we want final
# to appear after alpha, beta, and rc alphabetically.
v1 = [self.version, self.suffix or 'z', self.dev]
v2 = [ver.version, ver.suffix or 'z', ver.dev]
return cmp(v1, v2)
# Common AUTH stuff
AUTH_LEVEL_NONE = 0
AUTH_LEVEL_READONLY = 1
AUTH_LEVEL_NORMAL = 5
AUTH_LEVEL_ADMIN = 10
AUTH_LEVEL_DEFAULT = AUTH_LEVEL_NORMAL
def create_auth_file():
import stat, configmanager
auth_file = configmanager.get_config_dir("auth")
# Check for auth file and create if necessary
if not os.path.exists(auth_file):
fd = open(auth_file, "w")
fd.flush()
os.fsync(fd.fileno())
fd.close()
# Change the permissions on the file so only this user can read/write it
os.chmod(auth_file, stat.S_IREAD | stat.S_IWRITE)
def create_localclient_account(append=False):
import configmanager, random
auth_file = configmanager.get_config_dir("auth")
if not os.path.exists(auth_file):
create_auth_file()
try:
from hashlib import sha1 as sha_hash
except ImportError:
from sha import new as sha_hash
fd = open(auth_file, "a" if append else "w")
fd.write(":".join([
"localclient",
sha_hash(str(random.random())).hexdigest(),
str(AUTH_LEVEL_ADMIN)
]) + '\n')
fd.flush()
os.fsync(fd.fileno())
fd.close()
# Initialize gettext
def setup_translations(setup_pygtk=False):
translations_path = resource_filename("deluge", "i18n")
log.info("Setting up translations from %s", translations_path)
try:
if hasattr(locale, "bindtextdomain"):
locale.bindtextdomain("deluge", translations_path)
if hasattr(locale, "textdomain"):
locale.textdomain("deluge")
gettext.install("deluge", translations_path, unicode=True)
if setup_pygtk:
# Even though we're not using glade anymore, let's set it up so that
# plugins still using it get properly translated.
log.info("Setting up GTK translations from %s", translations_path)
import gtk
import gtk.glade
gtk.glade.bindtextdomain("deluge", translations_path)
gtk.glade.textdomain("deluge")
except Exception, e:
log.error("Unable to initialize gettext/locale!")
log.exception(e)
import __builtin__
__builtin__.__dict__["_"] = lambda x: x

417
deluge/component.py Normal file
View File

@ -0,0 +1,417 @@
#
# component.py
#
# Copyright (C) 2007-2010 Andrew Resch <andrewresch@gmail.com>
#
# Deluge is free software.
#
# You may redistribute it and/or modify it under the terms of the
# GNU General Public License, as published by the Free Software
# Foundation; either version 3 of the License, or (at your option)
# any later version.
#
# deluge is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with deluge. If not, write to:
# The Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor
# Boston, MA 02110-1301, USA.
#
# In addition, as a special exception, the copyright holders give
# permission to link the code of portions of this program with the OpenSSL
# library.
# You must obey the GNU General Public License in all respects for all of
# the code used other than OpenSSL. If you modify file(s) with this
# exception, you may extend this exception to your version of the file(s),
# but you are not obligated to do so. If you do not wish to do so, delete
# this exception statement from your version. If you delete this exception
# statement from all source files in the program, then also delete it here.
#
#
import logging
from twisted.internet.defer import maybeDeferred, succeed, DeferredList, fail
from twisted.internet.task import LoopingCall
log = logging.getLogger(__name__)
class ComponentAlreadyRegistered(Exception):
pass
class Component(object):
"""
Component objects are singletons managed by the :class:`ComponentRegistry`.
When a new Component object is instantiated, it will be automatically
registered with the :class:`ComponentRegistry`.
The ComponentRegistry has the ability to start, stop, pause and shutdown the
components registered with it.
**Events:**
**start()** - This method is called when the client has connected to a
Deluge core.
**stop()** - This method is called when the client has disconnected from a
Deluge core.
**update()** - This method is called every 1 second by default while the
Componented is in a *Started* state. The interval can be
specified during instantiation. The update() timer can be
paused by instructing the :class:`ComponentRegistry` to pause
this Component.
**shutdown()** - This method is called when the client is exiting. If the
Component is in a "Started" state when this is called, a
call to stop() will be issued prior to shutdown().
**States:**
A Component can be in one of these 5 states.
**Started** - The Component has been started by the :class:`ComponentRegistry`
and will have it's update timer started.
**Starting** - The Component has had it's start method called, but it hasn't
fully started yet.
**Stopped** - The Component has either been stopped or has yet to be started.
**Stopping** - The Component has had it's stop method called, but it hasn't
fully stopped yet.
**Paused** - The Component has had it's update timer stopped, but will
still be considered in a Started state.
"""
def __init__(self, name, interval=1, depend=None):
self._component_name = name
self._component_interval = interval
self._component_depend = depend
self._component_state = "Stopped"
self._component_timer = None
self._component_starting_deferred = None
self._component_stopping_deferred = None
_ComponentRegistry.register(self)
def __del__(self):
if _ComponentRegistry:
_ComponentRegistry.deregister(self)
def _component_start_timer(self):
if hasattr(self, "update"):
self._component_timer = LoopingCall(self.update)
self._component_timer.start(self._component_interval)
def _component_start(self):
def on_start(result):
self._component_state = "Started"
self._component_starting_deferred = None
self._component_start_timer()
return True
def on_start_fail(result):
self._component_state = "Stopped"
self._component_starting_deferred = None
log.error(result)
return result
if self._component_state == "Stopped":
if hasattr(self, "start"):
self._component_state = "Starting"
d = maybeDeferred(self.start)
d.addCallback(on_start)
d.addErrback(on_start_fail)
self._component_starting_deferred = d
else:
d = maybeDeferred(on_start, None)
elif self._component_state == "Starting":
return self._component_starting_deferred
elif self._component_state == "Started":
d = succeed(True)
else:
d = fail("Cannot start a component not in a Stopped state!")
return d
def _component_stop(self):
def on_stop(result):
self._component_state = "Stopped"
if self._component_timer and self._component_timer.running:
self._component_timer.stop()
return True
def on_stop_fail(result):
self._component_state = "Started"
self._component_stopping_deferred = None
log.error(result)
return result
if self._component_state != "Stopped" and self._component_state != "Stopping":
if hasattr(self, "stop"):
self._component_state = "Stopping"
d = maybeDeferred(self.stop)
d.addCallback(on_stop)
d.addErrback(on_stop_fail)
self._component_stopping_deferred = d
else:
d = maybeDeferred(on_stop, None)
if self._component_state == "Stopping":
return self._component_stopping_deferred
return succeed(None)
def _component_pause(self):
def on_pause(result):
self._component_state = "Paused"
if self._component_state == "Started":
if self._component_timer and self._component_timer.running:
d = maybeDeferred(self._component_timer.stop)
d.addCallback(on_pause)
else:
d = succeed(None)
elif self._component_state == "Paused":
d = succeed(None)
else:
d = fail("Cannot pause a component in a non-Started state!")
return d
def _component_resume(self):
def on_resume(result):
self._component_state = "Started"
if self._component_state == "Paused":
d = maybeDeferred(self._component_start_timer)
d.addCallback(on_resume)
else:
d = fail("Component cannot be resumed from a non-Paused state!")
return d
def _component_shutdown(self):
def on_stop(result):
if hasattr(self, "shutdown"):
return maybeDeferred(self.shutdown)
return succeed(None)
d = self._component_stop()
d.addCallback(on_stop)
return d
class ComponentRegistry(object):
"""
The ComponentRegistry holds a list of currently registered
:class:`Component` objects. It is used to manage the Components by
starting, stopping, pausing and shutting them down.
"""
def __init__(self):
self.components = {}
def register(self, obj):
"""
Registers a component object with the registry. This is done
automatically when a Component object is instantiated.
:param obj: the Component object
:type obj: object
:raises ComponentAlreadyRegistered: if a component with the same name is already registered.
"""
name = obj._component_name
if name in self.components:
raise ComponentAlreadyRegistered(
"Component already registered with name %s" % name)
self.components[obj._component_name] = obj
def deregister(self, obj):
"""
Deregisters a component from the registry. A stop will be
issued to the component prior to deregistering it.
:param obj: the Component object
:type obj: object
"""
if obj in self.components.values():
log.debug("Deregistering Component: %s", obj._component_name)
d = self.stop([obj._component_name])
def on_stop(result, name):
del self.components[name]
return d.addCallback(on_stop, obj._component_name)
else:
return succeed(None)
def start(self, names=[]):
"""
Starts Components that are currently in a Stopped state and their
dependencies. If *names* is specified, will only start those
Components and their dependencies and if not it will start all
registered components.
:param names: a list of Components to start
:type names: list
:returns: a Deferred object that will fire once all Components have been sucessfully started
:rtype: twisted.internet.defer.Deferred
"""
# Start all the components if names is empty
if not names:
names = self.components.keys()
elif isinstance(names, str):
names = [names]
def on_depends_started(result, name):
return self.components[name]._component_start()
deferreds = []
for name in names:
if self.components[name]._component_depend:
# This component has depends, so we need to start them first.
d = self.start(self.components[name]._component_depend)
d.addCallback(on_depends_started, name)
deferreds.append(d)
else:
deferreds.append(self.components[name]._component_start())
return DeferredList(deferreds)
def stop(self, names=[]):
"""
Stops Components that are currently not in a Stopped state. If
*names* is specified, then it will only stop those Components,
and if not it will stop all the registered Components.
:param names: a list of Components to start
:type names: list
:returns: a Deferred object that will fire once all Components have been sucessfully stopped
:rtype: twisted.internet.defer.Deferred
"""
if not names:
names = self.components.keys()
elif isinstance(names, str):
names = [names]
deferreds = []
for name in names:
if name in self.components:
deferreds.append(self.components[name]._component_stop())
return DeferredList(deferreds)
def pause(self, names=[]):
"""
Pauses Components that are currently in a Started state. If
*names* is specified, then it will only pause those Components,
and if not it will pause all the registered Components.
:param names: a list of Components to pause
:type names: list
:returns: a Deferred object that will fire once all Components have been sucessfully paused
:rtype: twisted.internet.defer.Deferred
"""
if not names:
names = self.components.keys()
elif isinstance(names, str):
names = [names]
deferreds = []
for name in names:
if self.components[name]._component_state == "Started":
deferreds.append(self.components[name]._component_pause())
return DeferredList(deferreds)
def resume(self, names=[]):
"""
Resumes Components that are currently in a Paused state. If
*names* is specified, then it will only resume those Components,
and if not it will resume all the registered Components.
:param names: a list of Components to resume
:type names: list
:returns: a Deferred object that will fire once all Components have been sucessfully resumed
:rtype: twisted.internet.defer.Deferred
"""
if not names:
names = self.components.keys()
elif isinstance(names, str):
names = [names]
deferreds = []
for name in names:
if self.components[name]._component_state == "Paused":
deferreds.append(self.components[name]._component_resume())
return DeferredList(deferreds)
def shutdown(self):
"""
Shutdowns all Components regardless of state. This will call
:meth:`stop` on call the components prior to shutting down. This should
be called when the program is exiting to ensure all Components have a
chance to properly shutdown.
:returns: a Deferred object that will fire once all Components have been sucessfully resumed
:rtype: twisted.internet.defer.Deferred
"""
deferreds = []
for component in self.components.values():
deferreds.append(component._component_shutdown())
return DeferredList(deferreds)
def update(self):
"""
Updates all Components that are in a Started state.
"""
for component in self.components.items():
component.update()
_ComponentRegistry = ComponentRegistry()
deregister = _ComponentRegistry.deregister
start = _ComponentRegistry.start
stop = _ComponentRegistry.stop
pause = _ComponentRegistry.pause
resume = _ComponentRegistry.resume
update = _ComponentRegistry.update
shutdown = _ComponentRegistry.shutdown
def get(name):
"""
Return a reference to a component.
:param name: the Component name to get
:type name: string
:returns: the Component object
:rtype: object
:raises KeyError: if the Component does not exist
"""
return _ComponentRegistry.components[name]

526
deluge/config.py Normal file
View File

@ -0,0 +1,526 @@
#
# config.py
#
# Copyright (C) 2008 Andrew Resch <andrewresch@gmail.com>
#
# Deluge is free software.
#
# You may redistribute it and/or modify it under the terms of the
# GNU General Public License, as published by the Free Software
# Foundation; either version 3 of the License, or (at your option)
# any later version.
#
# deluge is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with deluge. If not, write to:
# The Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor
# Boston, MA 02110-1301, USA.
#
# In addition, as a special exception, the copyright holders give
# permission to link the code of portions of this program with the OpenSSL
# library.
# You must obey the GNU General Public License in all respects for all of
# the code used other than OpenSSL. If you modify file(s) with this
# exception, you may extend this exception to your version of the file(s),
# but you are not obligated to do so. If you do not wish to do so, delete
# this exception statement from your version. If you delete this exception
# statement from all source files in the program, then also delete it here.
#
#
"""
Deluge Config Module
This module is used for loading and saving of configuration files.. or anything
really.
The format of the config file is two json encoded dicts:
<version dict>
<content dict>
The version dict contains two keys: file and format. The format version is
controlled by the Config class. It should only be changed when anything below
it is changed directly by the Config class. An example of this would be if we
changed the serializer for the content to something different.
The config file version is changed by the 'owner' of the config file. This is
to signify that there is a change in the naming of some config keys or something
similar along those lines.
The content is simply the dict to be saved and will be serialized before being
written.
Converting
Since the format of the config could change, there needs to be a way to have
the Config object convert to newer formats. To do this, you will need to
register conversion functions for various versions of the config file. Note that
this can only be done for the 'config file version' and not for the 'format'
version as this will be done internally.
"""
import cPickle as pickle
import logging
import shutil
import os
import deluge.common
json = deluge.common.json
log = logging.getLogger(__name__)
def prop(func):
"""Function decorator for defining property attributes
The decorated function is expected to return a dictionary
containing one or more of the following pairs:
fget - function for getting attribute value
fset - function for setting attribute value
fdel - function for deleting attribute
This can be conveniently constructed by the locals() builtin
function; see:
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/205183
"""
return property(doc=func.__doc__, **func())
def find_json_objects(s):
"""
Find json objects in a string.
:param s: the string to find json objects in
:type s: string
:returns: a list of tuples containing start and end locations of json objects in the string `s`
:rtype: [(start, end), ...]
"""
objects = []
opens = 0
start = s.find("{")
offset = start
if start < 0:
return []
for index, c in enumerate(s[offset:]):
if c == "{":
opens += 1
elif c == "}":
opens -= 1
if opens == 0:
objects.append((start, index+offset+1))
start = index + offset + 1
return objects
class Config(object):
"""
This class is used to access/create/modify config files
:param filename: the name of the config file
:param defaults: dictionary of default values
:param config_dir: the path to the config directory
"""
def __init__(self, filename, defaults=None, config_dir=None):
self.__config = {}
self.__set_functions = {}
self.__change_callbacks = []
# These hold the version numbers and they will be set when loaded
self.__version = {
"format": 1,
"file": 1
}
# This will get set with a reactor.callLater whenever a config option
# is set.
self._save_timer = None
if defaults:
for key, value in defaults.iteritems():
self.set_item(key, value)
# Load the config from file in the config_dir
if config_dir:
self.__config_file = os.path.join(config_dir, filename)
else:
self.__config_file = deluge.common.get_default_config_dir(filename)
self.load()
def __contains__(self, item):
return item in self.__config
def __setitem__(self, key, value):
"""
See
:meth:`set_item`
"""
return self.set_item(key, value)
def set_item(self, key, value):
"""
Sets item 'key' to 'value' in the config dictionary, but does not allow
changing the item's type unless it is None. If the types do not match,
it will attempt to convert it to the set type before raising a ValueError.
:param key: string, item to change to change
:param value: the value to change item to, must be same type as what is currently in the config
:raises ValueError: raised when the type of value is not the same as\
what is currently in the config and it could not convert the value
**Usage**
>>> config = Config("test.conf")
>>> config["test"] = 5
>>> config["test"]
5
"""
if isinstance(value, basestring):
value = deluge.common.utf8_encoded(value)
if not self.__config.has_key(key):
self.__config[key] = value
log.debug("Setting '%s' to %s of %s", key, value, type(value))
return
if self.__config[key] == value:
return
# Do not allow the type to change unless it is None
oldtype, newtype = type(self.__config[key]), type(value)
if value is not None and oldtype != type(None) and oldtype != newtype:
try:
if oldtype == unicode:
value = oldtype(value, "utf8")
else:
value = oldtype(value)
except ValueError:
log.warning("Type '%s' invalid for '%s'", newtype, key)
raise
log.debug("Setting '%s' to %s of %s", key, value, type(value))
self.__config[key] = value
# Run the set_function for this key if any
from twisted.internet import reactor
try:
for func in self.__set_functions[key]:
reactor.callLater(0, func, key, value)
except KeyError:
pass
try:
def do_change_callbacks(key, value):
for func in self.__change_callbacks:
func(key, value)
reactor.callLater(0, do_change_callbacks, key, value)
except:
pass
# We set the save_timer for 5 seconds if not already set
if not self._save_timer or not self._save_timer.active():
self._save_timer = reactor.callLater(5, self.save)
def __getitem__(self, key):
"""
See
:meth:`get_item`
"""
return self.get_item(key)
def get_item(self, key):
"""
Gets the value of item 'key'
:param key: the item for which you want it's value
:return: the value of item 'key'
:raises KeyError: if 'key' is not in the config dictionary
**Usage**
>>> config = Config("test.conf", defaults={"test": 5})
>>> config["test"]
5
"""
if isinstance(self.__config[key], str):
try:
return self.__config[key].decode("utf8")
except UnicodeDecodeError:
return self.__config[key]
else:
return self.__config[key]
def __delitem__(self, key):
"""
See
:meth:`del_item`
"""
self.del_item(key)
def del_item(self, key):
"""
Deletes item with a specific key from the configuration.
:param key: the item which you wish to delete.
:raises KeyError: if 'key' is not in the config dictionary
**Usage**
>>> config = Config("test.conf", defaults={"test": 5})
>>> del config["test"]
"""
del self.__config[key]
# We set the save_timer for 5 seconds if not already set
from twisted.internet import reactor
if not self._save_timer or not self._save_timer.active():
self._save_timer = reactor.callLater(5, self.save)
def register_change_callback(self, callback):
"""
Registers a callback function that will be called when a value is changed in the config dictionary
:param callback: the function, callback(key, value)
**Usage**
>>> config = Config("test.conf", defaults={"test": 5})
>>> def cb(key, value):
... print key, value
...
>>> config.register_change_callback(cb)
"""
self.__change_callbacks.append(callback)
def register_set_function(self, key, function, apply_now=True):
"""
Register a function to be called when a config value changes
:param key: the item to monitor for change
:param function: the function to call when the value changes, f(key, value)
:keyword apply_now: if True, the function will be called after it's registered
**Usage**
>>> config = Config("test.conf", defaults={"test": 5})
>>> def cb(key, value):
... print key, value
...
>>> config.register_set_function("test", cb, apply_now=True)
test 5
"""
log.debug("Registering function for %s key..", key)
if key not in self.__set_functions:
self.__set_functions[key] = []
self.__set_functions[key].append(function)
# Run the function now if apply_now is set
if apply_now:
function(key, self.__config[key])
return
def apply_all(self):
"""
Calls all set functions
**Usage**
>>> config = Config("test.conf", defaults={"test": 5})
>>> def cb(key, value):
... print key, value
...
>>> config.register_set_function("test", cb, apply_now=False)
>>> config.apply_all()
test 5
"""
log.debug("Calling all set functions..")
for key, value in self.__set_functions.iteritems():
for func in value:
func(key, self.__config[key])
def apply_set_functions(self, key):
"""
Calls set functions for `:param:key`.
:param key: str, the config key
"""
log.debug("Calling set functions for key %s..", key)
if key in self.__set_functions:
for func in self.__set_functions[key]:
func(key, self.__config[key])
def load(self, filename=None):
"""
Load a config file
:param filename: if None, uses filename set in object initialization
"""
if not filename:
filename = self.__config_file
try:
data = open(filename, "rb").read()
except IOError, e:
log.warning("Unable to open config file %s: %s", filename, e)
return
objects = find_json_objects(data)
if not len(objects):
# No json objects found, try depickling it
try:
self.__config.update(pickle.loads(data))
except Exception, e:
log.exception(e)
log.warning("Unable to load config file: %s", filename)
elif len(objects) == 1:
start, end = objects[0]
try:
self.__config.update(json.loads(data[start:end]))
except Exception, e:
log.exception(e)
log.warning("Unable to load config file: %s", filename)
elif len(objects) == 2:
try:
start, end = objects[0]
self.__version.update(json.loads(data[start:end]))
start, end = objects[1]
self.__config.update(json.loads(data[start:end]))
except Exception, e:
log.exception(e)
log.warning("Unable to load config file: %s", filename)
log.debug("Config %s version: %s.%s loaded: %s", filename,
self.__version["format"], self.__version["file"], self.__config)
def save(self, filename=None):
"""
Save configuration to disk
:param filename: if None, uses filename set in object initiliazation
:rtype bool:
:return: whether or not the save succeeded.
"""
if not filename:
filename = self.__config_file
# Check to see if the current config differs from the one on disk
# We will only write a new config file if there is a difference
try:
data = open(filename, "rb").read()
objects = find_json_objects(data)
start, end = objects[0]
version = json.loads(data[start:end])
start, end = objects[1]
loaded_data = json.loads(data[start:end])
if self.__config == loaded_data and self.__version == version:
# The config has not changed so lets just return
if self._save_timer and self._save_timer.active():
self._save_timer.cancel()
return True
except IOError, e:
log.warning("Unable to open config file: %s because: %s", filename, e)
# Save the new config and make sure it's written to disk
try:
log.debug("Saving new config file %s", filename + ".new")
f = open(filename + ".new", "wb")
json.dump(self.__version, f, indent=2)
json.dump(self.__config, f, indent=2)
f.flush()
os.fsync(f.fileno())
f.close()
except IOError, e:
log.error("Error writing new config file: %s", e)
return False
# Make a backup of the old config
try:
log.debug("Backing up old config file to %s~", filename)
shutil.move(filename, filename + "~")
except Exception, e:
log.error("Error backing up old config..")
# The new config file has been written successfully, so let's move it over
# the existing one.
try:
log.debug("Moving new config file %s to %s..", filename + ".new", filename)
shutil.move(filename + ".new", filename)
except Exception, e:
log.error("Error moving new config file: %s", e)
return False
else:
return True
finally:
if self._save_timer and self._save_timer.active():
self._save_timer.cancel()
def run_converter(self, input_range, output_version, func):
"""
Runs a function that will convert file versions in the `:param:input_range`
to the `:param:output_version`.
:param input_range: tuple, (int, int) the range of input versions this
function will accept
:param output_version: int, the version this function will return
:param func: func, the function that will do the conversion, it will take
the config dict as an argument and return the augmented dict
:raises ValueError: if the output_version is less than the input_range
"""
if output_version in input_range or output_version <= max(input_range):
raise ValueError("output_version needs to be greater than input_range")
if self.__version["file"] not in input_range:
log.debug("File version %s is not in input_range %s, ignoring converter function..",
self.__version["file"], input_range)
return
try:
self.__config = func(self.__config)
except Exception, e:
log.exception(e)
log.error("There was an exception try to convert config file %s %s to %s",
self.__config_file, self.__version["file"], output_version)
raise e
else:
self.__version["file"] = output_version
self.save()
@property
def config_file(self):
return self.__config_file
@prop
def config():
"""The config dictionary"""
def fget(self):
return self.__config
def fdel(self):
return self.save()
return locals()

138
deluge/configmanager.py Normal file
View File

@ -0,0 +1,138 @@
#
# configmanager.py
#
# Copyright (C) 2007 Andrew Resch <andrewresch@gmail.com>
#
# Deluge is free software.
#
# You may redistribute it and/or modify it under the terms of the
# GNU General Public License, as published by the Free Software
# Foundation; either version 3 of the License, or (at your option)
# any later version.
#
# deluge is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with deluge. If not, write to:
# The Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor
# Boston, MA 02110-1301, USA.
#
# In addition, as a special exception, the copyright holders give
# permission to link the code of portions of this program with the OpenSSL
# library.
# You must obey the GNU General Public License in all respects for all of
# the code used other than OpenSSL. If you modify file(s) with this
# exception, you may extend this exception to your version of the file(s),
# but you are not obligated to do so. If you do not wish to do so, delete
# this exception statement from your version. If you delete this exception
# statement from all source files in the program, then also delete it here.
#
#
import os
import logging
import deluge.common
import deluge.log
from deluge.config import Config
log = logging.getLogger(__name__)
class _ConfigManager:
def __init__(self):
log.debug("ConfigManager started..")
self.config_files = {}
self.__config_directory = None
@property
def config_directory(self):
if self.__config_directory is None:
self.__config_directory = deluge.common.get_default_config_dir()
return self.__config_directory
def __del__(self):
del self.config_files
def set_config_dir(self, directory):
"""
Sets the config directory.
:param directory: str, the directory where the config info should be
:returns bool: True if successfully changed directory, False if not
"""
if not directory:
return False
log.info("Setting config directory to: %s", directory)
if not os.path.exists(directory):
# Try to create the config folder if it doesn't exist
try:
os.makedirs(directory)
except Exception, e:
log.error("Unable to make config directory: %s", e)
return False
elif not os.path.isdir(directory):
log.error("Config directory needs to be a directory!")
return False
self.__config_directory = directory
# Reset the config_files so we don't get config from old config folder
# XXX: Probably should have it go through the config_files dict and try
# to reload based on the new config directory
self.save()
self.config_files = {}
deluge.log.tweak_logging_levels()
return True
def get_config_dir(self):
return self.config_directory
def close(self, config):
"""Closes a config file."""
try:
del self.config_files[config]
except KeyError:
pass
def save(self):
"""Saves all the configs to disk."""
for value in self.config_files.values():
value.save()
# We need to return True to keep the timer active
return True
def get_config(self, config_file, defaults=None):
"""Get a reference to the Config object for this filename"""
log.debug("Getting config '%s'", config_file)
# Create the config object if not already created
if config_file not in self.config_files.keys():
self.config_files[config_file] = Config(config_file, defaults, self.config_directory)
return self.config_files[config_file]
# Singleton functions
_configmanager = _ConfigManager()
def ConfigManager(config, defaults=None):
return _configmanager.get_config(config, defaults)
def set_config_dir(directory):
"""Sets the config directory, else just uses default"""
return _configmanager.set_config_dir(directory)
def get_config_dir(filename=None):
if filename != None:
return os.path.join(_configmanager.get_config_dir(), filename)
else:
return _configmanager.get_config_dir()
def close(config):
return _configmanager.close(config)

133
deluge/core/alertmanager.py Normal file
View File

@ -0,0 +1,133 @@
#
# alertmanager.py
#
# Copyright (C) 2007-2009 Andrew Resch <andrewresch@gmail.com>
#
# Deluge is free software.
#
# You may redistribute it and/or modify it under the terms of the
# GNU General Public License, as published by the Free Software
# Foundation; either version 3 of the License, or (at your option)
# any later version.
#
# deluge is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with deluge. If not, write to:
# The Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor
# Boston, MA 02110-1301, USA.
#
# In addition, as a special exception, the copyright holders give
# permission to link the code of portions of this program with the OpenSSL
# library.
# You must obey the GNU General Public License in all respects for all of
# the code used other than OpenSSL. If you modify file(s) with this
# exception, you may extend this exception to your version of the file(s),
# but you are not obligated to do so. If you do not wish to do so, delete
# this exception statement from your version. If you delete this exception
# statement from all source files in the program, then also delete it here.
#
"""
The AlertManager handles all the libtorrent alerts.
This should typically only be used by the Core. Plugins should utilize the
`:mod:EventManager` for similar functionality.
"""
import logging
from twisted.internet import reactor
import deluge.component as component
from deluge._libtorrent import lt
log = logging.getLogger(__name__)
class AlertManager(component.Component):
def __init__(self):
log.debug("AlertManager initialized..")
component.Component.__init__(self, "AlertManager", interval=0.05)
self.session = component.get("Core").session
self.session.set_alert_mask(
lt.alert.category_t.error_notification |
lt.alert.category_t.port_mapping_notification |
lt.alert.category_t.storage_notification |
lt.alert.category_t.tracker_notification |
lt.alert.category_t.status_notification |
lt.alert.category_t.ip_block_notification |
lt.alert.category_t.performance_warning)
# handlers is a dictionary of lists {"alert_type": [handler1,h2,..]}
self.handlers = {}
self.delayed_calls = []
def update(self):
self.delayed_calls = [dc for dc in self.delayed_calls if dc.active()]
self.handle_alerts()
def stop(self):
for dc in self.delayed_calls:
dc.cancel()
self.delayed_calls = []
def register_handler(self, alert_type, handler):
"""
Registers a function that will be called when 'alert_type' is pop'd
in handle_alerts. The handler function should look like: handler(alert)
Where 'alert' is the actual alert object from libtorrent.
:param alert_type: str, this is string representation of the alert name
:param handler: func(alert), the function to be called when the alert is raised
"""
if alert_type not in self.handlers:
# There is no entry for this alert type yet, so lets make it with an
# empty list.
self.handlers[alert_type] = []
# Append the handler to the list in the handlers dictionary
self.handlers[alert_type].append(handler)
log.debug("Registered handler for alert %s", alert_type)
def deregister_handler(self, handler):
"""
De-registers the `:param:handler` function from all alert types.
:param handler: func, the handler function to deregister
"""
# Iterate through all handlers and remove 'handler' where found
for (key, value) in self.handlers.items():
if handler in value:
# Handler is in this alert type list
value.remove(handler)
def handle_alerts(self, wait=False):
"""
Pops all libtorrent alerts in the session queue and handles them
appropriately.
:param wait: bool, if True then the handler functions will be run right
away and waited to return before processing the next alert
"""
alert = self.session.pop_alert()
# Loop through all alerts in the queue
while alert is not None:
alert_type = type(alert).__name__
# Display the alert message
log.debug("%s: %s", alert_type, alert.message())
# Call any handlers for this alert type
if alert_type in self.handlers:
for handler in self.handlers[alert_type]:
if not wait:
self.delayed_calls.append(reactor.callLater(0, handler, alert))
else:
handler(alert)
alert = self.session.pop_alert()

289
deluge/core/authmanager.py Normal file
View File

@ -0,0 +1,289 @@
#
# authmanager.py
#
# Copyright (C) 2009 Andrew Resch <andrewresch@gmail.com>
# Copyright (C) 2011 Pedro Algarvio <pedro@algarvio.me>
#
# Deluge is free software.
#
# You may redistribute it and/or modify it under the terms of the
# GNU General Public License, as published by the Free Software
# Foundation; either version 3 of the License, or (at your option)
# any later version.
#
# deluge is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with deluge. If not, write to:
# The Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor
# Boston, MA 02110-1301, USA.
#
# In addition, as a special exception, the copyright holders give
# permission to link the code of portions of this program with the OpenSSL
# library.
# You must obey the GNU General Public License in all respects for all of
# the code used other than OpenSSL. If you modify file(s) with this
# exception, you may extend this exception to your version of the file(s),
# but you are not obligated to do so. If you do not wish to do so, delete
# this exception statement from your version. If you delete this exception
# statement from all source files in the program, then also delete it here.
#
#
import os
import random
import stat
import shutil
import logging
import deluge.component as component
import deluge.configmanager as configmanager
from deluge.common import (AUTH_LEVEL_ADMIN, AUTH_LEVEL_NONE, AUTH_LEVEL_NORMAL,
AUTH_LEVEL_READONLY, AUTH_LEVEL_DEFAULT,
create_localclient_account)
from deluge.error import AuthManagerError, AuthenticationRequired, BadLoginError
log = logging.getLogger(__name__)
AUTH_LEVELS_MAPPING = {
'NONE': AUTH_LEVEL_NONE,
'READONLY': AUTH_LEVEL_READONLY,
'DEFAULT': AUTH_LEVEL_NORMAL,
'NORMAL': AUTH_LEVEL_DEFAULT,
'ADMIN': AUTH_LEVEL_ADMIN
}
AUTH_LEVELS_MAPPING_REVERSE = {}
for key, value in AUTH_LEVELS_MAPPING.iteritems():
AUTH_LEVELS_MAPPING_REVERSE[value] = key
class Account(object):
__slots__ = ('username', 'password', 'authlevel')
def __init__(self, username, password, authlevel):
self.username = username
self.password = password
self.authlevel = authlevel
def data(self):
return {
'username': self.username,
'password': self.password,
'authlevel': AUTH_LEVELS_MAPPING_REVERSE[self.authlevel],
'authlevel_int': self.authlevel
}
def __repr__(self):
return ('<Account username="%(username)s" authlevel=%(authlevel)s>' %
self.__dict__)
class AuthManager(component.Component):
def __init__(self):
component.Component.__init__(self, "AuthManager", interval=10)
self.__auth = {}
self.__auth_modification_time = None
def start(self):
self.__load_auth_file()
def stop(self):
self.__auth = {}
def shutdown(self):
pass
def update(self):
auth_file = configmanager.get_config_dir("auth")
# Check for auth file and create if necessary
if not os.path.exists(auth_file):
log.info("Authfile not found, recreating it.")
self.__load_auth_file()
return
auth_file_modification_time = os.stat(auth_file).st_mtime
if self.__auth_modification_time != auth_file_modification_time:
log.info("Auth file changed, reloading it!")
self.__load_auth_file()
def authorize(self, username, password):
"""
Authorizes users based on username and password
:param username: str, username
:param password: str, password
:returns: int, the auth level for this user
:rtype: int
:raises AuthenticationRequired: if aditional details are required to
authenticate.
:raises BadLoginError: if the username does not exist or password does
not match.
"""
if not username:
raise AuthenticationRequired(
"Username and Password are required.", username
)
if username not in self.__auth:
# Let's try to re-load the file.. Maybe it's been updated
self.__load_auth_file()
if username not in self.__auth:
raise BadLoginError("Username does not exist", username)
if self.__auth[username].password == password:
# Return the users auth level
return self.__auth[username].authlevel
elif not password and self.__auth[username].password:
raise AuthenticationRequired("Password is required", username)
else:
raise BadLoginError("Password does not match", username)
def has_account(self, username):
return username in self.__auth
def get_known_accounts(self):
"""
Returns a list of known deluge usernames.
"""
self.__load_auth_file()
return [account.data() for account in self.__auth.values()]
def create_account(self, username, password, authlevel):
if username in self.__auth:
raise AuthManagerError("Username in use.", username)
try:
self.__auth[username] = Account(username, password,
AUTH_LEVELS_MAPPING[authlevel])
self.write_auth_file()
return True
except Exception, err:
log.exception(err)
raise err
def update_account(self, username, password, authlevel):
if username not in self.__auth:
raise AuthManagerError("Username not known", username)
try:
self.__auth[username].username = username
self.__auth[username].password = password
self.__auth[username].authlevel = AUTH_LEVELS_MAPPING[authlevel]
self.write_auth_file()
return True
except Exception, err:
log.exception(err)
raise err
def remove_account(self, username):
if username not in self.__auth:
raise AuthManagerError("Username not known", username)
elif username == component.get("RPCServer").get_session_user():
raise AuthManagerError(
"You cannot delete your own account while logged in!", username
)
del self.__auth[username]
self.write_auth_file()
return True
def write_auth_file(self):
old_auth_file = configmanager.get_config_dir("auth")
new_auth_file = old_auth_file + '.new'
bak_auth_file = old_auth_file + '.bak'
# Let's first create a backup
if os.path.exists(old_auth_file):
shutil.copy2(old_auth_file, bak_auth_file)
try:
fd = open(new_auth_file, "w")
for account in self.__auth.values():
fd.write(
"%(username)s:%(password)s:%(authlevel_int)s\n" %
account.data()
)
fd.flush()
os.fsync(fd.fileno())
fd.close()
os.rename(new_auth_file, old_auth_file)
except:
# Something failed, let's restore the previous file
if os.path.exists(bak_auth_file):
os.rename(bak_auth_file, old_auth_file)
self.__load_auth_file()
def __load_auth_file(self):
save_and_reload = False
auth_file = configmanager.get_config_dir("auth")
# Check for auth file and create if necessary
if not os.path.exists(auth_file):
create_localclient_account()
return self.__load_auth_file()
auth_file_modification_time = os.stat(auth_file).st_mtime
if self.__auth_modification_time is None:
self.__auth_modification_time = auth_file_modification_time
elif self.__auth_modification_time == auth_file_modification_time:
# File didn't change, no need for re-parsing's
return
# Load the auth file into a dictionary: {username: Account(...)}
f = open(auth_file, "r").readlines()
for line in f:
if line.startswith("#"):
# This is a comment line
continue
line = line.strip()
try:
lsplit = line.split(":")
except Exception, e:
log.error("Your auth file is malformed: %s", e)
continue
if len(lsplit) == 2:
username, password = lsplit
log.warning("Your auth entry for %s contains no auth level, "
"using AUTH_LEVEL_DEFAULT(%s)..", username,
AUTH_LEVEL_DEFAULT)
if username == 'localclient':
authlevel = AUTH_LEVEL_ADMIN
else:
authlevel = AUTH_LEVEL_DEFAULT
# This is probably an old auth file
save_and_reload = True
elif len(lsplit) == 3:
username, password, authlevel = lsplit
else:
log.error("Your auth file is malformed: "
"Incorrect number of fields!")
continue
username = username.strip()
password = password.strip()
try:
authlevel = int(authlevel)
except ValueError:
try:
authlevel = AUTH_LEVELS_MAPPING[authlevel]
except KeyError:
log.error("Your auth file is malformed: %r is not a valid auth "
"level" % authlevel)
continue
self.__auth[username] = Account(username, password, authlevel)
if "localclient" not in self.__auth:
create_localclient_account(True)
return self.__load_auth_file()
if save_and_reload:
log.info("Re-writing auth file (upgrade)")
self.write_auth_file()
self.__auth_modification_time = auth_file_modification_time

884
deluge/core/core.py Normal file
View File

@ -0,0 +1,884 @@
#
# core.py
#
# Copyright (C) 2007-2009 Andrew Resch <andrewresch@gmail.com>
# Copyright (C) 2011 Pedro Algarvio <pedro@algarvio.me>
#
# Deluge is free software.
#
# You may redistribute it and/or modify it under the terms of the
# GNU General Public License, as published by the Free Software
# Foundation; either version 3 of the License, or (at your option)
# any later version.
#
# deluge is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with deluge. If not, write to:
# The Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor
# Boston, MA 02110-1301, USA.
#
# In addition, as a special exception, the copyright holders give
# permission to link the code of portions of this program with the OpenSSL
# library.
# You must obey the GNU General Public License in all respects for all of
# the code used other than OpenSSL. If you modify file(s) with this
# exception, you may extend this exception to your version of the file(s),
# but you are not obligated to do so. If you do not wish to do so, delete
# this exception statement from your version. If you delete this exception
# statement from all source files in the program, then also delete it here.
#
#
from deluge._libtorrent import lt
import os
import glob
import base64
import logging
import threading
import tempfile
from urlparse import urljoin
import twisted.web.client
import twisted.web.error
from deluge.httpdownloader import download_file
import deluge.configmanager
import deluge.common
import deluge.component as component
from deluge.event import *
from deluge.error import *
from deluge.core.authmanager import AUTH_LEVEL_ADMIN, AUTH_LEVEL_NONE
from deluge.core.authmanager import AUTH_LEVELS_MAPPING, AUTH_LEVELS_MAPPING_REVERSE
from deluge.core.torrentmanager import TorrentManager
from deluge.core.pluginmanager import PluginManager
from deluge.core.alertmanager import AlertManager
from deluge.core.filtermanager import FilterManager
from deluge.core.preferencesmanager import PreferencesManager
from deluge.core.authmanager import AuthManager
from deluge.core.eventmanager import EventManager
from deluge.core.rpcserver import export
log = logging.getLogger(__name__)
class Core(component.Component):
def __init__(self, listen_interface=None):
log.debug("Core init..")
component.Component.__init__(self, "Core")
# Start the libtorrent session
log.info("Starting libtorrent %s session..", lt.version)
# Create the client fingerprint
version = [int(value.split("-")[0]) for value in
deluge.common.get_version().split(".")]
while len(version) < 4:
version.append(0)
self.session = lt.session(lt.fingerprint("DE", *version), flags=0)
# Load the session state if available
self.__load_session_state()
# Set the user agent
self.settings = lt.session_settings()
self.settings.user_agent = "Deluge/%(deluge_version)s Libtorrent/%(lt_version)s" % \
{ 'deluge_version': deluge.common.get_version(),
'lt_version': self.get_libtorrent_version().rpartition(".")[0] }
# Set session settings
self.settings.send_redundant_have = True
if deluge.common.windows_check():
self.settings.disk_io_write_mode = \
lt.io_buffer_mode_t.disable_os_cache
self.settings.disk_io_read_mode = \
lt.io_buffer_mode_t.disable_os_cache
self.session.set_settings(self.settings)
# Load metadata extension
self.session.add_extension(lt.create_metadata_plugin)
self.session.add_extension(lt.create_ut_metadata_plugin)
self.session.add_extension(lt.create_smart_ban_plugin)
# Create the components
self.eventmanager = EventManager()
self.preferencesmanager = PreferencesManager()
self.alertmanager = AlertManager()
self.pluginmanager = PluginManager(self)
self.torrentmanager = TorrentManager()
self.filtermanager = FilterManager(self)
self.authmanager = AuthManager()
# New release check information
self.new_release = None
# Get the core config
self.config = deluge.configmanager.ConfigManager("core.conf")
self.config.run_converter((0, 1), 2, self.__migrate_config_1_to_2)
self.config.save()
# If there was an interface value from the command line, use it, but
# store the one in the config so we can restore it on shutdown
self.__old_interface = None
if listen_interface:
self.__old_interface = self.config["listen_interface"]
self.config["listen_interface"] = listen_interface
def start(self):
"""Starts the core"""
# New release check information
self.__new_release = None
def stop(self):
# Save the DHT state if necessary
if self.config["dht"]:
self.save_dht_state()
# Save the libtorrent session state
self.__save_session_state()
# We stored a copy of the old interface value
if self.__old_interface:
self.config["listen_interface"] = self.__old_interface
# Make sure the config file has been saved
self.config.save()
def shutdown(self):
pass
def __save_session_state(self):
"""Saves the libtorrent session state"""
try:
session_state = deluge.configmanager.get_config_dir("session.state")
open(session_state, "wb").write(lt.bencode(self.session.state()))
except Exception, e:
log.warning("Failed to save lt state: %s", e)
def __load_session_state(self):
"""Loads the libtorrent session state"""
try:
session_state = deluge.configmanager.get_config_dir("session.state")
self.session.load_state(lt.bdecode(open(session_state, "rb").read()))
except Exception, e:
log.warning("Failed to load lt state: %s", e)
def __migrate_config_1_to_2(self, config):
if 'sequential_download' not in config:
config['sequential_download'] = False
return config
def save_dht_state(self):
"""Saves the dht state to a file"""
try:
dht_data = open(deluge.configmanager.get_config_dir("dht.state"), "wb")
dht_data.write(lt.bencode(self.session.dht_state()))
dht_data.close()
except Exception, e:
log.warning("Failed to save dht state: %s", e)
def get_new_release(self):
log.debug("get_new_release")
from urllib2 import urlopen
try:
self.new_release = urlopen(
"http://download.deluge-torrent.org/version-1.0").read().strip()
except Exception, e:
log.debug("Unable to get release info from website: %s", e)
return
self.check_new_release()
def check_new_release(self):
if self.new_release:
log.debug("new_release: %s", self.new_release)
if deluge.common.VersionSplit(self.new_release) > deluge.common.VersionSplit(deluge.common.get_version()):
component.get("EventManager").emit(NewVersionAvailableEvent(self.new_release))
return self.new_release
return False
# Exported Methods
@export
def add_torrent_file(self, filename, filedump, options):
"""
Adds a torrent file to the session.
:param filename: the filename of the torrent
:type filename: string
:param filedump: a base64 encoded string of the torrent file contents
:type filedump: string
:param options: the options to apply to the torrent on add
:type options: dict
:returns: the torrent_id as a str or None
:rtype: string
"""
try:
filedump = base64.decodestring(filedump)
except Exception, e:
log.error("There was an error decoding the filedump string!")
log.exception(e)
try:
torrent_id = self.torrentmanager.add(
filedump=filedump, options=options, filename=filename
)
except Exception, e:
log.error("There was an error adding the torrent file %s", filename)
log.exception(e)
torrent_id = None
return torrent_id
@export
def add_torrent_url(self, url, options, headers=None):
"""
Adds a torrent from a url. Deluge will attempt to fetch the torrent
from url prior to adding it to the session.
:param url: the url pointing to the torrent file
:type url: string
:param options: the options to apply to the torrent on add
:type options: dict
:param headers: any optional headers to send
:type headers: dict
:returns: a Deferred which returns the torrent_id as a str or None
"""
log.info("Attempting to add url %s", url)
def on_download_success(filename):
# We got the file, so add it to the session
f = open(filename, "rb")
data = f.read()
f.close()
try:
os.remove(filename)
except Exception, e:
log.warning("Couldn't remove temp file: %s", e)
return self.add_torrent_file(
filename, base64.encodestring(data), options
)
def on_download_fail(failure):
if failure.check(twisted.web.error.PageRedirect):
new_url = urljoin(url, failure.getErrorMessage().split(" to ")[1])
result = download_file(
new_url, tempfile.mkstemp()[1], headers=headers,
force_filename=True
)
result.addCallbacks(on_download_success, on_download_fail)
elif failure.check(twisted.web.client.PartialDownloadError):
result = download_file(
url, tempfile.mkstemp()[1], headers=headers,
force_filename=True, allow_compression=False
)
result.addCallbacks(on_download_success, on_download_fail)
else:
# Log the error and pass the failure onto the client
log.error("Error occured downloading torrent from %s", url)
log.error("Reason: %s", failure.getErrorMessage())
result = failure
return result
d = download_file(
url, tempfile.mkstemp()[1], headers=headers, force_filename=True
)
d.addCallbacks(on_download_success, on_download_fail)
return d
@export
def add_torrent_magnet(self, uri, options):
"""
Adds a torrent from a magnet link.
:param uri: the magnet link
:type uri: string
:param options: the options to apply to the torrent on add
:type options: dict
:returns: the torrent_id
:rtype: string
"""
log.debug("Attempting to add by magnet uri: %s", uri)
return self.torrentmanager.add(magnet=uri, options=options)
@export
def remove_torrent(self, torrent_id, remove_data):
"""
Removes a torrent from the session.
:param torrent_id: the torrent_id of the torrent to remove
:type torrent_id: string
:param remove_data: if True, remove the data associated with this torrent
:type remove_data: boolean
:returns: True if removed successfully
:rtype: bool
:raises InvalidTorrentError: if the torrent_id does not exist in the session
"""
log.debug("Removing torrent %s from the core.", torrent_id)
return self.torrentmanager.remove(torrent_id, remove_data)
@export
def get_session_status(self, keys):
"""
Gets the session status values for 'keys', these keys are taking
from libtorrent's session status.
See: http://www.rasterbar.com/products/libtorrent/manual.html#status
:param keys: the keys for which we want values
:type keys: list
:returns: a dictionary of {key: value, ...}
:rtype: dict
"""
status = {}
session_status = self.session.status()
for key in keys:
status[key] = getattr(session_status, key)
return status
@export
def get_cache_status(self):
"""
Returns a dictionary of the session's cache status.
:returns: the cache status
:rtype: dict
"""
status = self.session.get_cache_status()
cache = {}
for attr in dir(status):
if attr.startswith("_"):
continue
cache[attr] = getattr(status, attr)
# Add in a couple ratios
try:
cache["write_hit_ratio"] = float((cache["blocks_written"] - cache["writes"])) / float(cache["blocks_written"])
except ZeroDivisionError:
cache["write_hit_ratio"] = 0.0
try:
cache["read_hit_ratio"] = float(cache["blocks_read_hit"]) / float(cache["blocks_read"])
except ZeroDivisionError:
cache["read_hit_ratio"] = 0.0
return cache
@export
def force_reannounce(self, torrent_ids):
log.debug("Forcing reannouncment to: %s", torrent_ids)
for torrent_id in torrent_ids:
self.torrentmanager[torrent_id].force_reannounce()
@export
def pause_torrent(self, torrent_ids):
log.debug("Pausing: %s", torrent_ids)
for torrent_id in torrent_ids:
if not self.torrentmanager[torrent_id].pause():
log.warning("Error pausing torrent %s", torrent_id)
@export
def connect_peer(self, torrent_id, ip, port):
log.debug("adding peer %s to %s", ip, torrent_id)
if not self.torrentmanager[torrent_id].connect_peer(ip, port):
log.warning("Error adding peer %s:%s to %s", ip, port, torrent_id)
@export
def move_storage(self, torrent_ids, dest):
log.debug("Moving storage %s to %s", torrent_ids, dest)
for torrent_id in torrent_ids:
if not self.torrentmanager[torrent_id].move_storage(dest):
log.warning("Error moving torrent %s to %s", torrent_id, dest)
@export
def pause_all_torrents(self):
"""Pause all torrents in the session"""
for torrent in self.torrentmanager.torrents.values():
torrent.pause()
@export
def resume_all_torrents(self):
"""Resume all torrents in the session"""
for torrent in self.torrentmanager.torrents.values():
torrent.resume()
component.get("EventManager").emit(SessionResumedEvent())
@export
def resume_torrent(self, torrent_ids):
log.debug("Resuming: %s", torrent_ids)
for torrent_id in torrent_ids:
self.torrentmanager[torrent_id].resume()
@export
def get_torrent_status(self, torrent_id, keys, diff=False):
# Build the status dictionary
try:
status = self.torrentmanager[torrent_id].get_status(keys, diff)
except KeyError:
# Torrent was probaly removed meanwhile
return {}
# Get the leftover fields and ask the plugin manager to fill them
leftover_fields = list(set(keys) - set(status.keys()))
if len(leftover_fields) > 0:
status.update(self.pluginmanager.get_status(torrent_id, leftover_fields))
return status
@export
def get_torrents_status(self, filter_dict, keys, diff=False):
"""
returns all torrents , optionally filtered by filter_dict.
"""
torrent_ids = self.filtermanager.filter_torrent_ids(filter_dict)
status_dict = {}.fromkeys(torrent_ids)
# Get the torrent status for each torrent_id
for torrent_id in torrent_ids:
status_dict[torrent_id] = self.get_torrent_status(torrent_id, keys, diff)
return status_dict
@export
def get_filter_tree(self , show_zero_hits=True, hide_cat=None):
"""
returns {field: [(value,count)] }
for use in sidebar(s)
"""
return self.filtermanager.get_filter_tree(show_zero_hits, hide_cat)
@export
def get_session_state(self):
"""Returns a list of torrent_ids in the session."""
# Get the torrent list from the TorrentManager
return self.torrentmanager.get_torrent_list()
@export
def get_config(self):
"""Get all the preferences as a dictionary"""
return self.config.config
@export
def get_config_value(self, key):
"""Get the config value for key"""
try:
value = self.config[key]
except KeyError:
return None
return value
@export
def get_config_values(self, keys):
"""Get the config values for the entered keys"""
config = {}
for key in keys:
try:
config[key] = self.config[key]
except KeyError:
pass
return config
@export
def set_config(self, config):
"""Set the config with values from dictionary"""
# Load all the values into the configuration
for key in config.keys():
if isinstance(config[key], basestring):
config[key] = config[key].encode("utf8")
self.config[key] = config[key]
@export
def get_listen_port(self):
"""Returns the active listen port"""
return self.session.listen_port()
@export
def get_num_connections(self):
"""Returns the current number of connections"""
return self.session.num_connections()
@export
def get_available_plugins(self):
"""Returns a list of plugins available in the core"""
return self.pluginmanager.get_available_plugins()
@export
def get_enabled_plugins(self):
"""Returns a list of enabled plugins in the core"""
return self.pluginmanager.get_enabled_plugins()
@export
def enable_plugin(self, plugin):
self.pluginmanager.enable_plugin(plugin)
return None
@export
def disable_plugin(self, plugin):
self.pluginmanager.disable_plugin(plugin)
return None
@export
def force_recheck(self, torrent_ids):
"""Forces a data recheck on torrent_ids"""
for torrent_id in torrent_ids:
self.torrentmanager[torrent_id].force_recheck()
@export
def set_torrent_options(self, torrent_ids, options):
"""Sets the torrent options for torrent_ids"""
for torrent_id in torrent_ids:
self.torrentmanager[torrent_id].set_options(options)
@export
def set_torrent_trackers(self, torrent_id, trackers):
"""Sets a torrents tracker list. trackers will be [{"url", "tier"}]"""
return self.torrentmanager[torrent_id].set_trackers(trackers)
@export
def set_torrent_max_connections(self, torrent_id, value):
"""Sets a torrents max number of connections"""
return self.torrentmanager[torrent_id].set_max_connections(value)
@export
def set_torrent_max_upload_slots(self, torrent_id, value):
"""Sets a torrents max number of upload slots"""
return self.torrentmanager[torrent_id].set_max_upload_slots(value)
@export
def set_torrent_max_upload_speed(self, torrent_id, value):
"""Sets a torrents max upload speed"""
return self.torrentmanager[torrent_id].set_max_upload_speed(value)
@export
def set_torrent_max_download_speed(self, torrent_id, value):
"""Sets a torrents max download speed"""
return self.torrentmanager[torrent_id].set_max_download_speed(value)
@export
def set_torrent_file_priorities(self, torrent_id, priorities):
"""Sets a torrents file priorities"""
return self.torrentmanager[torrent_id].set_file_priorities(priorities)
@export
def set_torrent_prioritize_first_last(self, torrent_id, value):
"""Sets a higher priority to the first and last pieces"""
return self.torrentmanager[torrent_id].set_prioritize_first_last(value)
@export
def set_torrent_sequential_download(self, torrent_id, value):
"""Toggle sequencial pieces download"""
return self.torrentmanager[torrent_id].set_sequential_download(value)
@export
def set_torrent_auto_managed(self, torrent_id, value):
"""Sets the auto managed flag for queueing purposes"""
return self.torrentmanager[torrent_id].set_auto_managed(value)
@export
def set_torrent_stop_at_ratio(self, torrent_id, value):
"""Sets the torrent to stop at 'stop_ratio'"""
return self.torrentmanager[torrent_id].set_stop_at_ratio(value)
@export
def set_torrent_stop_ratio(self, torrent_id, value):
"""Sets the ratio when to stop a torrent if 'stop_at_ratio' is set"""
return self.torrentmanager[torrent_id].set_stop_ratio(value)
@export
def set_torrent_remove_at_ratio(self, torrent_id, value):
"""Sets the torrent to be removed at 'stop_ratio'"""
return self.torrentmanager[torrent_id].set_remove_at_ratio(value)
@export
def set_torrent_move_completed(self, torrent_id, value):
"""Sets the torrent to be moved when completed"""
return self.torrentmanager[torrent_id].set_move_completed(value)
@export
def set_torrent_move_completed_path(self, torrent_id, value):
"""Sets the path for the torrent to be moved when completed"""
return self.torrentmanager[torrent_id].set_move_completed_path(value)
@export(AUTH_LEVEL_ADMIN)
def set_torrents_owner(self, torrent_ids, username):
"""Set's the torrent owner.
:param torrent_id: the torrent_id of the torrent to remove
:type torrent_id: string
:param username: the new owner username
:type username: string
:raises DelugeError: if the username is not known
"""
if not self.authmanager.has_account(username):
raise DelugeError("Username \"%s\" is not known." % username)
if isinstance(torrent_ids, basestring):
torrent_ids = [torrent_ids]
for torrent_id in torrent_ids:
self.torrentmanager[torrent_id].set_owner(username)
return None
@export
def set_torrents_shared(self, torrent_ids, shared):
if isinstance(torrent_ids, basestring):
torrent_ids = [torrent_ids]
for torrent_id in torrent_ids:
self.torrentmanager[torrent_id].set_options({"shared": shared})
@export
def get_path_size(self, path):
"""Returns the size of the file or folder 'path' and -1 if the path is
unaccessible (non-existent or insufficient privs)"""
return deluge.common.get_path_size(path)
@export
def create_torrent(self, path, tracker, piece_length, comment, target,
webseeds, private, created_by, trackers, add_to_session):
log.debug("creating torrent..")
threading.Thread(target=self._create_torrent_thread,
args=(
path,
tracker,
piece_length,
comment,
target,
webseeds,
private,
created_by,
trackers,
add_to_session)).start()
def _create_torrent_thread(self, path, tracker, piece_length, comment, target,
webseeds, private, created_by, trackers, add_to_session):
import deluge.metafile
deluge.metafile.make_meta_file(
path,
tracker,
piece_length,
comment=comment,
target=target,
webseeds=webseeds,
private=private,
created_by=created_by,
trackers=trackers)
log.debug("torrent created!")
if add_to_session:
options = {}
options["download_location"] = os.path.split(path)[0]
self.add_torrent_file(os.path.split(target)[1], open(target, "rb").read(), options)
@export
def upload_plugin(self, filename, filedump):
"""This method is used to upload new plugins to the daemon. It is used
when connecting to the daemon remotely and installing a new plugin on
the client side. 'plugin_data' is a xmlrpc.Binary object of the file data,
ie, plugin_file.read()"""
try:
filedump = base64.decodestring(filedump)
except Exception, e:
log.error("There was an error decoding the filedump string!")
log.exception(e)
return
f = open(os.path.join(deluge.configmanager.get_config_dir(), "plugins", filename), "wb")
f.write(filedump)
f.close()
component.get("CorePluginManager").scan_for_plugins()
@export
def rescan_plugins(self):
"""
Rescans the plugin folders for new plugins
"""
component.get("CorePluginManager").scan_for_plugins()
@export
def rename_files(self, torrent_id, filenames):
"""
Rename files in torrent_id. Since this is an asynchronous operation by
libtorrent, watch for the TorrentFileRenamedEvent to know when the
files have been renamed.
:param torrent_id: the torrent_id to rename files
:type torrent_id: string
:param filenames: a list of index, filename pairs
:type filenames: ((index, filename), ...)
:raises InvalidTorrentError: if torrent_id is invalid
"""
if torrent_id not in self.torrentmanager.torrents:
raise InvalidTorrentError("torrent_id is not in session")
self.torrentmanager[torrent_id].rename_files(filenames)
@export
def rename_folder(self, torrent_id, folder, new_folder):
"""
Renames the 'folder' to 'new_folder' in 'torrent_id'. Watch for the
TorrentFolderRenamedEvent which is emitted when the folder has been
renamed successfully.
:param torrent_id: the torrent to rename folder in
:type torrent_id: string
:param folder: the folder to rename
:type folder: string
:param new_folder: the new folder name
:type new_folder: string
:raises InvalidTorrentError: if the torrent_id is invalid
"""
if torrent_id not in self.torrentmanager.torrents:
raise InvalidTorrentError("torrent_id is not in session")
self.torrentmanager[torrent_id].rename_folder(folder, new_folder)
@export
def queue_top(self, torrent_ids):
log.debug("Attempting to queue %s to top", torrent_ids)
for torrent_id in torrent_ids:
try:
# If the queue method returns True, then we should emit a signal
if self.torrentmanager.queue_top(torrent_id):
component.get("EventManager").emit(TorrentQueueChangedEvent())
except KeyError:
log.warning("torrent_id: %s does not exist in the queue", torrent_id)
@export
def queue_up(self, torrent_ids):
log.debug("Attempting to queue %s to up", torrent_ids)
#torrent_ids must be sorted before moving.
torrent_ids = list(torrent_ids)
torrent_ids.sort(key = lambda id: self.torrentmanager.torrents[id].get_queue_position())
for torrent_id in torrent_ids:
try:
# If the queue method returns True, then we should emit a signal
if self.torrentmanager.queue_up(torrent_id):
component.get("EventManager").emit(TorrentQueueChangedEvent())
except KeyError:
log.warning("torrent_id: %s does not exist in the queue", torrent_id)
@export
def queue_down(self, torrent_ids):
log.debug("Attempting to queue %s to down", torrent_ids)
#torrent_ids must be sorted before moving.
torrent_ids = list(torrent_ids)
torrent_ids.sort(key = lambda id: -self.torrentmanager.torrents[id].get_queue_position())
for torrent_id in torrent_ids:
try:
# If the queue method returns True, then we should emit a signal
if self.torrentmanager.queue_down(torrent_id):
component.get("EventManager").emit(TorrentQueueChangedEvent())
except KeyError:
log.warning("torrent_id: %s does not exist in the queue", torrent_id)
@export
def queue_bottom(self, torrent_ids):
log.debug("Attempting to queue %s to bottom", torrent_ids)
for torrent_id in torrent_ids:
try:
# If the queue method returns True, then we should emit a signal
if self.torrentmanager.queue_bottom(torrent_id):
component.get("EventManager").emit(TorrentQueueChangedEvent())
except KeyError:
log.warning("torrent_id: %s does not exist in the queue", torrent_id)
@export
def glob(self, path):
return glob.glob(path)
@export
def test_listen_port(self):
"""
Checks if the active port is open
:returns: True if the port is open, False if not
:rtype: bool
"""
from twisted.web.client import getPage
d = getPage("http://deluge-torrent.org/test_port.php?port=%s" %
self.get_listen_port(), timeout=30)
def on_get_page(result):
return bool(int(result))
def logError(failure):
log.warning("Error testing listen port: %s", failure)
d.addCallback(on_get_page)
d.addErrback(logError)
return d
@export
def get_free_space(self, path=None):
"""
Returns the number of free bytes at path
:param path: the path to check free space at, if None, use the default
download location
:type path: string
:returns: the number of free bytes at path
:rtype: int
:raises InvalidPathError: if the path is invalid
"""
if not path:
path = self.config["download_location"]
try:
return deluge.common.free_space(path)
except InvalidPathError:
return 0
@export
def get_libtorrent_version(self):
"""
Returns the libtorrent version.
:returns: the version
:rtype: string
"""
return lt.version
@export(AUTH_LEVEL_ADMIN)
def get_known_accounts(self):
return self.authmanager.get_known_accounts()
@export(AUTH_LEVEL_NONE)
def get_auth_levels_mappings(self):
return (AUTH_LEVELS_MAPPING, AUTH_LEVELS_MAPPING_REVERSE)
@export(AUTH_LEVEL_ADMIN)
def create_account(self, username, password, authlevel):
return self.authmanager.create_account(username, password, authlevel)
@export(AUTH_LEVEL_ADMIN)
def update_account(self, username, password, authlevel):
return self.authmanager.update_account(username, password, authlevel)
@export(AUTH_LEVEL_ADMIN)
def remove_account(self, username):
return self.authmanager.remove_account(username)

201
deluge/core/daemon.py Normal file
View File

@ -0,0 +1,201 @@
#
# daemon.py
#
# Copyright (C) 2007-2009 Andrew Resch <andrewresch@gmail.com>
#
# Deluge is free software.
#
# You may redistribute it and/or modify it under the terms of the
# GNU General Public License, as published by the Free Software
# Foundation; either version 3 of the License, or (at your option)
# any later version.
#
# deluge is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with deluge. If not, write to:
# The Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor
# Boston, MA 02110-1301, USA.
#
# In addition, as a special exception, the copyright holders give
# permission to link the code of portions of this program with the OpenSSL
# library.
# You must obey the GNU General Public License in all respects for all of
# the code used other than OpenSSL. If you modify file(s) with this
# exception, you may extend this exception to your version of the file(s),
# but you are not obligated to do so. If you do not wish to do so, delete
# this exception statement from your version. If you delete this exception
# statement from all source files in the program, then also delete it here.
#
import os
import logging
from twisted.internet import reactor
import twisted.internet.error
import deluge.component as component
import deluge.configmanager
import deluge.common
from deluge.core.rpcserver import RPCServer, export
import deluge.error
log = logging.getLogger(__name__)
class Daemon(object):
def __init__(self, options=None, args=None, classic=False):
# Check for another running instance of the daemon
if os.path.isfile(deluge.configmanager.get_config_dir("deluged.pid")):
# Get the PID and the port of the supposedly running daemon
try:
(pid, port) = open(
deluge.configmanager.get_config_dir("deluged.pid")
).read().strip().split(";")
pid = int(pid)
port = int(port)
except ValueError:
pid = None
port = None
def process_running(pid):
if deluge.common.windows_check():
# Do some fancy WMI junk to see if the PID exists in Windows
from win32com.client import GetObject
def get_proclist():
WMI = GetObject('winmgmts:')
processes = WMI.InstancesOf('Win32_Process')
return [process.Properties_('ProcessID').Value for process in processes]
return pid in get_proclist()
else:
# We can just use os.kill on UNIX to test if the process is running
try:
os.kill(pid, 0)
except OSError:
return False
else:
return True
if pid is not None and process_running(pid):
# Ok, so a process is running with this PID, let's make doubly-sure
# it's a deluged process by trying to open a socket to it's port.
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect(("127.0.0.1", port))
except socket.error:
# Can't connect, so it must not be a deluged process..
pass
else:
# This is a deluged!
s.close()
raise deluge.error.DaemonRunningError(
"There is a deluge daemon running with this config "
"directory!"
)
# Twisted catches signals to terminate, so just have it call the shutdown
# method.
reactor.addSystemEventTrigger("after", "shutdown", self.shutdown)
# Catch some Windows specific signals
if deluge.common.windows_check():
from win32api import SetConsoleCtrlHandler
from win32con import CTRL_CLOSE_EVENT
from win32con import CTRL_SHUTDOWN_EVENT
def win_handler(ctrl_type):
log.debug("ctrl_type: %s", ctrl_type)
if ctrl_type == CTRL_CLOSE_EVENT or ctrl_type == CTRL_SHUTDOWN_EVENT:
self._shutdown()
return 1
SetConsoleCtrlHandler(win_handler)
version = deluge.common.get_version()
log.info("Deluge daemon %s", version)
log.debug("options: %s", options)
log.debug("args: %s", args)
# Set the config directory
if options and options.config:
deluge.configmanager.set_config_dir(options.config)
from deluge.core.core import Core
# Start the core as a thread and join it until it's done
self.core = Core()
port = self.core.config["daemon_port"]
if options and options.port:
port = options.port
if options and options.ui_interface:
interface = options.ui_interface
else:
interface = ""
self.rpcserver = RPCServer(
port=port,
allow_remote=self.core.config["allow_remote"],
listen=not classic,
interface=interface
)
# Register the daemon and the core RPCs
self.rpcserver.register_object(self.core)
self.rpcserver.register_object(self)
# Make sure we start the PreferencesManager first
component.start("PreferencesManager")
if not classic:
# Write out a pid file all the time, we use this to see if a deluged is running
# We also include the running port number to do an additional test
open(deluge.configmanager.get_config_dir("deluged.pid"), "wb").write(
"%s;%s\n" % (os.getpid(), port))
component.start()
try:
reactor.run()
finally:
self._shutdown()
@export()
def shutdown(self, *args, **kwargs):
reactor.callLater(0, reactor.stop)
def _shutdown(self, *args, **kwargs):
try:
os.remove(deluge.configmanager.get_config_dir("deluged.pid"))
except Exception, e:
log.exception(e)
log.error("Error removing deluged.pid!")
component.shutdown()
try:
reactor.stop()
except twisted.internet.error.ReactorNotRunning:
log.debug("Tried to stop the reactor but it is not running..")
@export()
def get_method_list(self):
"""
Returns a list of the exported methods.
"""
return self.rpcserver.get_method_list()
@export(1)
def authorized_call(self, rpc):
"""
Returns True if authorized to call rpc.
:param rpc: a rpc, eg, "core.get_torrents_status"
:type rpc: string
"""
if not rpc in self.get_method_list():
return False
auth_level = self.rpcserver.get_session_auth_level()
return auth_level >= self.rpcserver.get_rpc_auth_level()

View File

@ -0,0 +1,86 @@
#
# eventmanager.py
#
# Copyright (C) 2009 Andrew Resch <andrewresch@gmail.com>
#
# Deluge is free software.
#
# You may redistribute it and/or modify it under the terms of the
# GNU General Public License, as published by the Free Software
# Foundation; either version 3 of the License, or (at your option)
# any later version.
#
# deluge is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with deluge. If not, write to:
# The Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor
# Boston, MA 02110-1301, USA.
#
# In addition, as a special exception, the copyright holders give
# permission to link the code of portions of this program with the OpenSSL
# library.
# You must obey the GNU General Public License in all respects for all of
# the code used other than OpenSSL. If you modify file(s) with this
# exception, you may extend this exception to your version of the file(s),
# but you are not obligated to do so. If you do not wish to do so, delete
# this exception statement from your version. If you delete this exception
# statement from all source files in the program, then also delete it here.
#
#
import logging
import deluge.component as component
log = logging.getLogger(__name__)
class EventManager(component.Component):
def __init__(self):
component.Component.__init__(self, "EventManager")
self.handlers = {}
def emit(self, event):
"""
Emits the event to interested clients.
:param event: DelugeEvent
"""
# Emit the event to the interested clients
component.get("RPCServer").emit_event(event)
# Call any handlers for the event
if event.name in self.handlers:
for handler in self.handlers[event.name]:
#log.debug("Running handler %s for event %s with args: %s", event.name, handler, event.args)
try:
handler(*event.args)
except:
log.error("Event handler %s failed in %s", event.name, handler)
def register_event_handler(self, event, handler):
"""
Registers a function to be called when a `:param:event` is emitted.
:param event: str, the event name
:param handler: function, to be called when `:param:event` is emitted
"""
if event not in self.handlers:
self.handlers[event] = []
if handler not in self.handlers[event]:
self.handlers[event].append(handler)
def deregister_event_handler(self, event, handler):
"""
Deregisters an event handler function.
:param event: str, the event name
:param handler: function, currently registered to handle `:param:event`
"""
if event in self.handlers and handler in self.handlers[event]:
self.handlers[event].remove(handler)

View File

@ -0,0 +1,294 @@
#
# core.py
#
# Copyright (C) 2008 Martijn Voncken <mvoncken@gmail.com>
#
# Deluge is free software.
#
# You may redistribute it and/or modify it under the terms of the
# GNU General Public License, as published by the Free Software
# Foundation; either version 3 of the License, or (at your option)
# any later version.
#
# deluge is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with deluge. If not, write to:
# The Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor
# Boston, MA 02110-1301, USA.
#
# In addition, as a special exception, the copyright holders give
# permission to link the code of portions of this program with the OpenSSL
# library.
# You must obey the GNU General Public License in all respects for all of
# the code used other than OpenSSL. If you modify file(s) with this
# exception, you may extend this exception to your version of the file(s),
# but you are not obligated to do so. If you do not wish to do so, delete
# this exception statement from your version. If you delete this exception
# statement from all source files in the program, then also delete it here.
#
#
import logging
import deluge.component as component
STATE_SORT = ["All", "Downloading", "Seeding", "Active", "Paused", "Queued"]
log = logging.getLogger(__name__)
#special purpose filters:
def filter_keywords(torrent_ids, values):
#cleanup.
keywords = ",".join([v.lower() for v in values])
keywords = keywords.split(",")
for keyword in keywords:
torrent_ids = filter_one_keyword(torrent_ids, keyword)
return torrent_ids
def filter_one_keyword(torrent_ids, keyword):
"""
search torrent on keyword.
searches title,state,tracker-status,tracker,files
"""
all_torrents = component.get("TorrentManager").torrents
#filter:
found = False
for torrent_id in torrent_ids:
torrent = all_torrents[torrent_id]
if keyword in torrent.filename.lower():
yield torrent_id
elif keyword in torrent.state.lower():
yield torrent_id
elif torrent.trackers and keyword in torrent.trackers[0]["url"]:
yield torrent_id
elif keyword in torrent_id:
yield torrent_id
#i want to find broken torrents (search on "error", or "unregistered")
elif keyword in torrent.tracker_status.lower():
yield torrent_id
else:
for t_file in torrent.get_files():
if keyword in t_file["path"].lower():
yield torrent_id
break
def filter_by_name(torrent_ids, search_string):
all_torrents = component.get("TorrentManager").torrents
try:
search_string, match_case = search_string[0].split('::match')
except ValueError:
search_string = search_string[0]
match_case = False
if match_case is False:
search_string = search_string.lower()
for torrent_id in torrent_ids:
torrent_name = all_torrents[torrent_id].get_name()
if match_case is False:
torrent_name = all_torrents[torrent_id].get_name().lower()
else:
torrent_name = all_torrents[torrent_id].get_name()
if search_string in torrent_name:
yield torrent_id
def tracker_error_filter(torrent_ids, values):
filtered_torrent_ids = []
tm = component.get("TorrentManager")
# If this is a tracker_host, then we need to filter on it
if values[0] != "Error":
for torrent_id in torrent_ids:
if values[0] == tm[torrent_id].get_status(["tracker_host"])["tracker_host"]:
filtered_torrent_ids.append(torrent_id)
return filtered_torrent_ids
# Check all the torrent's tracker_status for 'Error:' and only return torrent_ids
# that have this substring in their tracker_status
for torrent_id in torrent_ids:
if _("Error") + ":" in tm[torrent_id].get_status(["tracker_status"])["tracker_status"]:
filtered_torrent_ids.append(torrent_id)
return filtered_torrent_ids
class FilterManager(component.Component):
"""FilterManager
"""
def __init__(self, core):
component.Component.__init__(self, "FilterManager")
log.debug("FilterManager init..")
self.core = core
self.torrents = core.torrentmanager
self.registered_filters = {}
self.register_filter("keyword", filter_keywords)
self.register_filter("name", filter_by_name)
self.tree_fields = {}
self.register_tree_field("state", self._init_state_tree)
def _init_tracker_tree():
return {"Error": 0}
self.register_tree_field("tracker_host", _init_tracker_tree)
self.register_filter("tracker_host", tracker_error_filter)
def _init_users_tree():
return {"": 0}
self.register_tree_field("owner", _init_users_tree)
def filter_torrent_ids(self, filter_dict):
"""
returns a list of torrent_id's matching filter_dict.
core filter method
"""
if not filter_dict:
return self.torrents.get_torrent_list()
#sanitize input: filter-value must be a list of strings
for key, value in filter_dict.items():
if isinstance(value, str):
filter_dict[key] = [value]
if "id"in filter_dict: #optimized filter for id:
torrent_ids = list(filter_dict["id"])
del filter_dict["id"]
else:
torrent_ids = self.torrents.get_torrent_list()
if not filter_dict: #return if there's nothing more to filter
return torrent_ids
#special purpose: state=Active.
if "state" in filter_dict:
# We need to make sure this is a list for the logic below
filter_dict["state"] = list(filter_dict["state"])
if "state" in filter_dict and "Active" in filter_dict["state"]:
filter_dict["state"].remove("Active")
if not filter_dict["state"]:
del filter_dict["state"]
torrent_ids = self.filter_state_active(torrent_ids)
if not filter_dict: #return if there's nothing more to filter
return torrent_ids
#Registered filters:
for field, values in filter_dict.items():
if field in self.registered_filters:
# a set filters out the doubles.
torrent_ids = list(set(self.registered_filters[field](torrent_ids, values)))
del filter_dict[field]
if not filter_dict: #return if there's nothing more to filter
return torrent_ids
#leftover filter arguments:
#default filter on status fields.
status_func = self.core.get_torrent_status #premature optimalisation..
for torrent_id in list(torrent_ids):
status = status_func(torrent_id, filter_dict.keys()) #status={key:value}
for field, values in filter_dict.iteritems():
if (not status[field] in values) and torrent_id in torrent_ids:
torrent_ids.remove(torrent_id)
return torrent_ids
def get_filter_tree(self, show_zero_hits=True, hide_cat=None):
"""
returns {field: [(value,count)] }
for use in sidebar.
"""
torrent_ids = self.torrents.get_torrent_list()
status_func = self.core.get_torrent_status #premature optimalisation..
tree_keys = list(self.tree_fields.keys())
if hide_cat:
for cat in hide_cat:
tree_keys.remove(cat)
items = dict( (field, self.tree_fields[field]()) for field in tree_keys)
#count status fields.
for torrent_id in list(torrent_ids):
status = status_func(torrent_id, tree_keys) #status={key:value}
for field in tree_keys:
value = status[field]
items[field][value] = items[field].get(value, 0) + 1
if "tracker_host" in items:
items["tracker_host"]["All"] = len(torrent_ids)
items["tracker_host"]["Error"] = len(tracker_error_filter(torrent_ids, ("Error",)))
if "state" in tree_keys and not show_zero_hits:
self._hide_state_items(items["state"])
#return a dict of tuples:
sorted_items = {}
for field in tree_keys:
sorted_items[field] = sorted(items[field].iteritems())
if "state" in tree_keys:
sorted_items["state"].sort(self._sort_state_items)
return sorted_items
def _init_state_tree(self):
return {"All":len(self.torrents.get_torrent_list()),
"Downloading":0,
"Seeding":0,
"Paused":0,
"Checking":0,
"Queued":0,
"Error":0,
"Active":len(self.filter_state_active(self.torrents.get_torrent_list()))
}
def register_filter(self, id, filter_func, filter_value = None):
self.registered_filters[id] = filter_func
def deregister_filter(self, id):
del self.registered_filters[id]
def register_tree_field(self, field, init_func = lambda : {}):
self.tree_fields[field] = init_func
def deregister_tree_field(self, field):
if field in self.tree_fields:
del self.tree_fields[field]
def filter_state_active(self, torrent_ids):
get_status = self.core.get_torrent_status
for torrent_id in list(torrent_ids):
status = get_status(torrent_id, ["download_payload_rate", "upload_payload_rate"])
if status["download_payload_rate"] or status["upload_payload_rate"]:
pass #ok
else:
torrent_ids.remove(torrent_id)
return torrent_ids
def _hide_state_items(self, state_items):
"for hide(show)-zero hits"
for (value, count) in state_items.items():
if value != "All" and count == 0:
del state_items[value]
def _sort_state_items(self, x, y):
""
if x[0] in STATE_SORT:
ix = STATE_SORT.index(x[0])
else:
ix = 99
if y[0] in STATE_SORT:
iy = STATE_SORT.index(y[0])
else:
iy = 99
return ix - iy

View File

@ -0,0 +1,143 @@
#
# oldstateupgrader.py
#
# Copyright (C) 2008 Andrew Resch <andrewresch@gmail.com>
#
# Deluge is free software.
#
# You may redistribute it and/or modify it under the terms of the
# GNU General Public License, as published by the Free Software
# Foundation; either version 3 of the License, or (at your option)
# any later version.
#
# deluge is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with deluge. If not, write to:
# The Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor
# Boston, MA 02110-1301, USA.
#
# In addition, as a special exception, the copyright holders give
# permission to link the code of portions of this program with the OpenSSL
# library.
# You must obey the GNU General Public License in all respects for all of
# the code used other than OpenSSL. If you modify file(s) with this
# exception, you may extend this exception to your version of the file(s),
# but you are not obligated to do so. If you do not wish to do so, delete
# this exception statement from your version. If you delete this exception
# statement from all source files in the program, then also delete it here.
#
#
import os
import os.path
import pickle
import cPickle
import shutil
import logging
from deluge._libtorrent import lt
from deluge.configmanager import ConfigManager, get_config_dir
import deluge.core.torrentmanager
log = logging.getLogger(__name__)
#start : http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/286203
def makeFakeClass(module, name):
class FakeThing(object):
pass
FakeThing.__name__ = name
FakeThing.__module__ = '(fake)' + module
return FakeThing
class PickleUpgrader(pickle.Unpickler):
def find_class(self, module, cname):
# Pickle tries to load a couple things like copy_reg and
# __builtin__.object even though a pickle file doesn't
# explicitly reference them (afaict): allow them to be loaded
# normally.
if module in ('copy_reg', '__builtin__'):
thing = pickle.Unpickler.find_class(self, module, cname)
return thing
return makeFakeClass(module, cname)
# end: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/286203
class OldStateUpgrader:
def __init__(self):
self.config = ConfigManager("core.conf")
self.state05_location = os.path.join(get_config_dir(), "persistent.state")
self.state10_location = os.path.join(get_config_dir(), "state", "torrents.state")
if os.path.exists(self.state05_location) and not os.path.exists(self.state10_location):
# If the 0.5 state file exists and the 1.0 doesn't, then let's upgrade it
self.upgrade05()
def upgrade05(self):
try:
state = PickleUpgrader(open(self.state05_location, "rb")).load()
except Exception, e:
log.debug("Unable to open 0.5 state file: %s", e)
return
# Check to see if we can upgrade this file
if type(state).__name__ == 'list':
log.warning("0.5 state file is too old to upgrade")
return
new_state = deluge.core.torrentmanager.TorrentManagerState()
for ti, uid in state.torrents.items():
torrent_path = os.path.join(get_config_dir(), "torrentfiles", ti.filename)
try:
torrent_info = None
log.debug("Attempting to create torrent_info from %s", torrent_path)
_file = open(torrent_path, "rb")
torrent_info = lt.torrent_info(lt.bdecode(_file.read()))
_file.close()
except (IOError, RuntimeError), e:
log.warning("Unable to open %s: %s", torrent_path, e)
# Copy the torrent file to the new location
import shutil
shutil.copyfile(torrent_path, os.path.join(get_config_dir(), "state", str(torrent_info.info_hash()) + ".torrent"))
# Set the file prioritiy property if not already there
if not hasattr(ti, "priorities"):
ti.priorities = [1] * torrent_info.num_files()
# Create the new TorrentState object
new_torrent = deluge.core.torrentmanager.TorrentState(
torrent_id=str(torrent_info.info_hash()),
filename=ti.filename,
save_path=ti.save_dir,
compact=ti.compact,
paused=ti.user_paused,
total_uploaded=ti.uploaded_memory,
max_upload_speed=ti.upload_rate_limit,
max_download_speed=ti.download_rate_limit,
file_priorities=ti.priorities,
queue=state.queue.index(ti)
)
# Append the object to the state list
new_state.torrents.append(new_torrent)
# Now we need to write out the new state file
try:
log.debug("Saving torrent state file.")
state_file = open(
os.path.join(get_config_dir(), "state", "torrents.state"), "wb")
cPickle.dump(new_state, state_file)
state_file.close()
except IOError, e:
log.warning("Unable to save state file: %s", e)
return
# Rename the persistent.state file
try:
os.rename(self.state05_location, self.state05_location + ".old")
except Exception, e:
log.debug("Unable to rename old persistent.state file! %s", e)

View File

@ -0,0 +1,114 @@
#
# pluginmanager.py
#
# Copyright (C) 2007 Andrew Resch <andrewresch@gmail.com>
#
# Deluge is free software.
#
# You may redistribute it and/or modify it under the terms of the
# GNU General Public License, as published by the Free Software
# Foundation; either version 3 of the License, or (at your option)
# any later version.
#
# deluge is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with deluge. If not, write to:
# The Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor
# Boston, MA 02110-1301, USA.
#
# In addition, as a special exception, the copyright holders give
# permission to link the code of portions of this program with the OpenSSL
# library.
# You must obey the GNU General Public License in all respects for all of
# the code used other than OpenSSL. If you modify file(s) with this
# exception, you may extend this exception to your version of the file(s),
# but you are not obligated to do so. If you do not wish to do so, delete
# this exception statement from your version. If you delete this exception
# statement from all source files in the program, then also delete it here.
#
#
"""PluginManager for Core"""
import logging
from deluge.event import PluginEnabledEvent, PluginDisabledEvent
import deluge.pluginmanagerbase
import deluge.component as component
log = logging.getLogger(__name__)
class PluginManager(deluge.pluginmanagerbase.PluginManagerBase,
component.Component):
"""PluginManager handles the loading of plugins and provides plugins with
functions to access parts of the core."""
def __init__(self, core):
component.Component.__init__(self, "CorePluginManager")
self.status_fields = {}
# Call the PluginManagerBase constructor
deluge.pluginmanagerbase.PluginManagerBase.__init__(
self, "core.conf", "deluge.plugin.core")
def start(self):
# Enable plugins that are enabled in the config
self.enable_plugins()
def stop(self):
# Disable all enabled plugins
self.disable_plugins()
def shutdown(self):
self.stop()
def update_plugins(self):
for plugin in self.plugins.keys():
if hasattr(self.plugins[plugin], "update"):
try:
self.plugins[plugin].update()
except Exception, e:
log.exception(e)
def enable_plugin(self, name):
if name not in self.plugins:
super(PluginManager, self).enable_plugin(name)
if name in self.plugins:
component.get("EventManager").emit(PluginEnabledEvent(name))
def disable_plugin(self, name):
if name in self.plugins:
super(PluginManager, self).disable_plugin(name)
if name not in self.plugins:
component.get("EventManager").emit(PluginDisabledEvent(name))
def get_status(self, torrent_id, fields):
"""Return the value of status fields for the selected torrent_id."""
status = {}
for field in fields:
try:
status[field] = self.status_fields[field](torrent_id)
except KeyError:
pass
return status
def register_status_field(self, field, function):
"""Register a new status field. This can be used in the same way the
client requests other status information from core."""
log.debug("Registering status field %s with PluginManager", field)
self.status_fields[field] = function
def deregister_status_field(self, field):
"""Deregisters a status field"""
log.debug("Deregistering status field %s with PluginManager", field)
try:
del self.status_fields[field]
except:
log.warning("Unable to deregister status field %s", field)

View File

@ -0,0 +1,477 @@
#
# preferencesmanager.py
#
# Copyright (C) 2008-2010 Andrew Resch <andrewresch@gmail.com>
#
# Deluge is free software.
#
# You may redistribute it and/or modify it under the terms of the
# GNU General Public License, as published by the Free Software
# Foundation; either version 3 of the License, or (at your option)
# any later version.
#
# deluge is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with deluge. If not, write to:
# The Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor
# Boston, MA 02110-1301, USA.
#
# In addition, as a special exception, the copyright holders give
# permission to link the code of portions of this program with the OpenSSL
# library.
# You must obey the GNU General Public License in all respects for all of
# the code used other than OpenSSL. If you modify file(s) with this
# exception, you may extend this exception to your version of the file(s),
# but you are not obligated to do so. If you do not wish to do so, delete
# this exception statement from your version. If you delete this exception
# statement from all source files in the program, then also delete it here.
#
#
import os
import logging
import threading
from twisted.internet.task import LoopingCall
from deluge._libtorrent import lt
from deluge.event import *
import deluge.configmanager
import deluge.common
import deluge.component as component
log = logging.getLogger(__name__)
DEFAULT_PREFS = {
"send_info": False,
"info_sent": 0.0,
"daemon_port": 58846,
"allow_remote": False,
"compact_allocation": False,
"download_location": deluge.common.get_default_download_dir(),
"listen_ports": [6881, 6891],
"listen_interface": "",
"copy_torrent_file": False,
"del_copy_torrent_file": False,
"torrentfiles_location": deluge.common.get_default_download_dir(),
"plugins_location": os.path.join(deluge.configmanager.get_config_dir(), "plugins"),
"prioritize_first_last_pieces": False,
"sequential_download": False,
"random_port": True,
"dht": True,
"upnp": True,
"natpmp": True,
"utpex": True,
"lsd": True,
"enc_in_policy": 1,
"enc_out_policy": 1,
"enc_level": 2,
"enc_prefer_rc4": True,
"max_connections_global": 200,
"max_upload_speed": -1.0,
"max_download_speed": -1.0,
"max_upload_slots_global": 4,
"max_half_open_connections": (lambda: deluge.common.windows_check() and
(lambda: deluge.common.vista_check() and 4 or 8)() or 50)(),
"max_connections_per_second": 20,
"ignore_limits_on_local_network": True,
"max_connections_per_torrent": -1,
"max_upload_slots_per_torrent": -1,
"max_upload_speed_per_torrent": -1,
"max_download_speed_per_torrent": -1,
"enabled_plugins": [],
"add_paused": False,
"max_active_seeding": 5,
"max_active_downloading": 3,
"max_active_limit": 8,
"dont_count_slow_torrents": False,
"queue_new_to_top": False,
"stop_seed_at_ratio": False,
"remove_seed_at_ratio": False,
"stop_seed_ratio": 2.00,
"share_ratio_limit": 2.00,
"seed_time_ratio_limit": 7.00,
"seed_time_limit": 180,
"auto_managed": True,
"move_completed": False,
"move_completed_path": deluge.common.get_default_download_dir(),
"new_release_check": True,
"proxies": {
"peer": {
"type": 0,
"hostname": "",
"username": "",
"password": "",
"port": 8080
},
"web_seed": {
"type": 0,
"hostname": "",
"username": "",
"password": "",
"port": 8080
},
"tracker": {
"type": 0,
"hostname": "",
"username": "",
"password": "",
"port": 8080
},
"dht": {
"type": 0,
"hostname": "",
"username": "",
"password": "",
"port": 8080
},
},
"outgoing_ports": [0, 0],
"random_outgoing_ports": True,
"peer_tos": "0x00",
"rate_limit_ip_overhead": True,
"geoip_db_location": "/usr/share/GeoIP/GeoIP.dat",
"cache_size": 512,
"cache_expiry": 60,
"auto_manage_prefer_seeds": False,
"shared": False
}
class PreferencesManager(component.Component):
def __init__(self):
component.Component.__init__(self, "PreferencesManager")
self.config = deluge.configmanager.ConfigManager("core.conf", DEFAULT_PREFS)
if 'public' in self.config:
log.debug("Updating configuration file: Renamed torrent's public "
"attribute to shared.")
self.config["shared"] = self.config["public"]
del self.config["public"]
def start(self):
self.core = component.get("Core")
self.session = component.get("Core").session
self.new_release_timer = None
# Set the initial preferences on start-up
for key in DEFAULT_PREFS:
self.do_config_set_func(key, self.config[key])
self.config.register_change_callback(self._on_config_value_change)
def stop(self):
if self.new_release_timer and self.new_release_timer.running:
self.new_release_timer.stop()
# Config set functions
def do_config_set_func(self, key, value):
on_set_func = getattr(self, "_on_set_" + key, None)
if on_set_func:
on_set_func(key, value)
def session_set_setting(self, key, value):
settings = self.session.settings()
setattr(settings, key, value)
self.session.set_settings(settings)
def _on_config_value_change(self, key, value):
self.do_config_set_func(key, value)
component.get("EventManager").emit(ConfigValueChangedEvent(key, value))
def _on_set_torrentfiles_location(self, key, value):
if self.config["copy_torrent_file"]:
try:
os.makedirs(value)
except Exception, e:
log.debug("Unable to make directory: %s", e)
def _on_set_listen_ports(self, key, value):
# Only set the listen ports if random_port is not true
if self.config["random_port"] is not True:
log.debug("listen port range set to %s-%s", value[0], value[1])
self.session.listen_on(
value[0], value[1], str(self.config["listen_interface"])
)
def _on_set_listen_interface(self, key, value):
# Call the random_port callback since it'll do what we need
self._on_set_random_port("random_port", self.config["random_port"])
def _on_set_random_port(self, key, value):
log.debug("random port value set to %s", value)
# We need to check if the value has been changed to true and false
# and then handle accordingly.
if value:
import random
listen_ports = []
randrange = lambda: random.randrange(49152, 65525)
listen_ports.append(randrange())
listen_ports.append(listen_ports[0]+10)
else:
listen_ports = self.config["listen_ports"]
# Set the listen ports
log.debug("listen port range set to %s-%s", listen_ports[0],
listen_ports[1])
self.session.listen_on(
listen_ports[0], listen_ports[1],
str(self.config["listen_interface"])
)
def _on_set_outgoing_ports(self, key, value):
if not self.config["random_outgoing_ports"]:
log.debug("outgoing port range set to %s-%s", value[0], value[1])
self.session_set_setting("outgoing_ports", (value[0], value[1]))
def _on_set_random_outgoing_ports(self, key, value):
if value:
self.session.outgoing_ports(0, 0)
def _on_set_peer_tos(self, key, value):
log.debug("setting peer_tos to: %s", value)
try:
self.session_set_setting("peer_tos", chr(int(value, 16)))
except ValueError, e:
log.debug("Invalid tos byte: %s", e)
return
def _on_set_dht(self, key, value):
log.debug("dht value set to %s", value)
state_file = deluge.configmanager.get_config_dir("dht.state")
if value:
state = None
try:
state = lt.bdecode(open(state_file, "rb").read())
except Exception, e:
log.warning("Unable to read DHT state file: %s", e)
try:
self.session.start_dht(state)
except Exception, e:
log.warning("Restoring old DHT state failed: %s", e)
self.session.start_dht(None)
self.session.add_dht_router("router.bittorrent.com", 6881)
self.session.add_dht_router("router.utorrent.com", 6881)
self.session.add_dht_router("router.bitcomet.com", 6881)
else:
self.core.save_dht_state()
self.session.stop_dht()
def _on_set_upnp(self, key, value):
log.debug("upnp value set to %s", value)
if value:
self.session.start_upnp()
else:
self.session.stop_upnp()
def _on_set_natpmp(self, key, value):
log.debug("natpmp value set to %s", value)
if value:
self.session.start_natpmp()
else:
self.session.stop_natpmp()
def _on_set_lsd(self, key, value):
log.debug("lsd value set to %s", value)
if value:
self.session.start_lsd()
else:
self.session.stop_lsd()
def _on_set_utpex(self, key, value):
log.debug("utpex value set to %s", value)
if value:
self.session.add_extension(lt.create_ut_pex_plugin)
def _on_set_enc_in_policy(self, key, value):
self._on_set_encryption(key, value)
def _on_set_enc_out_policy(self, key, value):
self._on_set_encryption(key, value)
def _on_set_enc_level(self, key, value):
self._on_set_encryption(key, value)
def _on_set_enc_prefer_rc4(self, key, value):
self._on_set_encryption(key, value)
def _on_set_encryption(self, key, value):
log.debug("encryption value %s set to %s..", key, value)
pe_settings = lt.pe_settings()
pe_settings.out_enc_policy = \
lt.enc_policy(self.config["enc_out_policy"])
pe_settings.in_enc_policy = lt.enc_policy(self.config["enc_in_policy"])
pe_settings.allowed_enc_level = lt.enc_level(self.config["enc_level"])
pe_settings.prefer_rc4 = self.config["enc_prefer_rc4"]
self.session.set_pe_settings(pe_settings)
set = self.session.get_pe_settings()
log.debug("encryption settings:\n\t\t\tout_policy: %s\n\t\t\
in_policy: %s\n\t\t\tlevel: %s\n\t\t\tprefer_rc4: %s",
set.out_enc_policy,
set.in_enc_policy,
set.allowed_enc_level,
set.prefer_rc4)
def _on_set_max_connections_global(self, key, value):
log.debug("max_connections_global set to %s..", value)
self.session.set_max_connections(value)
def _on_set_max_upload_speed(self, key, value):
log.debug("max_upload_speed set to %s..", value)
# We need to convert Kb/s to B/s
if value < 0:
v = -1
else:
v = int(value * 1024)
self.session.set_upload_rate_limit(v)
def _on_set_max_download_speed(self, key, value):
log.debug("max_download_speed set to %s..", value)
# We need to convert Kb/s to B/s
if value < 0:
v = -1
else:
v = int(value * 1024)
self.session.set_download_rate_limit(v)
def _on_set_max_upload_slots_global(self, key, value):
log.debug("max_upload_slots_global set to %s..", value)
self.session.set_max_uploads(value)
def _on_set_max_half_open_connections(self, key, value):
self.session.set_max_half_open_connections(value)
def _on_set_max_connections_per_second(self, key, value):
self.session_set_setting("connection_speed", value)
def _on_set_ignore_limits_on_local_network(self, key, value):
self.session_set_setting("ignore_limits_on_local_network", value)
def _on_set_share_ratio_limit(self, key, value):
log.debug("%s set to %s..", key, value)
self.session_set_setting("share_ratio_limit", value)
def _on_set_seed_time_ratio_limit(self, key, value):
log.debug("%s set to %s..", key, value)
self.session_set_setting("seed_time_ratio_limit", value)
def _on_set_seed_time_limit(self, key, value):
log.debug("%s set to %s..", key, value)
# This value is stored in minutes in deluge, but libtorrent wants seconds
self.session_set_setting("seed_time_limit", int(value * 60))
def _on_set_max_active_downloading(self, key, value):
log.debug("%s set to %s..", key, value)
self.session_set_setting("active_downloads", value)
def _on_set_max_active_seeding(self, key, value):
log.debug("%s set to %s..", key, value)
self.session_set_setting("active_seeds", value)
def _on_set_max_active_limit(self, key, value):
log.debug("%s set to %s..", key, value)
self.session_set_setting("active_limit", value)
def _on_set_dont_count_slow_torrents(self, key, value):
log.debug("%s set to %s..", key, value)
self.session_set_setting("dont_count_slow_torrents", value)
def _on_set_send_info(self, key, value):
log.debug("Sending anonymous stats..")
"""sends anonymous stats home"""
class Send_Info_Thread(threading.Thread):
def __init__(self, config):
self.config = config
threading.Thread.__init__(self)
def run(self):
import time
now = time.time()
# check if we've done this within the last week or never
if (now - self.config["info_sent"]) >= (60 * 60 * 24 * 7):
import deluge.common
from urllib import quote_plus
from urllib2 import urlopen
import platform
try:
url = "http://deluge-torrent.org/stats_get.php?processor=" + \
platform.machine() + "&python=" + platform.python_version() \
+ "&deluge=" + deluge.common.get_version() \
+ "&os=" + platform.system() \
+ "&plugins=" + quote_plus(":".join(self.config["enabled_plugins"]))
urlopen(url)
except IOError, e:
log.debug("Network error while trying to send info: %s", e)
else:
self.config["info_sent"] = now
if value:
Send_Info_Thread(self.config).start()
def _on_set_new_release_check(self, key, value):
if value:
log.debug("Checking for new release..")
threading.Thread(target=self.core.get_new_release).start()
if self.new_release_timer and self.new_release_timer.running:
self.new_release_timer.stop()
# Set a timer to check for a new release every 3 days
self.new_release_timer = LoopingCall(
self._on_set_new_release_check, "new_release_check", True)
self.new_release_timer.start(72 * 60 * 60, False)
else:
if self.new_release_timer and self.new_release_timer.running:
self.new_release_timer.stop()
def _on_set_proxies(self, key, value):
for k, v in value.items():
if v["type"]:
proxy_settings = lt.proxy_settings()
proxy_settings.type = lt.proxy_type(v["type"])
proxy_settings.username = str(v["username"])
proxy_settings.password = str(v["password"])
proxy_settings.hostname = str(v["hostname"])
proxy_settings.port = v["port"]
log.debug("setting %s proxy settings", k)
getattr(self.session, "set_%s_proxy" % k)(proxy_settings)
def _on_set_rate_limit_ip_overhead(self, key, value):
log.debug("%s: %s", key, value)
self.session_set_setting("rate_limit_ip_overhead", value)
def _on_set_geoip_db_location(self, key, value):
log.debug("%s: %s", key, value)
# Load the GeoIP DB for country look-ups if available
geoip_db = ""
if os.path.exists(value):
geoip_db = value
elif os.path.exists(deluge.common.resource_filename("deluge", os.path.join("data", "GeoIP.dat"))):
geoip_db = deluge.common.resource_filename(
"deluge", os.path.join("data", "GeoIP.dat")
)
else:
log.warning("Unable to find GeoIP database file!")
if geoip_db:
try:
self.session.load_country_db(str(geoip_db))
except Exception, e:
log.error("Unable to load geoip database!")
log.exception(e)
def _on_set_cache_size(self, key, value):
log.debug("%s: %s", key, value)
self.session_set_setting("cache_size", value)
def _on_set_cache_expiry(self, key, value):
log.debug("%s: %s", key, value)
self.session_set_setting("cache_expiry", value)
def _on_auto_manage_prefer_seeds(self, key, value):
log.debug("%s set to %s..", key, value)
self.session_set_setting("auto_manage_prefer_seeds", value)

612
deluge/core/rpcserver.py Normal file
View File

@ -0,0 +1,612 @@
#
# rpcserver.py
#
# Copyright (C) 2008,2009 Andrew Resch <andrewresch@gmail.com>
#
# Deluge is free software.
#
# You may redistribute it and/or modify it under the terms of the
# GNU General Public License, as published by the Free Software
# Foundation; either version 3 of the License, or (at your option)
# any later version.
#
# deluge is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with deluge. If not, write to:
# The Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor
# Boston, MA 02110-1301, USA.
#
# In addition, as a special exception, the copyright holders give
# permission to link the code of portions of this program with the OpenSSL
# library.
# You must obey the GNU General Public License in all respects for all of
# the code used other than OpenSSL. If you modify file(s) with this
# exception, you may extend this exception to your version of the file(s),
# but you are not obligated to do so. If you do not wish to do so, delete
# this exception statement from your version. If you delete this exception
# statement from all source files in the program, then also delete it here.
#
#
"""RPCServer Module"""
import sys
import zlib
import os
import stat
import logging
import traceback
from twisted.internet.protocol import Factory, Protocol
from twisted.internet import reactor, defer
from OpenSSL import crypto, SSL
from types import FunctionType
try:
import rencode
except ImportError:
import deluge.rencode as rencode
import deluge.component as component
import deluge.configmanager
from deluge.core.authmanager import (AUTH_LEVEL_NONE, AUTH_LEVEL_DEFAULT,
AUTH_LEVEL_ADMIN)
from deluge.error import (DelugeError, NotAuthorizedError, WrappedException,
_ClientSideRecreateError, IncompatibleClient)
RPC_RESPONSE = 1
RPC_ERROR = 2
RPC_EVENT = 3
log = logging.getLogger(__name__)
def export(auth_level=AUTH_LEVEL_DEFAULT):
"""
Decorator function to register an object's method as an RPC. The object
will need to be registered with an :class:`RPCServer` to be effective.
:param func: the function to export
:type func: function
:param auth_level: the auth level required to call this method
:type auth_level: int
"""
def wrap(func, *args, **kwargs):
func._rpcserver_export = True
func._rpcserver_auth_level = auth_level
doc = func.__doc__
func.__doc__ = "**RPC Exported Function** (*Auth Level: %s*)\n\n" % auth_level
if doc:
func.__doc__ += doc
return func
if type(auth_level) is FunctionType:
func = auth_level
auth_level = AUTH_LEVEL_DEFAULT
return wrap(func)
else:
return wrap
def format_request(call):
"""
Format the RPCRequest message for debug printing
:param call: the request
:type call: a RPCRequest
:returns: a formatted string for printing
:rtype: str
"""
try:
s = call[1] + "("
if call[2]:
s += ", ".join([str(x) for x in call[2]])
if call[3]:
if call[2]:
s += ", "
s += ", ".join([key + "=" + str(value) for key, value in call[3].items()])
s += ")"
except UnicodeEncodeError:
return "UnicodeEncodeError, call: %s" % call
else:
return s
class ServerContextFactory(object):
def getContext(self):
"""
Create an SSL context.
This loads the servers cert/private key SSL files for use with the
SSL transport.
"""
ssl_dir = deluge.configmanager.get_config_dir("ssl")
ctx = SSL.Context(SSL.SSLv3_METHOD)
ctx.use_certificate_file(os.path.join(ssl_dir, "daemon.cert"))
ctx.use_privatekey_file(os.path.join(ssl_dir, "daemon.pkey"))
return ctx
class DelugeRPCProtocol(Protocol):
__buffer = None
def dataReceived(self, data):
"""
This method is called whenever data is received from a client. The
only message that a client sends to the server is a RPC Request message.
If the RPC Request message is valid, then the method is called in
:meth:`dispatch`.
:param data: the data from the client. It should be a zlib compressed
rencoded string.
:type data: str
"""
if self.__buffer:
# We have some data from the last dataReceived() so lets prepend it
data = self.__buffer + data
self.__buffer = None
while data:
dobj = zlib.decompressobj()
try:
request = rencode.loads(dobj.decompress(data))
except Exception, e:
#log.debug("Received possible invalid message (%r): %s", data, e)
# This could be cut-off data, so we'll save this in the buffer
# and try to prepend it on the next dataReceived()
self.__buffer = data
return
else:
data = dobj.unused_data
if type(request) is not tuple:
log.debug("Received invalid message: type is not tuple")
return
if len(request) < 1:
log.debug("Received invalid message: there are no items")
return
for call in request:
if len(call) != 4:
log.debug("Received invalid rpc request: number of items "
"in request is %s", len(call))
continue
#log.debug("RPCRequest: %s", format_request(call))
reactor.callLater(0, self.dispatch, *call)
def sendData(self, data):
"""
Sends the data to the client.
:param data: the object that is to be sent to the client. This should
be one of the RPC message types.
:type data: object
"""
self.transport.write(zlib.compress(rencode.dumps(data)))
def connectionMade(self):
"""
This method is called when a new client connects.
"""
peer = self.transport.getPeer()
log.info("Deluge Client connection made from: %s:%s",
peer.host, peer.port)
# Set the initial auth level of this session to AUTH_LEVEL_NONE
self.factory.authorized_sessions[self.transport.sessionno] = AUTH_LEVEL_NONE
def connectionLost(self, reason):
"""
This method is called when the client is disconnected.
:param reason: the reason the client disconnected.
:type reason: str
"""
# We need to remove this session from various dicts
del self.factory.authorized_sessions[self.transport.sessionno]
if self.transport.sessionno in self.factory.session_protocols:
del self.factory.session_protocols[self.transport.sessionno]
if self.transport.sessionno in self.factory.interested_events:
del self.factory.interested_events[self.transport.sessionno]
log.info("Deluge client disconnected: %s", reason.value)
def valid_session(self):
return self.transport.sessionno in self.factory.authorized_sessions
def dispatch(self, request_id, method, args, kwargs):
"""
This method is run when a RPC Request is made. It will run the local method
and will send either a RPC Response or RPC Error back to the client.
:param request_id: the request_id from the client (sent in the RPC Request)
:type request_id: int
:param method: the local method to call. It must be registered with
the :class:`RPCServer`.
:type method: str
:param args: the arguments to pass to `method`
:type args: list
:param kwargs: the keyword-arguments to pass to `method`
:type kwargs: dict
"""
def sendError():
"""
Sends an error response with the contents of the exception that was raised.
"""
exceptionType, exceptionValue, exceptionTraceback = sys.exc_info()
formated_tb = "".join(traceback.format_tb(exceptionTraceback))
try:
self.sendData((
RPC_ERROR,
request_id,
exceptionType.__name__,
exceptionValue._args,
exceptionValue._kwargs,
formated_tb
))
except Exception, err:
# This most likely not a deluge exception, let's wrap it
log.error("An exception occurred while sending RPC_ERROR to "
"client. Wrapping it and resending. Error to "
"send(causing exception goes next):\n%s", formated_tb)
log.exception(err)
try:
raise WrappedException(str(exceptionValue), exceptionType.__name__, formated_tb)
except:
sendError()
if method == "daemon.info":
# This is a special case and used in the initial connection process
self.sendData((RPC_RESPONSE, request_id, deluge.common.get_version()))
return
elif method == "daemon.login":
# This is a special case and used in the initial connection process
# We need to authenticate the user here
log.debug("RPC dispatch daemon.login")
try:
client_version = kwargs.pop('client_version', None)
if client_version is None:
raise IncompatibleClient(deluge.common.get_version())
ret = component.get("AuthManager").authorize(*args, **kwargs)
if ret:
self.factory.authorized_sessions[self.transport.sessionno] = (ret, args[0])
self.factory.session_protocols[self.transport.sessionno] = self
except Exception, e:
sendError()
if not isinstance(e, _ClientSideRecreateError):
log.exception(e)
else:
self.sendData((RPC_RESPONSE, request_id, (ret)))
if not ret:
self.transport.loseConnection()
finally:
return
elif method == "daemon.set_event_interest" and self.valid_session():
log.debug("RPC dispatch daemon.set_event_interest")
# This special case is to allow clients to set which events they are
# interested in receiving.
# We are expecting a sequence from the client.
try:
if self.transport.sessionno not in self.factory.interested_events:
self.factory.interested_events[self.transport.sessionno] = []
self.factory.interested_events[self.transport.sessionno].extend(args[0])
except Exception, e:
sendError()
else:
self.sendData((RPC_RESPONSE, request_id, (True)))
finally:
return
if method in self.factory.methods and self.valid_session():
log.debug("RPC dispatch %s", method)
try:
method_auth_requirement = self.factory.methods[method]._rpcserver_auth_level
auth_level = self.factory.authorized_sessions[self.transport.sessionno][0]
if auth_level < method_auth_requirement:
# This session is not allowed to call this method
log.debug("Session %s is trying to call a method it is not "
"authorized to call!", self.transport.sessionno)
raise NotAuthorizedError(auth_level, method_auth_requirement)
# Set the session_id in the factory so that methods can know
# which session is calling it.
self.factory.session_id = self.transport.sessionno
ret = self.factory.methods[method](*args, **kwargs)
except Exception, e:
sendError()
# Don't bother printing out DelugeErrors, because they are just
# for the client
if not isinstance(e, DelugeError):
log.exception("Exception calling RPC request: %s", e)
else:
# Check if the return value is a deferred, since we'll need to
# wait for it to fire before sending the RPC_RESPONSE
if isinstance(ret, defer.Deferred):
def on_success(result):
self.sendData((RPC_RESPONSE, request_id, result))
return result
def on_fail(failure):
try:
failure.raiseException()
except Exception, e:
sendError()
return failure
ret.addCallbacks(on_success, on_fail)
else:
self.sendData((RPC_RESPONSE, request_id, ret))
class RPCServer(component.Component):
"""
This class is used to handle rpc requests from the client. Objects are
registered with this class and their methods are exported using the export
decorator.
:param port: the port the RPCServer will listen on
:type port: int
:param interface: the interface to listen on, this may override the `allow_remote` setting
:type interface: str
:param allow_remote: set True if the server should allow remote connections
:type allow_remote: bool
:param listen: if False, will not start listening.. This is only useful in Classic Mode
:type listen: bool
"""
def __init__(self, port=58846, interface="", allow_remote=False, listen=True):
component.Component.__init__(self, "RPCServer")
self.factory = Factory()
self.factory.protocol = DelugeRPCProtocol
self.factory.session_id = -1
# Holds the registered methods
self.factory.methods = {}
# Holds the session_ids and auth levels
self.factory.authorized_sessions = {}
# Holds the protocol objects with the session_id as key
self.factory.session_protocols = {}
# Holds the interested event list for the sessions
self.factory.interested_events = {}
self.listen = listen
if not listen:
return
if allow_remote:
hostname = ""
else:
hostname = "localhost"
if interface:
hostname = interface
log.info("Starting DelugeRPC server %s:%s", hostname, port)
# Check for SSL keys and generate some if needed
check_ssl_keys()
try:
reactor.listenSSL(port, self.factory, ServerContextFactory(), interface=hostname)
except Exception, e:
log.info("Daemon already running or port not available..")
log.error(e)
sys.exit(0)
def register_object(self, obj, name=None):
"""
Registers an object to export it's rpc methods. These methods should
be exported with the export decorator prior to registering the object.
:param obj: the object that we want to export
:type obj: object
:param name: the name to use, if None, it will be the class name of the object
:type name: str
"""
if not name:
name = obj.__class__.__name__.lower()
for d in dir(obj):
if d[0] == "_":
continue
if getattr(getattr(obj, d), '_rpcserver_export', False):
log.debug("Registering method: %s", name + "." + d)
self.factory.methods[name + "." + d] = getattr(obj, d)
def deregister_object(self, obj):
"""
Deregisters an objects exported rpc methods.
:param obj: the object that was previously registered
"""
for key, value in self.factory.methods.items():
if value.im_self == obj:
del self.factory.methods[key]
def get_object_method(self, name):
"""
Returns a registered method.
:param name: the name of the method, usually in the form of 'object.method'
:type name: str
:returns: method
:raises KeyError: if `name` is not registered
"""
return self.factory.methods[name]
def get_method_list(self):
"""
Returns a list of the exported methods.
:returns: the exported methods
:rtype: list
"""
return self.factory.methods.keys()
def get_session_id(self):
"""
Returns the session id of the current RPC.
:returns: the session id, this will be -1 if no connections have been made
:rtype: int
"""
return self.factory.session_id
def get_session_user(self):
"""
Returns the username calling the current RPC.
:returns: the username of the user calling the current RPC
:rtype: string
"""
if not self.listen:
return "localclient"
session_id = self.get_session_id()
if session_id > -1 and session_id in self.factory.authorized_sessions:
return self.factory.authorized_sessions[session_id][1]
else:
# No connections made yet
return ""
def get_session_auth_level(self):
"""
Returns the auth level of the user calling the current RPC.
:returns: the auth level
:rtype: int
"""
if not self.listen:
return AUTH_LEVEL_ADMIN
return self.factory.authorized_sessions[self.get_session_id()][0]
def get_rpc_auth_level(self, rpc):
"""
Returns the auth level requirement for an exported rpc.
:returns: the auth level
:rtype: int
"""
self.factory.methods[rpc]._rpcserver_auth_level
def is_session_valid(self, session_id):
"""
Checks if the session is still valid, eg, if the client is still connected.
:param session_id: the session id
:type session_id: int
:returns: True if the session is valid
:rtype: bool
"""
return session_id in self.factory.authorized_sessions
def emit_event(self, event):
"""
Emits the event to interested clients.
:param event: the event to emit
:type event: :class:`deluge.event.DelugeEvent`
"""
log.debug("intevents: %s", self.factory.interested_events)
# Find sessions interested in this event
for session_id, interest in self.factory.interested_events.iteritems():
if event.name in interest:
log.debug("Emit Event: %s %s", event.name, event.args)
# This session is interested so send a RPC_EVENT
self.factory.session_protocols[session_id].sendData(
(RPC_EVENT, event.name, event.args)
)
def emit_event_for_session_id(self, session_id, event):
"""
Emits the event to specified session_id.
:param session_id: the event to emit
:type session_id: int
:param event: the event to emit
:type event: :class:`deluge.event.DelugeEvent`
"""
if not self.is_session_valid(session_id):
log.debug("Session ID %s is not valid. Not sending event \"%s\".", session_id, event.name)
return
if session_id not in self.factory.interested_events:
log.debug("Session ID %s is not interested in any events. Not sending event \"%s\".", session_id, event.name)
return
if event.name not in self.factory.interested_events[session_id]:
log.debug("Session ID %s is not interested in event \"%s\". Not sending it.", session_id, event.name)
return
log.debug("Sending event \"%s\" with args \"%s\" to session id \"%s\".",
event.name, event.args, session_id)
self.factory.session_protocols[session_id].sendData((RPC_EVENT, event.name, event.args))
def check_ssl_keys():
"""
Check for SSL cert/key and create them if necessary
"""
ssl_dir = deluge.configmanager.get_config_dir("ssl")
if not os.path.exists(ssl_dir):
# The ssl folder doesn't exist so we need to create it
os.makedirs(ssl_dir)
generate_ssl_keys()
else:
for f in ("daemon.pkey", "daemon.cert"):
if not os.path.exists(os.path.join(ssl_dir, f)):
generate_ssl_keys()
break
def generate_ssl_keys():
"""
This method generates a new SSL key/cert.
"""
digest = "md5"
# Generate key pair
pkey = crypto.PKey()
pkey.generate_key(crypto.TYPE_RSA, 1024)
# Generate cert request
req = crypto.X509Req()
subj = req.get_subject()
setattr(subj, "CN", "Deluge Daemon")
req.set_pubkey(pkey)
req.sign(pkey, digest)
# Generate certificate
cert = crypto.X509()
cert.set_serial_number(0)
cert.gmtime_adj_notBefore(0)
cert.gmtime_adj_notAfter(60*60*24*365*5) # Five Years
cert.set_issuer(req.get_subject())
cert.set_subject(req.get_subject())
cert.set_pubkey(req.get_pubkey())
cert.sign(pkey, digest)
# Write out files
ssl_dir = deluge.configmanager.get_config_dir("ssl")
open(os.path.join(ssl_dir, "daemon.pkey"), "w").write(
crypto.dump_privatekey(crypto.FILETYPE_PEM, pkey)
)
open(os.path.join(ssl_dir, "daemon.cert"), "w").write(
crypto.dump_certificate(crypto.FILETYPE_PEM, cert)
)
# Make the files only readable by this user
for f in ("daemon.pkey", "daemon.cert"):
os.chmod(os.path.join(ssl_dir, f), stat.S_IREAD | stat.S_IWRITE)

1061
deluge/core/torrent.py Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

51
deluge/decorators.py Normal file
View File

@ -0,0 +1,51 @@
#
# decorators.py
#
# Copyright (C) 2010 John Garland <johnnybg+deluge@gmail.com>
#
# Deluge is free software.
#
# You may redistribute it and/or modify it under the terms of the
# GNU General Public License, as published by the Free Software
# Foundation; either version 3 of the License, or (at your option)
# any later version.
#
# deluge is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with deluge. If not, write to:
# The Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor
# Boston, MA 02110-1301, USA.
#
# In addition, as a special exception, the copyright holders give
# permission to link the code of portions of this program with the OpenSSL
# library.
# You must obey the GNU General Public License in all respects for all of
# the code used other than OpenSSL. If you modify file(s) with this
# exception, you may extend this exception to your version of the file(s),
# but you are not obligated to do so. If you do not wish to do so, delete
# this exception statement from your version. If you delete this exception
# statement from all source files in the program, then also delete it here.
#
#
from functools import wraps
def proxy(proxy_func):
"""
Factory class which returns a decorator that passes
the decorated function to a proxy function
:param proxy_func: the proxy function
:type proxy_func: function
"""
def decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
return proxy_func(func, *args, **kwargs)
return wrapper
return decorator

131
deluge/error.py Normal file
View File

@ -0,0 +1,131 @@
#
# error.py
#
# Copyright (C) 2008 Andrew Resch <andrewresch@gmail.com>
# Copyright (C) 2011 Pedro Algarvio <pedro@algarvio.me>
#
# Deluge is free software.
#
# You may redistribute it and/or modify it under the terms of the
# GNU General Public License, as published by the Free Software
# Foundation; either version 3 of the License, or (at your option)
# any later version.
#
# deluge is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with deluge. If not, write to:
# The Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor
# Boston, MA 02110-1301, USA.
#
# In addition, as a special exception, the copyright holders give
# permission to link the code of portions of this program with the OpenSSL
# library.
# You must obey the GNU General Public License in all respects for all of
# the code used other than OpenSSL. If you modify file(s) with this
# exception, you may extend this exception to your version of the file(s),
# but you are not obligated to do so. If you do not wish to do so, delete
# this exception statement from your version. If you delete this exception
# statement from all source files in the program, then also delete it here.
#
#
class DelugeError(Exception):
def _get_message(self):
return self._message
def _set_message(self, message):
self._message = message
message = property(_get_message, _set_message)
del _get_message, _set_message
def __str__(self):
return self.message
def __new__(cls, *args, **kwargs):
inst = super(DelugeError, cls).__new__(cls, *args, **kwargs)
inst._args = args
inst._kwargs = kwargs
return inst
class NoCoreError(DelugeError):
pass
class DaemonRunningError(DelugeError):
pass
class InvalidTorrentError(DelugeError):
pass
class InvalidPathError(DelugeError):
pass
class WrappedException(DelugeError):
def _get_traceback(self):
return self._traceback
def _set_traceback(self, traceback):
self._traceback = traceback
traceback = property(_get_traceback, _set_traceback)
del _get_traceback, _set_traceback
def _get_type(self):
return self._type
def _set_type(self, type):
self._type = type
type = property(_get_type, _set_type)
del _get_type, _set_type
def __init__(self, message, exception_type, traceback):
self.message = message
self.type = exception_type
self.traceback = traceback
class _ClientSideRecreateError(DelugeError):
pass
class IncompatibleClient(_ClientSideRecreateError):
def __init__(self, daemon_version):
self.daemon_version = daemon_version
self.message = _(
"Your deluge client is not compatible with the daemon. "
"Please upgrade your client to %(daemon_version)s"
) % dict(daemon_version=self.daemon_version)
class NotAuthorizedError(_ClientSideRecreateError):
def __init__(self, current_level, required_level):
self.message = _(
"Auth level too low: %(current_level)s < %(required_level)s" %
dict(current_level=current_level, required_level=required_level)
)
self.current_level = current_level
self.required_level = required_level
class _UsernameBasedPasstroughError(_ClientSideRecreateError):
def _get_username(self):
return self._username
def _set_username(self, username):
self._username = username
username = property(_get_username, _set_username)
del _get_username, _set_username
def __init__(self, message, username):
super(_UsernameBasedPasstroughError, self).__init__(message)
self.message = message
self.username = username
class BadLoginError(_UsernameBasedPasstroughError):
pass
class AuthenticationRequired(_UsernameBasedPasstroughError):
pass
class AuthManagerError(_UsernameBasedPasstroughError):
pass

262
deluge/event.py Normal file
View File

@ -0,0 +1,262 @@
#
# event.py
#
# Copyright (C) 2009 Andrew Resch <andrewresch@gmail.com>
#
# Deluge is free software.
#
# You may redistribute it and/or modify it under the terms of the
# GNU General Public License, as published by the Free Software
# Foundation; either version 3 of the License, or (at your option)
# any later version.
#
# deluge is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with deluge. If not, write to:
# The Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor
# Boston, MA 02110-1301, USA.
#
# In addition, as a special exception, the copyright holders give
# permission to link the code of portions of this program with the OpenSSL
# library.
# You must obey the GNU General Public License in all respects for all of
# the code used other than OpenSSL. If you modify file(s) with this
# exception, you may extend this exception to your version of the file(s),
# but you are not obligated to do so. If you do not wish to do so, delete
# this exception statement from your version. If you delete this exception
# statement from all source files in the program, then also delete it here.
#
#
"""
Event module.
This module describes the types of events that can be generated by the daemon
and subsequently emitted to the clients.
"""
known_events = {}
class DelugeEventMetaClass(type):
"""
This metaclass simply keeps a list of all events classes created.
"""
def __init__(cls, name, bases, dct):
super(DelugeEventMetaClass, cls).__init__(name, bases, dct)
if name != "DelugeEvent":
known_events[name] = cls
class DelugeEvent(object):
"""
The base class for all events.
:prop name: this is the name of the class which is in-turn the event name
:type name: string
:prop args: a list of the attribute values
:type args: list
"""
__metaclass__ = DelugeEventMetaClass
def _get_name(self):
return self.__class__.__name__
def _get_args(self):
if not hasattr(self, "_args"):
return []
return self._args
name = property(fget=_get_name)
args = property(fget=_get_args)
class TorrentAddedEvent(DelugeEvent):
"""
Emitted when a new torrent is successfully added to the session.
"""
def __init__(self, torrent_id, from_state):
"""
:param torrent_id: the torrent_id of the torrent that was added
:type torrent_id: string
:param from_state: was the torrent loaded from state? Or is it a new torrent.
:type from_state: bool
"""
self._args = [torrent_id, from_state]
class TorrentRemovedEvent(DelugeEvent):
"""
Emitted when a torrent has been removed from the session.
"""
def __init__(self, torrent_id):
"""
:param torrent_id: the torrent_id
:type torrent_id: string
"""
self._args = [torrent_id]
class PreTorrentRemovedEvent(DelugeEvent):
"""
Emitted when a torrent is about to be removed from the session.
"""
def __init__(self, torrent_id):
"""
:param torrent_id: the torrent_id
:type torrent_id: string
"""
self._args = [torrent_id]
class TorrentStateChangedEvent(DelugeEvent):
"""
Emitted when a torrent changes state.
"""
def __init__(self, torrent_id, state):
"""
:param torrent_id: the torrent_id
:type torrent_id: string
:param state: the new state
:type state: string
"""
self._args = [torrent_id, state]
class TorrentQueueChangedEvent(DelugeEvent):
"""
Emitted when the queue order has changed.
"""
pass
class TorrentFolderRenamedEvent(DelugeEvent):
"""
Emitted when a folder within a torrent has been renamed.
"""
def __init__(self, torrent_id, old, new):
"""
:param torrent_id: the torrent_id
:type torrent_id: string
:param old: the old folder name
:type old: string
:param new: the new folder name
:type new: string
"""
self._args = [torrent_id, old, new]
class TorrentFileRenamedEvent(DelugeEvent):
"""
Emitted when a file within a torrent has been renamed.
"""
def __init__(self, torrent_id, index, name):
"""
:param torrent_id: the torrent_id
:type torrent_id: string
:param index: the index of the file
:type index: int
:param name: the new filename
:type name: string
"""
self._args = [torrent_id, index, name]
class TorrentFinishedEvent(DelugeEvent):
"""
Emitted when a torrent finishes downloading.
"""
def __init__(self, torrent_id):
"""
:param torrent_id: the torrent_id
:type torrent_id: string
"""
self._args = [torrent_id]
class TorrentResumedEvent(DelugeEvent):
"""
Emitted when a torrent resumes from a paused state.
"""
def __init__(self, torrent_id):
"""
:param torrent_id: the torrent_id
:type torrent_id: string
"""
self._args = [torrent_id]
class TorrentFileCompletedEvent(DelugeEvent):
"""
Emitted when a file completes.
This will only work with libtorrent 0.15 or greater.
"""
def __init__(self, torrent_id, index):
"""
:param torrent_id: the torrent_id
:type torrent_id: string
:param index: the file index
:type index: int
"""
self._args = [torrent_id, index]
class CreateTorrentProgressEvent(DelugeEvent):
"""
Emitted when creating a torrent file remotely.
"""
def __init__(self, piece_count, num_pieces):
self._args = [piece_count, num_pieces]
class NewVersionAvailableEvent(DelugeEvent):
"""
Emitted when a more recent version of Deluge is available.
"""
def __init__(self, new_release):
"""
:param new_release: the new version that is available
:type new_release: string
"""
self._args = [new_release]
class SessionStartedEvent(DelugeEvent):
"""
Emitted when a session has started. This typically only happens once when
the daemon is initially started.
"""
pass
class SessionPausedEvent(DelugeEvent):
"""
Emitted when the session has been paused.
"""
pass
class SessionResumedEvent(DelugeEvent):
"""
Emitted when the session has been resumed.
"""
pass
class ConfigValueChangedEvent(DelugeEvent):
"""
Emitted when a config value changes in the Core.
"""
def __init__(self, key, value):
"""
:param key: the key that changed
:type key: string
:param value: the new value of the `:param:key`
"""
self._args = [key, value]
class PluginEnabledEvent(DelugeEvent):
"""
Emitted when a plugin is enabled in the Core.
"""
def __init__(self, plugin_name):
self._args = [plugin_name]
class PluginDisabledEvent(DelugeEvent):
"""
Emitted when a plugin is disabled in the Core.
"""
def __init__(self, plugin_name):
self._args = [plugin_name]

207
deluge/httpdownloader.py Normal file
View File

@ -0,0 +1,207 @@
#
# httpdownloader.py
#
# Copyright (C) 2009 Andrew Resch <andrewresch@gmail.com>
#
# Deluge is free software.
#
# You may redistribute it and/or modify it under the terms of the
# GNU General Public License, as published by the Free Software
# Foundation; either version 3 of the License, or (at your option)
# any later version.
#
# deluge is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with deluge. If not, write to:
# The Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor
# Boston, MA 02110-1301, USA.
#
# In addition, as a special exception, the copyright holders give
# permission to link the code of portions of this program with the OpenSSL
# library.
# You must obey the GNU General Public License in all respects for all of
# the code used other than OpenSSL. If you modify file(s) with this
# exception, you may extend this exception to your version of the file(s),
# but you are not obligated to do so. If you do not wish to do so, delete
# this exception statement from your version. If you delete this exception
# statement from all source files in the program, then also delete it here.
#
from twisted.web import client, http
from twisted.web.error import PageRedirect
from twisted.python.failure import Failure
from twisted.internet import reactor
from common import get_version
import logging
import os.path
import zlib
log = logging.getLogger(__name__)
class HTTPDownloader(client.HTTPDownloader):
"""
Factory class for downloading files and keeping track of progress.
"""
def __init__(self, url, filename, part_callback=None, headers=None,
force_filename=False, allow_compression=True):
"""
:param url: the url to download from
:type url: string
:param filename: the filename to save the file as
:type filename: string
:param force_filename: forces use of the supplied filename, regardless of header content
:type force_filename: bool
:param part_callback: a function to be called when a part of data
is received, it's signature should be: func(data, current_length, total_length)
:type part_callback: function
:param headers: any optional headers to send
:type headers: dictionary
"""
self.part_callback = part_callback
self.current_length = 0
self.decoder = None
self.value = filename
self.force_filename = force_filename
self.allow_compression = allow_compression
agent = "Deluge/%s (http://deluge-torrent.org)" % get_version()
client.HTTPDownloader.__init__(self, url, filename, headers=headers, agent=agent)
def gotStatus(self, version, status, message):
self.code = int(status)
client.HTTPDownloader.gotStatus(self, version, status, message)
def gotHeaders(self, headers):
if self.code == http.OK:
if "content-length" in headers:
self.total_length = int(headers["content-length"][0])
else:
self.total_length = 0
if self.allow_compression and "content-encoding" in headers and \
headers["content-encoding"][0] in ("gzip", "x-gzip", "deflate"):
# Adding 32 to the wbits enables gzip & zlib decoding (with automatic header detection)
# Adding 16 just enables gzip decoding (no zlib)
self.decoder = zlib.decompressobj(zlib.MAX_WBITS + 32)
if "content-disposition" in headers and not self.force_filename:
new_file_name = str(headers["content-disposition"][0]).split(";")[1].split("=")[1]
new_file_name = sanitise_filename(new_file_name)
new_file_name = os.path.join(os.path.split(self.fileName)[0], new_file_name)
count = 1
fileroot = os.path.splitext(new_file_name)[0]
fileext = os.path.splitext(new_file_name)[1]
while os.path.isfile(new_file_name):
# Increment filename if already exists
new_file_name = "%s-%s%s" % (fileroot, count, fileext)
count += 1
self.fileName = new_file_name
self.value = new_file_name
elif self.code in (http.MOVED_PERMANENTLY, http.FOUND, http.SEE_OTHER, http.TEMPORARY_REDIRECT):
location = headers["location"][0]
error = PageRedirect(self.code, location=location)
self.noPage(Failure(error))
return client.HTTPDownloader.gotHeaders(self, headers)
def pagePart(self, data):
if self.code == http.OK:
self.current_length += len(data)
if self.decoder:
data = self.decoder.decompress(data)
if self.part_callback:
self.part_callback(data, self.current_length, self.total_length)
return client.HTTPDownloader.pagePart(self, data)
def pageEnd(self):
if self.decoder:
data = self.decoder.flush()
self.current_length -= len(data)
self.decoder = None
self.pagePart(data)
return client.HTTPDownloader.pageEnd(self)
def sanitise_filename(filename):
"""
Sanitises a filename to use as a download destination file.
Logs any filenames that could be considered malicious.
:param filename: the filename to sanitise
:type filename: string
:returns: the sanitised filename
:rtype: string
"""
# Remove any quotes
filename = filename.strip("'\"")
if os.path.basename(filename) != filename:
# Dodgy server, log it
log.warning("Potentially malicious server: trying to write to file '%s'" % filename)
# Only use the basename
filename = os.path.basename(filename)
filename = filename.strip()
if filename.startswith(".") or ";" in filename or "|" in filename:
# Dodgy server, log it
log.warning("Potentially malicious server: trying to write to file '%s'" % filename)
return filename
def download_file(url, filename, callback=None, headers=None,
force_filename=False, allow_compression=True):
"""
Downloads a file from a specific URL and returns a Deferred. You can also
specify a callback function to be called as parts are received.
:param url: the url to download from
:type url: string
:param filename: the filename to save the file as
:type filename: string
:param callback: a function to be called when a part of data is received,
it's signature should be: func(data, current_length, total_length)
:type callback: function
:param headers: any optional headers to send
:type headers: dictionary
:param force_filename: force us to use the filename specified rather than
one the server may suggest
:type force_filename: boolean
:param allow_compression: allows gzip & deflate decoding
:type allow_compression: boolean
:returns: the filename of the downloaded file
:rtype: Deferred
:raises t.w.e.PageRedirect: when server responds with a temporary redirect
or permanently moved.
:raises t.w.e.Error: for all other HTTP response errors (besides OK)
"""
url = str(url)
filename = str(filename)
if headers:
for key, value in headers.items():
headers[str(key)] = str(value)
if allow_compression:
if not headers:
headers = {}
headers["accept-encoding"] = "deflate, gzip, x-gzip"
scheme, host, port, path = client._parse(url)
factory = HTTPDownloader(url, filename, callback, headers, force_filename, allow_compression)
if scheme == "https":
from twisted.internet import ssl
reactor.connectSSL(host, port, factory, ssl.ClientContextFactory())
else:
reactor.connectTCP(host, port, factory)
return factory.deferred

4191
deluge/i18n/ar.po Normal file

File diff suppressed because it is too large Load Diff

4653
deluge/i18n/ast.po Normal file

File diff suppressed because it is too large Load Diff

3922
deluge/i18n/be.po Normal file

File diff suppressed because it is too large Load Diff

4664
deluge/i18n/bg.po Normal file

File diff suppressed because it is too large Load Diff

3725
deluge/i18n/bn.po Normal file

File diff suppressed because it is too large Load Diff

3744
deluge/i18n/bs.po Normal file

File diff suppressed because it is too large Load Diff

4115
deluge/i18n/ca.po Normal file

File diff suppressed because it is too large Load Diff

4726
deluge/i18n/cs.po Normal file

File diff suppressed because it is too large Load Diff

3820
deluge/i18n/cy.po Normal file

File diff suppressed because it is too large Load Diff

4694
deluge/i18n/da.po Normal file

File diff suppressed because it is too large Load Diff

4777
deluge/i18n/de.po Normal file

File diff suppressed because it is too large Load Diff

4733
deluge/i18n/el.po Normal file

File diff suppressed because it is too large Load Diff

4734
deluge/i18n/en_AU.po Normal file

File diff suppressed because it is too large Load Diff

4736
deluge/i18n/en_CA.po Normal file

File diff suppressed because it is too large Load Diff

4736
deluge/i18n/en_GB.po Normal file

File diff suppressed because it is too large Load Diff

3741
deluge/i18n/eo.po Normal file

File diff suppressed because it is too large Load Diff

4753
deluge/i18n/es.po Normal file

File diff suppressed because it is too large Load Diff

4708
deluge/i18n/et.po Normal file

File diff suppressed because it is too large Load Diff

3760
deluge/i18n/eu.po Normal file

File diff suppressed because it is too large Load Diff

3967
deluge/i18n/fa.po Normal file

File diff suppressed because it is too large Load Diff

4737
deluge/i18n/fi.po Normal file

File diff suppressed because it is too large Load Diff

4832
deluge/i18n/fr.po Normal file

File diff suppressed because it is too large Load Diff

4460
deluge/i18n/fy.po Normal file

File diff suppressed because it is too large Load Diff

4086
deluge/i18n/gl.po Normal file

File diff suppressed because it is too large Load Diff

4579
deluge/i18n/he.po Normal file

File diff suppressed because it is too large Load Diff

4636
deluge/i18n/hi.po Normal file

File diff suppressed because it is too large Load Diff

4198
deluge/i18n/hr.po Normal file

File diff suppressed because it is too large Load Diff

4714
deluge/i18n/hu.po Normal file

File diff suppressed because it is too large Load Diff

4098
deluge/i18n/id.po Normal file

File diff suppressed because it is too large Load Diff

4642
deluge/i18n/is.po Normal file

File diff suppressed because it is too large Load Diff

4825
deluge/i18n/it.po Normal file

File diff suppressed because it is too large Load Diff

3712
deluge/i18n/iu.po Normal file

File diff suppressed because it is too large Load Diff

4652
deluge/i18n/ja.po Normal file

File diff suppressed because it is too large Load Diff

3918
deluge/i18n/ka.po Normal file

File diff suppressed because it is too large Load Diff

4737
deluge/i18n/kk.po Normal file

File diff suppressed because it is too large Load Diff

3922
deluge/i18n/kn.po Normal file

File diff suppressed because it is too large Load Diff

4645
deluge/i18n/ko.po Normal file

File diff suppressed because it is too large Load Diff

3754
deluge/i18n/ku.po Normal file

File diff suppressed because it is too large Load Diff

3727
deluge/i18n/la.po Normal file

File diff suppressed because it is too large Load Diff

4720
deluge/i18n/lt.po Normal file

File diff suppressed because it is too large Load Diff

4742
deluge/i18n/lv.po Normal file

File diff suppressed because it is too large Load Diff

4044
deluge/i18n/mk.po Normal file

File diff suppressed because it is too large Load Diff

4688
deluge/i18n/ms.po Normal file

File diff suppressed because it is too large Load Diff

4671
deluge/i18n/nb.po Normal file

File diff suppressed because it is too large Load Diff

3739
deluge/i18n/nds.po Normal file

File diff suppressed because it is too large Load Diff

4749
deluge/i18n/nl.po Normal file

File diff suppressed because it is too large Load Diff

4725
deluge/i18n/pl.po Normal file

File diff suppressed because it is too large Load Diff

3715
deluge/i18n/pms.po Normal file

File diff suppressed because it is too large Load Diff

4746
deluge/i18n/pt.po Normal file

File diff suppressed because it is too large Load Diff

4746
deluge/i18n/pt_BR.po Normal file

File diff suppressed because it is too large Load Diff

4744
deluge/i18n/ro.po Normal file

File diff suppressed because it is too large Load Diff

4799
deluge/i18n/ru.po Normal file

File diff suppressed because it is too large Load Diff

3712
deluge/i18n/si.po Normal file

File diff suppressed because it is too large Load Diff

4627
deluge/i18n/sk.po Normal file

File diff suppressed because it is too large Load Diff

4544
deluge/i18n/sl.po Normal file

File diff suppressed because it is too large Load Diff

4388
deluge/i18n/sr.po Normal file

File diff suppressed because it is too large Load Diff

4767
deluge/i18n/sv.po Normal file

File diff suppressed because it is too large Load Diff

3733
deluge/i18n/ta.po Normal file

File diff suppressed because it is too large Load Diff

3739
deluge/i18n/th.po Normal file

File diff suppressed because it is too large Load Diff

3715
deluge/i18n/tl.po Normal file

File diff suppressed because it is too large Load Diff

3712
deluge/i18n/tlh.po Normal file

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More