diff --git a/ChangeLog b/ChangeLog index 6ead3cf8a..90a3ec2de 100644 --- a/ChangeLog +++ b/ChangeLog @@ -12,7 +12,8 @@ ==== GtkUI ==== * Attempt to register as the default magnet uri handler in GNOME on startup - * Properly show 100.00% and reduce number of progress bar updates during a torrent creation + * Properly show 100.00% and reduce number of progress bar updates during a + torrent creation * Fix crash in Windows when creating a torrent * Add button to Other preferences to associate magnet links with Deluge @@ -23,7 +24,11 @@ * Fix #1085 only use ints for specific options to prevent unhandled exception ==== Execute ==== - * Use the move_completed path if it is different to the save path in the completed event. + * Use the move_completed path if it is different to the save path + in the completed event. + +==== Core ===== + * Fix the upload_plugin rpc method (was still using XML-RPC stuff) === Deluge 1.2.0_rc4 (24 November 2009) === ==== Core ==== diff --git a/deluge/core/core.py b/deluge/core/core.py index 6b163eb65..bd767f14e 100644 --- a/deluge/core/core.py +++ b/deluge/core/core.py @@ -655,14 +655,21 @@ class Core(component.Component): self.add_torrent_file(os.path.split(target)[1], open(target, "rb").read(), options) @export - def upload_plugin(self, filename, plugin_data): + 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(plugin_data.data) + f.write(filedump) f.close() component.get("CorePluginManager").scan_for_plugins()