From f79f5d911329aa0bb7380208b6e127afb61d1fb4 Mon Sep 17 00:00:00 2001 From: Martijn Voncken Date: Wed, 23 Jul 2008 17:08:33 +0000 Subject: [PATCH] tracker-column:use connected or first --- deluge/core/torrent.py | 11 +++++-- deluge/plugins/label/label/core.py | 30 ++------------------ deluge/plugins/label/label/gtkui/__init__.py | 10 ------- 3 files changed, 11 insertions(+), 40 deletions(-) diff --git a/deluge/core/torrent.py b/deluge/core/torrent.py index 7f570e155..5b81705db 100644 --- a/deluge/core/torrent.py +++ b/deluge/core/torrent.py @@ -380,12 +380,17 @@ class Torrent: return ret def get_tracker_host(self): - """Returns just the hostname of the currently connected tracker""" + """Returns just the hostname of the currently connected tracker + if no tracker is connected, it uses the 1st tracker.""" if not self.status: self.status = self.handle.status() + + tracker = self.status.current_tracker + if not tracker and self.trackers: + tracker = self.trackers[0]["url"] - if self.status.current_tracker: - url = urlparse(self.status.current_tracker) + if tracker: + url = urlparse(tracker) if hasattr(url, "hostname"): host = (url.hostname or 'unknown?') parts = host.split(".") diff --git a/deluge/plugins/label/label/core.py b/deluge/plugins/label/label/core.py index 54b567c97..229a44477 100644 --- a/deluge/plugins/label/label/core.py +++ b/deluge/plugins/label/label/core.py @@ -71,7 +71,6 @@ class Core(CorePluginBase): def enable(self): log.info("*** Start Label plugin ***") - #self.plugin.register_status_field("tracker_host", self._status_get_tracker) self.plugin.register_status_field("label", self._status_get_label) #__init__ @@ -111,31 +110,12 @@ class Core(CorePluginBase): def disable(self): # De-register the label field - self.plugin.deregister_status_field("tracker_host") + #self.plugin.deregister_status_field("tracker_host") self.plugin.deregister_status_field("label") def update(self): pass - ## Utils ## - def get_tracker(self, torrent): - """ - returns 1st tracker hostname - save space: reduced to *.com without any subdomain dots before - TODO: CLEANUP - """ - log.debug(torrent) - log.debug(torrent.trackers) - if not torrent.trackers: - return 'tracker-less' - url = urlparse(torrent.trackers[0]['url']) - if hasattr(url,'hostname'): - host = (url.hostname or 'unknown?') - parts = host.split(".") - if len(parts) > 2: - host = ".".join(parts[-2:]) - return host - return 'No-tracker?' ## Filters ## def filter_state(self, torrents, value): @@ -147,7 +127,7 @@ class Core(CorePluginBase): def filter_tracker(self, torrents, value): "in/out: a list of torrent objects." - return [t for t in torrents if self.get_tracker(t) == value] + return [t for t in torrents if t.get_tracker_host() == value] def filter_label(self, torrents, value): "in/out: a list of torrent objects." @@ -191,7 +171,7 @@ class Core(CorePluginBase): #trackers: trackers = {} for t in self.torrents.values(): - tracker = self.get_tracker(t) + tracker = t.get_tracker_host() if not tracker in trackers: trackers[tracker] = 0 trackers[tracker] +=1 @@ -373,10 +353,6 @@ class Core(CorePluginBase): self.config.save() - ## Status fields ## - def _status_get_tracker(self, torrent_id): - return self.get_tracker(self.torrents[torrent_id]) - def _status_get_label(self, torrent_id): return self.torrent_labels.get(torrent_id) or "" diff --git a/deluge/plugins/label/label/gtkui/__init__.py b/deluge/plugins/label/label/gtkui/__init__.py index 9e1a1004b..47ea8c8e8 100644 --- a/deluge/plugins/label/label/gtkui/__init__.py +++ b/deluge/plugins/label/label/gtkui/__init__.py @@ -51,9 +51,6 @@ NO_LABEL = "No Label" def cell_data_label(column, cell, model, row, data): cell.set_property('text', str(model.get_value(row, data))) -def cell_data_tracker_host(column, cell, model, row, data): - cell.set_property('text', str(model.get_value(row, data))) - class GtkUI(ui.UI): def __init__(self, plugin_api, plugin_name): log.debug("Calling UI init") @@ -71,8 +68,6 @@ class GtkUI(ui.UI): try: component.get("TorrentView").remove_column(_("Label")) log.debug(1.1) - component.get("TorrentView").remove_column(_("Tracker")) - log.debug(1.2) except Exception, e: log.debug(e) #fix this! log.debug(1.2) @@ -120,11 +115,6 @@ class GtkUI(ui.UI): [str], status_field=["label"]) - component.get("TorrentView").add_func_column(_("Tracker"), - cell_data_tracker_host, - [str], - status_field=["tracker_host"]) - component.get("TorrentView").create_model_filter() #todo:improve.