diff --git a/deluge/plugins/queue/queue/ui.py b/deluge/plugins/queue/queue/ui.py index d50b8d7ca..8cb120950 100644 --- a/deluge/plugins/queue/queue/ui.py +++ b/deluge/plugins/queue/queue/ui.py @@ -34,7 +34,7 @@ import gettext import locale import pkg_resources -import deluge.ui.client as client +from deluge.ui.client import aclient as client from deluge.log import LOG as log class UI: @@ -78,7 +78,7 @@ class UI: torrent_ids = self.plugin.get_selected_torrents() for torrent_id in torrent_ids: try: - client.get_core().queue_queue_top(torrent_id) + client.queue_queue_top(torrent_id) except Exception, e: log.debug("Unable to queue top torrent: %s", e) return @@ -89,7 +89,7 @@ class UI: torrent_ids = self.plugin.get_selected_torrents() for torrent_id in torrent_ids: try: - client.get_core().queue_queue_up(torrent_id) + client.queue_queue_up(torrent_id) except Exception, e: log.debug("Unable to queue up torrent: %s", e) return @@ -100,7 +100,7 @@ class UI: torrent_ids = self.plugin.get_selected_torrents() for torrent_id in torrent_ids: try: - client.get_core().queue_queue_down(torrent_id) + client.queue_queue_down(torrent_id) except Exception, e: log.debug("Unable to queue down torrent: %s", e) return @@ -111,7 +111,7 @@ class UI: torrent_ids = self.plugin.get_selected_torrents() for torrent_id in torrent_ids: try: - client.get_core().queue_queue_bottom(torrent_id) + client.queue_queue_bottom(torrent_id) except Exception, e: log.debug("Unable to queue bottom torrent: %s", e) return diff --git a/deluge/ui/client.py b/deluge/ui/client.py index 5790959c5..f4cff75a4 100644 --- a/deluge/ui/client.py +++ b/deluge/ui/client.py @@ -1,20 +1,21 @@ # # client.py # -# Copyright (C) 2007 Andrew Resch ('andar') -# +# Copyright (C) 2007/2008 Andrew Resch ('andar') +# Copyright (C) 2008 Martijn Voncken +# # 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 2 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., @@ -43,26 +44,26 @@ import deluge.xmlrpclib as xmlrpclib import deluge.common import deluge.error from deluge.log import LOG as log - + class CoreProxy(gobject.GObject): - __gsignals__ = { - "new_core" : ( + __gsignals__ = { + "new_core" : ( + gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, []), + "no_core" : ( gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, []), - "no_core" : ( - gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, []), } def __init__(self): log.debug("CoreProxy init..") gobject.GObject.__init__(self) self._uri = None - self._core = None + self.rpc_core = None self._multi = None self._callbacks = [] self._multi_timer = None def call(self, func, callback, *args): - if self._core is None or self._multi is None: - if self.get_core() is None: + if self.rpc_core is None or self._multi is None: + if self.rpc_core is None: raise deluge.error.NoCoreError("The core proxy is invalid.") return _func = getattr(self._multi, func) @@ -77,14 +78,14 @@ class CoreProxy(gobject.GObject): _func() else: _func(*args) - + self._callbacks.append([callback]) def do_multicall(self, block=False): if len(self._callbacks) == 0: return True - - if self._multi is not None and self._core is not None: + + if self._multi is not None and self.rpc_core is not None: try: try: for i, ret in enumerate(self._multi()): @@ -99,18 +100,18 @@ class CoreProxy(gobject.GObject): except socket.error, e: log.warning("Could not contact daemon: %s", e) self.set_core_uri(None) - finally: + finally: self._callbacks = [] - - self._multi = xmlrpclib.MultiCall(self._core) + + self._multi = xmlrpclib.MultiCall(self.rpc_core) return True - + def set_core_uri(self, uri): log.info("Setting core uri as %s", uri) - + if uri == None and self._uri != None: self._uri = None - self._core = None + self.rpc_core = None self._multi = None try: gobject.source_remove(self._multi_timer) @@ -118,252 +119,266 @@ class CoreProxy(gobject.GObject): pass self.emit("no_core") return - + if uri != self._uri and self._uri != None: - self._core = None + self.rpc_core = None self._multi = None try: gobject.source_remove(self._multi_timer) except: pass self.emit("no_core") - + self._uri = uri # Get a new core - self.get_core() - + self.get_rpc_core() + def get_core_uri(self): """Returns the URI of the core currently being used.""" return self._uri - - def get_core(self): - if self._core is None and self._uri is not None: + + def get_rpc_core(self): + if self.rpc_core is None and self._uri is not None: log.debug("Creating ServerProxy..") - self._core = xmlrpclib.ServerProxy(self._uri, allow_none=True) - self._multi = xmlrpclib.MultiCall(self._core) + self.rpc_core = xmlrpclib.ServerProxy(self._uri, allow_none=True) + self._multi = xmlrpclib.MultiCall(self.rpc_core) self._multi_timer = gobject.timeout_add(200, self.do_multicall) # Call any callbacks registered self.emit("new_core") - - return self._core - + + return self.rpc_core + _core = CoreProxy() -def get_core(): - """Get the core object and return it""" - return _core - -def connect_on_new_core(callback): - """Connect a callback whenever a new core is connected to.""" - return _core.connect("new_core", callback) +class BaseClient(object): + """ + wraps all calls to core/coreproxy + base for AClient and SClient + """ + no_callback_list = [ "add_torrent_url", "pause_all_torrents", + "resume_all_torrent", "set_config", "enable_plugin", + "disable_plugin", "set_torrent_trackers", + "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", + "block_ip_range", + "remove_torrent", "pause_torrent", "move_torrent" , + "resume_torrent","force_reannounce", "force_recheck", + "deregister_client","register_client", + "add_torrent_file"] -def connect_on_no_core(callback): - """Connect a callback whenever the core is disconnected from.""" - return _core.connect("no_core", callback) - -def set_core_uri(uri): - """Sets the core uri""" - return _core.set_core_uri(uri) + def __init__(self): + self.core = _core -def get_core_uri(): - """Get the core URI""" - return _core.get_core_uri() + #xml-rpc introspection + def list_methods(self): + registered = self.core.rpc_core.system.listMethods( ) + return sorted(registered) -def is_localhost(): - """Returns True if core is a localhost""" - # Get the uri - uri = _core.get_core_uri() - if uri != None: - # Get the host - host = uri[7:].split(":")[0] - if host == "localhost" or host == "127.0.0.1": - return True - - return False + def methodSignature(self, method_name): + "broken :(" + return self.core.rpc_core.system.methodSignature(method_name) -def connected(): - """Returns True if connected to a host, and False if not.""" - if get_core_uri() != None: - return True - return False + def methodHelp(self, method_name): + return self.core.rpc_core.system.methodHelp(method_name) -def shutdown(): - """Shutdown the core daemon""" - try: - get_core().call("shutdown", None) - force_call(block=False) - finally: - set_core_uri(None) + #wrappers, getattr + def get_method(self, method_name): + "Override this in subclass." + raise NotImplementedError() -def force_call(block=True): - """Forces the multicall batch to go now and not wait for the timer. This - call also blocks until all callbacks have been dealt with.""" - get_core().do_multicall(block=block) + def __getattr__(self, method_name): + return self.get_method(method_name) + #raise AttributeError("no attr/method named:%s" % attr) -## Core methods ## - -def register_client(port): - get_core().call("register_client", None, port) - -def deregister_client(): - get_core().call("deregister_client", None) - -def add_torrent_file(torrent_files, torrent_options=None): - """Adds torrent files to the core + #custom wrapped methods: + def add_torrent_file(self, torrent_files, torrent_options=None): + """Adds torrent files to the core Expects a list of torrent files A list of torrent_option dictionaries in the same order of torrent_files - """ - if torrent_files is None: - log.debug("No torrent files selected..") - return - log.debug("Attempting to add torrent files: %s", torrent_files) - for torrent_file in torrent_files: - # Open the .torrent file for reading because we need to send it's - # contents to the core. - try: - f = open(torrent_file, "rb") - except Exception, e: - log.warning("Unable to open %s: %s", torrent_file, e) - continue - - # Get the filename because the core doesn't want a path. - (path, filename) = os.path.split(torrent_file) - fdump = xmlrpclib.Binary(f.read()) - f.close() - - # Get the options for the torrent - if torrent_options != None: + """ + if torrent_files is None: + log.debug("No torrent files selected..") + return + log.debug("Attempting to add torrent files: %s", torrent_files) + for torrent_file in torrent_files: + # Open the .torrent file for reading because we need to send it's + # contents to the core. try: - options = torrent_options[torrent_files.index(torrent_file)] - except: + f = open(torrent_file, "rb") + except Exception, e: + log.warning("Unable to open %s: %s", torrent_file, e) + continue + + # Get the filename because the core doesn't want a path. + (path, filename) = os.path.split(torrent_file) + fdump = xmlrpclib.Binary(f.read()) + f.close() + + # Get the options for the torrent + if torrent_options != None: + try: + options = torrent_options[torrent_files.index(torrent_file)] + except: + options = None + else: options = None + self.get_method("add_torrent_file")(filename, fdump, options) + + #utility: + def has_callback(self, method_name): + return (method_name in self.no_callback_list) + + def is_localhost(self): + """Returns True if core is a localhost""" + # Get the uri + uri = self.core.get_core_uri() + if uri != None: + # Get the host + host = uri[7:].split(":")[0] + if host == "localhost" or host == "127.0.0.1": + return True + return False + + def get_core_uri(self): + """Get the core URI""" + return self.core.get_core_uri() + + def set_core_uri(self, uri = 'http://localhost:58846'): + """Sets the core uri""" + return self.core.set_core_uri(uri) + + def connected(self): + """Returns True if connected to a host, and False if not.""" + if self.get_core_uri() != None: + return True + return False + + def shutdown(self): + """Shutdown the core daemon""" + try: + self.core.call("shutdown", None) + self.core.force_call(block=False) + finally: + self.set_core_uri(None) + + #events: + def connect_on_new_core(self, callback): + """Connect a callback whenever a new core is connected to.""" + return self.core.connect("new_core", callback) + + def connect_on_no_core(self, callback): + """Connect a callback whenever the core is disconnected from.""" + return self.core.connect("no_core", callback) + +class SClient(BaseClient): + """ + sync proxy + """ + def get_method(self, method_name): + return getattr(self.core.rpc_core, method_name) + +class AClient(BaseClient): + """ + async proxy + """ + def get_method(self, method_name): + if self.has_callback(method_name): + def async_proxy_nocb(*args, **kwargs): + return self.core.call(method_name,None, *args, **kwargs) + return async_proxy_nocb else: - options = None - - get_core().call("add_torrent_file", None, - filename, fdump, options) + def async_proxy(*args, **kwargs): + return self.core.call(method_name, *args, **kwargs) + return async_proxy -def add_torrent_url(torrent_url, options=None): - """Adds torrents to the core via url""" - from deluge.common import is_url - if is_url(torrent_url): - get_core().call("add_torrent_url", None, - torrent_url, str(), options) - else: - log.warning("Invalid URL %s", torrent_url) - -def remove_torrent(torrent_ids, remove_torrent=False, remove_data=False): - """Removes torrent_ids from the core.. Expects a list of torrent_ids""" - log.debug("Attempting to remove torrents: %s", torrent_ids) - get_core().call("remove_torrent", None, torrent_ids, remove_torrent, remove_data) + def force_call(self, block=True): + """Forces the multicall batch to go now and not wait for the timer. This + call also blocks until all callbacks have been dealt with.""" + self.core.do_multicall(block=block) -def pause_torrent(torrent_ids): - """Pauses torrent_ids""" - get_core().call("pause_torrent", None, torrent_ids) +sclient = SClient() +aclient = AClient() -def move_torrent(torrent_ids, folder): - """Pauses torrent_ids""" - get_core().call("move_torrent", None, torrent_ids, folder) +#------------------------------------------------------------------------------ +#tests: +#------------------------------------------------------------------------------ -def pause_all_torrents(): - """Pauses all torrents""" - get_core().call("pause_all_torrents", None) +def test_introspection(): + print "*start introspection test*" + sclient.set_core_uri() + print "list_methods", sclient.list_methods() + print "sig of block_ip_range", sclient.methodSignature('block_ip_range') + print "doc of block_ip_range", sclient.methodHelp('block_ip_range') -def resume_all_torrents(): - """Resumes all torrents""" - get_core().call("resume_all_torrents", None) - -def resume_torrent(torrent_ids): - """Resume torrent_ids""" - get_core().call("resume_torrent", None, torrent_ids) - -def force_reannounce(torrent_ids): - """Reannounce to trackers""" - get_core().call("force_reannounce", None, torrent_ids) +def test_sync(): + print "*start sync test*" + sclient.set_core_uri() -def get_torrent_status(callback, torrent_id, keys): - """Builds the status dictionary and returns it""" - get_core().call("get_torrent_status", callback, torrent_id, keys) + #get list of torrents and display the 1st. + torrent_ids = sclient.get_session_state() + print "session_state():", torrent_ids + print ("get_torrent_status(%s):" % torrent_ids[0], + sclient.get_torrent_status(torrent_ids[0], [])) -def get_torrents_status(callback, torrent_ids, keys): - """Builds a dictionary of torrent_ids status. Expects 2 lists. This is - asynchronous so the return value will be sent as the signal - 'torrent_status'""" - get_core().call("get_torrents_status", callback, torrent_ids, keys) + sclient.pause_torrent(torrent_ids) -def get_session_state(callback): - get_core().call("get_session_state", callback) + print "paused:", [ + sclient.get_torrent_status(id, ['paused'])['paused'] + for id in torrent_ids] -def get_config(callback): - get_core().call("get_config", callback) + sclient.resume_torrent(torrent_ids) + print "resumed:", [ + sclient.get_torrent_status(id, ['paused'])['paused'] + for id in torrent_ids] -def get_config_value(callback, key): - get_core().call("get_config_value", callback, key) - -def set_config(config): - if config == {}: - return - get_core().call("set_config", None, config) +def test_async(): + print "*start async test*" + torrent_ids = [] -def get_listen_port(callback): - get_core().call("get_listen_port", callback) + #callbacks: + def cb_session_state(temp_torrent_list): + print "session_state:" , temp_torrent_list + torrent_ids.extend(temp_torrent_list) -def get_available_plugins(callback): - get_core().call("get_available_plugins", callback) + def cb_torrent_status_full(status): + print "\ntorrent_status_full=", status -def get_enabled_plugins(callback): - get_core().call("get_enabled_plugins", callback) + def cb_torrent_status_paused(torrent_state): + print "(paused=%s)," % torrent_state['paused'], -def get_download_rate(callback): - get_core().call("get_download_rate", callback) + #/callbacks -def get_upload_rate(callback): - get_core().call("get_upload_rate", callback) + aclient.set_core_uri() + aclient.get_session_state(cb_session_state) -def get_num_connections(callback): - get_core().call("get_num_connections", callback) + print "force_call 1" + aclient.force_call(block=True) + print "end force_call 1:", len(torrent_ids) -def get_dht_nodes(callback): - get_core().call("get_dht_nodes", callback) -def enable_plugin(plugin): - get_core().call("enable_plugin", None, plugin) - -def disable_plugin(plugin): - get_core().call("disable_plugin", None, plugin) + #has_callback+multicall + aclient.pause_torrent(torrent_ids) + aclient.force_call(block=True) + for id in torrent_ids: + aclient.get_torrent_status(cb_torrent_status_paused, id , ['paused']) -def force_recheck(torrent_ids): - """Forces a data recheck on torrent_ids""" - get_core().call("force_recheck", None, torrent_ids) + aclient.get_torrent_status(cb_torrent_status_full, torrent_ids[0], []) -def set_torrent_trackers(torrent_id, trackers): - """Sets the torrents trackers""" - get_core().call("set_torrent_trackers", None, torrent_id, trackers) + print "force_call 2" + aclient.force_call(block=True) + print "end force-call 2" -def set_torrent_max_connections(torrent_id, value): - """Sets a torrents max number of connections""" - get_core().call("set_torrent_max_connections", None, torrent_id, value) -def set_torrent_max_upload_slots(torrent_id, value): - """Sets a torrents max number of upload slots""" - get_core().call("set_torrent_max_upload_slots", None, torrent_id, value) - -def set_torrent_max_upload_speed(torrent_id, value): - """Sets a torrents max upload speed""" - get_core().call("set_torrent_max_upload_speed", None, torrent_id, value) - -def set_torrent_max_download_speed(torrent_id, value): - """Sets a torrents max download speed""" - get_core().call("set_torrent_max_download_speed", None, torrent_id, value) -def set_torrent_private_flag(torrent_id, value): - """Sets a torrents private flag""" - get_core().call("set_torrent_private_flag", None, torrent_id, value) + print "resume:" + aclient.resume_torrent(torrent_ids) + for id in torrent_ids: + aclient.get_torrent_status(cb_torrent_status_paused, id , ['paused']) -def set_torrent_file_priorities(torrent_id, priorities): - """Sets a torrents file priorities""" - get_core().call("set_torrent_file_priorities", None, torrent_id, priorities) + aclient.force_call(block=True) -def block_ip_range(range): - """Blocks a ip range.. (start, end)""" - get_core().call("block_ip_range", None, range) +if __name__ == "__main__": + test_introspection() + test_sync() + test_async() diff --git a/deluge/ui/gtkui/aboutdialog.py b/deluge/ui/gtkui/aboutdialog.py index a47f4f37e..9999f3e55 100644 --- a/deluge/ui/gtkui/aboutdialog.py +++ b/deluge/ui/gtkui/aboutdialog.py @@ -37,7 +37,7 @@ import gtk import pkg_resources import deluge.common -import deluge.ui.client as client +from deluge.ui.client import aclient as client class AboutDialog: def __init__(self): diff --git a/deluge/ui/gtkui/addtorrentdialog.py b/deluge/ui/gtkui/addtorrentdialog.py index 8f23becc7..6b7036ab7 100644 --- a/deluge/ui/gtkui/addtorrentdialog.py +++ b/deluge/ui/gtkui/addtorrentdialog.py @@ -38,7 +38,7 @@ import gettext import pkg_resources -import deluge.ui.client as client +from deluge.ui.client import aclient as client import deluge.component as component import deluge.ui.gtkui.listview as listview from deluge.configmanager import ConfigManager diff --git a/deluge/ui/gtkui/connectionmanager.py b/deluge/ui/gtkui/connectionmanager.py index e20b7d4ad..f9b228104 100644 --- a/deluge/ui/gtkui/connectionmanager.py +++ b/deluge/ui/gtkui/connectionmanager.py @@ -42,7 +42,7 @@ import threading import deluge.component as component import deluge.xmlrpclib as xmlrpclib import deluge.common -import deluge.ui.client as client +from deluge.ui.client import aclient as client from deluge.configmanager import ConfigManager from deluge.log import LOG as log diff --git a/deluge/ui/gtkui/coreconfig.py b/deluge/ui/gtkui/coreconfig.py index 985ad3d98..ccb9658c7 100644 --- a/deluge/ui/gtkui/coreconfig.py +++ b/deluge/ui/gtkui/coreconfig.py @@ -32,7 +32,7 @@ # statement from all source files in the program, then also delete it here. import deluge.component as component -import deluge.ui.client as client +from deluge.ui.client import aclient as client from deluge.log import LOG as log class CoreConfig(component.Component): diff --git a/deluge/ui/gtkui/dbusinterface.py b/deluge/ui/gtkui/dbusinterface.py index ff44a70c1..08aa1a33e 100644 --- a/deluge/ui/gtkui/dbusinterface.py +++ b/deluge/ui/gtkui/dbusinterface.py @@ -46,7 +46,7 @@ elif dbus.version >= (0,80,0): DBusGMainLoop(set_as_default=True) import deluge.component as component -import deluge.ui.client as client +from deluge.ui.client import aclient as client import deluge.common from deluge.log import LOG as log diff --git a/deluge/ui/gtkui/edittrackersdialog.py b/deluge/ui/gtkui/edittrackersdialog.py index 1ad9033a6..1b37ee035 100644 --- a/deluge/ui/gtkui/edittrackersdialog.py +++ b/deluge/ui/gtkui/edittrackersdialog.py @@ -35,7 +35,7 @@ import gtk, gtk.glade import pkg_resources import deluge.common -import deluge.ui.client as client +from deluge.ui.client import aclient as client import deluge.component as component from deluge.log import LOG as log diff --git a/deluge/ui/gtkui/gtkui.py b/deluge/ui/gtkui/gtkui.py index 368f44a52..19f6e3a80 100644 --- a/deluge/ui/gtkui/gtkui.py +++ b/deluge/ui/gtkui/gtkui.py @@ -44,7 +44,7 @@ import pkg_resources import signal import deluge.component as component -import deluge.ui.client as client +from deluge.ui.client import aclient as client from mainwindow import MainWindow from menubar import MenuBar from toolbar import ToolBar diff --git a/deluge/ui/gtkui/mainwindow.py b/deluge/ui/gtkui/mainwindow.py index 21cf379cf..a1e2b66d4 100644 --- a/deluge/ui/gtkui/mainwindow.py +++ b/deluge/ui/gtkui/mainwindow.py @@ -37,7 +37,7 @@ import gtk, gtk.glade import gobject import pkg_resources -import deluge.ui.client as client +from deluge.ui.client import aclient as client import deluge.component as component from deluge.configmanager import ConfigManager diff --git a/deluge/ui/gtkui/menubar.py b/deluge/ui/gtkui/menubar.py index ca408c178..31d4cefd4 100644 --- a/deluge/ui/gtkui/menubar.py +++ b/deluge/ui/gtkui/menubar.py @@ -37,7 +37,7 @@ import gtk, gtk.glade import pkg_resources import deluge.component as component -import deluge.ui.client as client +from deluge.ui.client import aclient as client import deluge.common as common from deluge.log import LOG as log diff --git a/deluge/ui/gtkui/pluginmanager.py b/deluge/ui/gtkui/pluginmanager.py index 4a6c7fd23..c211f3574 100644 --- a/deluge/ui/gtkui/pluginmanager.py +++ b/deluge/ui/gtkui/pluginmanager.py @@ -33,7 +33,7 @@ import deluge.component as component import deluge.pluginmanagerbase -import deluge.ui.client as client +from deluge.ui.client import aclient as client from deluge.configmanager import ConfigManager from deluge.log import LOG as log diff --git a/deluge/ui/gtkui/preferences.py b/deluge/ui/gtkui/preferences.py index 3f6cbd850..77786a74d 100644 --- a/deluge/ui/gtkui/preferences.py +++ b/deluge/ui/gtkui/preferences.py @@ -38,7 +38,7 @@ import pkg_resources import deluge.component as component from deluge.log import LOG as log -import deluge.ui.client as client +from deluge.ui.client import aclient as client import deluge.common from deluge.configmanager import ConfigManager diff --git a/deluge/ui/gtkui/queuedtorrents.py b/deluge/ui/gtkui/queuedtorrents.py index 847bd4e2f..70d669838 100644 --- a/deluge/ui/gtkui/queuedtorrents.py +++ b/deluge/ui/gtkui/queuedtorrents.py @@ -38,7 +38,7 @@ import gobject import pkg_resources import deluge.component as component -import deluge.ui.client as client +from deluge.ui.client import aclient as client import deluge.common from deluge.configmanager import ConfigManager from deluge.log import LOG as log diff --git a/deluge/ui/gtkui/removetorrentdialog.py b/deluge/ui/gtkui/removetorrentdialog.py index 5218b4201..8e8b88917 100644 --- a/deluge/ui/gtkui/removetorrentdialog.py +++ b/deluge/ui/gtkui/removetorrentdialog.py @@ -35,7 +35,7 @@ import gtk, gtk.glade import pkg_resources import deluge.common -import deluge.ui.client as client +from deluge.ui.client import aclient as client import deluge.component as component from deluge.log import LOG as log diff --git a/deluge/ui/gtkui/signals.py b/deluge/ui/gtkui/signals.py index 4fe32554d..1f06942ac 100644 --- a/deluge/ui/gtkui/signals.py +++ b/deluge/ui/gtkui/signals.py @@ -32,7 +32,7 @@ # statement from all source files in the program, then also delete it here. import deluge.component as component -import deluge.ui.client as client +from deluge.ui.client import aclient as client from deluge.ui.signalreceiver import SignalReceiver from deluge.log import LOG as log diff --git a/deluge/ui/gtkui/statusbar.py b/deluge/ui/gtkui/statusbar.py index d6ea4f9c7..8fb17ac3e 100644 --- a/deluge/ui/gtkui/statusbar.py +++ b/deluge/ui/gtkui/statusbar.py @@ -35,7 +35,7 @@ import gtk import deluge.component as component import deluge.common -import deluge.ui.client as client +from deluge.ui.client import aclient as client from deluge.log import LOG as log class StatusBarItem: diff --git a/deluge/ui/gtkui/systemtray.py b/deluge/ui/gtkui/systemtray.py index 1c78190fc..1b9f93077 100644 --- a/deluge/ui/gtkui/systemtray.py +++ b/deluge/ui/gtkui/systemtray.py @@ -35,7 +35,7 @@ import gtk import pkg_resources import deluge.component as component -import deluge.ui.client as client +from deluge.ui.client import aclient as client import deluge.common from deluge.configmanager import ConfigManager from deluge.log import LOG as log diff --git a/deluge/ui/gtkui/toolbar.py b/deluge/ui/gtkui/toolbar.py index 09132c22f..0f5b1ef28 100644 --- a/deluge/ui/gtkui/toolbar.py +++ b/deluge/ui/gtkui/toolbar.py @@ -39,7 +39,7 @@ import gobject import deluge.component as component from deluge.log import LOG as log from deluge.common import TORRENT_STATE -import deluge.ui.client as client +from deluge.ui.client import aclient as client class ToolBar(component.Component): def __init__(self): diff --git a/deluge/ui/gtkui/torrentdetails.py b/deluge/ui/gtkui/torrentdetails.py index 3711ad30c..aef516478 100644 --- a/deluge/ui/gtkui/torrentdetails.py +++ b/deluge/ui/gtkui/torrentdetails.py @@ -39,7 +39,7 @@ import gtk, gtk.glade import gettext import deluge.component as component -import deluge.ui.client as client +from deluge.ui.client import aclient as client import deluge.common from deluge.log import LOG as log diff --git a/deluge/ui/gtkui/torrentview.py b/deluge/ui/gtkui/torrentview.py index 488105789..48ffb34ba 100644 --- a/deluge/ui/gtkui/torrentview.py +++ b/deluge/ui/gtkui/torrentview.py @@ -44,7 +44,7 @@ import traceback import deluge.common import deluge.component as component -import deluge.ui.client as client +from deluge.ui.client import aclient as client from deluge.log import LOG as log import deluge.ui.gtkui.listview as listview diff --git a/deluge/ui/null/deluge_shell.py b/deluge/ui/null/deluge_shell.py index 4794c6559..980a6b0e9 100755 --- a/deluge/ui/null/deluge_shell.py +++ b/deluge/ui/null/deluge_shell.py @@ -23,7 +23,7 @@ deluge-shell: Deluge shell. # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 # USA -import deluge.ui.client as client +from deluge.ui.client import aclient as client import deluge.common as common import deluge.error import readline diff --git a/deluge/ui/signalreceiver.py b/deluge/ui/signalreceiver.py index ce053efc2..0997fe86a 100644 --- a/deluge/ui/signalreceiver.py +++ b/deluge/ui/signalreceiver.py @@ -37,7 +37,7 @@ import random import gobject -import deluge.ui.client as client +from deluge.ui.client import aclient as client import deluge.SimpleXMLRPCServer as SimpleXMLRPCServer from SocketServer import ThreadingMixIn import deluge.xmlrpclib as xmlrpclib