Fix tracker_error_filter typo and tidyup commenting in filtermanager

This commit is contained in:
Calum Lind 2013-05-03 19:34:09 +01:00
parent e6498b6864
commit 8c6d37d9bd

View File

@ -40,9 +40,9 @@ STATE_SORT = ["All", "Downloading", "Seeding", "Active", "Paused", "Queued"]
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
#special purpose filters: # Special purpose filters:
def filter_keywords(torrent_ids, values): def filter_keywords(torrent_ids, values):
#cleanup. # Cleanup
keywords = ",".join([v.lower() for v in values]) keywords = ",".join([v.lower() for v in values])
keywords = keywords.split(",") keywords = keywords.split(",")
@ -57,7 +57,7 @@ def filter_one_keyword(torrent_ids, keyword):
searches title,state,tracker-status,tracker,files searches title,state,tracker-status,tracker,files
""" """
all_torrents = component.get("TorrentManager").torrents all_torrents = component.get("TorrentManager").torrents
#filter:
found = False found = False
for torrent_id in torrent_ids: for torrent_id in torrent_ids:
torrent = all_torrents[torrent_id] torrent = all_torrents[torrent_id]
@ -69,7 +69,7 @@ def filter_one_keyword(torrent_ids, keyword):
yield torrent_id yield torrent_id
elif keyword in torrent_id: elif keyword in torrent_id:
yield torrent_id yield torrent_id
#i want to find broken torrents (search on "error", or "unregistered") # Want to find broken torrents (search on "error", or "unregistered")
elif keyword in torrent.tracker_status.lower(): elif keyword in torrent.tracker_status.lower():
yield torrent_id yield torrent_id
else: else:
@ -110,10 +110,9 @@ def tracker_error_filter(torrent_ids, values):
filtered_torrent_ids.append(torrent_id) filtered_torrent_ids.append(torrent_id)
return filtered_torrent_ids return filtered_torrent_ids
# Check all the torrent's tracker_status for 'Error:' and only return torrent_ids # Check torrent's tracker_status for 'Error:' and return those torrent_ids
# that have this substring in their tracker_status
for torrent_id in torrent_ids: for torrent_id in torrent_ids:
if _("Error") + ":" in tm[torrent_id].get_status(["tracker_host"])["tracker_host"]: if _("Error") + ":" in tm[torrent_id].get_status(["tracker_status"])["tracker_status"]:
filtered_torrent_ids.append(torrent_id) filtered_torrent_ids.append(torrent_id)
return filtered_torrent_ids return filtered_torrent_ids
@ -150,21 +149,23 @@ class FilterManager(component.Component):
if not filter_dict: if not filter_dict:
return self.torrents.get_torrent_list() return self.torrents.get_torrent_list()
#sanitize input: filter-value must be a list of strings # Sanitize input: filter-value must be a list of strings
for key, value in filter_dict.items(): for key, value in filter_dict.items():
if isinstance(value, basestring): if isinstance(value, basestring):
filter_dict[key] = [value] filter_dict[key] = [value]
if "id" in filter_dict: #optimized filter for id: # Optimized filter for id
if "id" in filter_dict:
torrent_ids = list(filter_dict["id"]) torrent_ids = list(filter_dict["id"])
del filter_dict["id"] del filter_dict["id"]
else: else:
torrent_ids = self.torrents.get_torrent_list() torrent_ids = self.torrents.get_torrent_list()
if not filter_dict: #return if there's nothing more to filter # Return if there's nothing more to filter
if not filter_dict:
return torrent_ids return torrent_ids
#special purpose: state=Active. # Special purpose, state=Active.
if "state" in filter_dict: if "state" in filter_dict:
# We need to make sure this is a list for the logic below # We need to make sure this is a list for the logic below
filter_dict["state"] = list(filter_dict["state"]) filter_dict["state"] = list(filter_dict["state"])
@ -175,23 +176,21 @@ class FilterManager(component.Component):
del filter_dict["state"] del filter_dict["state"]
torrent_ids = self.filter_state_active(torrent_ids) torrent_ids = self.filter_state_active(torrent_ids)
if not filter_dict: #return if there's nothing more to filter if not filter_dict:
return torrent_ids return torrent_ids
#Registered filters: # Registered filters
for field, values in filter_dict.items(): for field, values in filter_dict.items():
if field in self.registered_filters: if field in self.registered_filters:
# a set filters out the doubles. # Filters out doubles
torrent_ids = list(set(self.registered_filters[field](torrent_ids, values))) torrent_ids = list(set(self.registered_filters[field](torrent_ids, values)))
del filter_dict[field] del filter_dict[field]
if not filter_dict:
if not filter_dict: #return if there's nothing more to filter
return torrent_ids return torrent_ids
torrent_keys, plugin_keys = self.torrents.separate_keys(filter_dict.keys(), torrent_ids) torrent_keys, plugin_keys = self.torrents.separate_keys(filter_dict.keys(), torrent_ids)
#leftover filter arguments: # Leftover filter arguments, default filter on status fields.
#default filter on status fields.
for torrent_id in list(torrent_ids): for torrent_id in list(torrent_ids):
status = self.core.create_torrent_status(torrent_id, torrent_keys, plugin_keys) status = self.core.create_torrent_status(torrent_id, torrent_keys, plugin_keys)
for field, values in filter_dict.iteritems(): for field, values in filter_dict.iteritems():
@ -226,7 +225,7 @@ class FilterManager(component.Component):
if "state" in tree_keys and not show_zero_hits: if "state" in tree_keys and not show_zero_hits:
self._hide_state_items(items["state"]) self._hide_state_items(items["state"])
#return a dict of tuples: # Return a dict of tuples:
sorted_items = {} sorted_items = {}
for field in tree_keys: for field in tree_keys:
sorted_items[field] = sorted(items[field].iteritems()) sorted_items[field] = sorted(items[field].iteritems())
@ -264,7 +263,7 @@ class FilterManager(component.Component):
for torrent_id in list(torrent_ids): for torrent_id in list(torrent_ids):
status = self.torrents[torrent_id].get_status(["download_payload_rate", "upload_payload_rate"]) status = self.torrents[torrent_id].get_status(["download_payload_rate", "upload_payload_rate"])
if status["download_payload_rate"] or status["upload_payload_rate"]: if status["download_payload_rate"] or status["upload_payload_rate"]:
pass #ok pass
else: else:
torrent_ids.remove(torrent_id) torrent_ids.remove(torrent_id)
return torrent_ids return torrent_ids