Skip to content

Commit

Permalink
Rewrite result categorization
Browse files Browse the repository at this point in the history
  • Loading branch information
labrys committed Jun 21, 2016
1 parent 9b49927 commit cfec040
Showing 1 changed file with 14 additions and 12 deletions.
26 changes: 14 additions & 12 deletions sickrage/providers/GenericProvider.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import re
import sickbeard

from collections import defaultdict
from base64 import b16encode, b32decode
from datetime import datetime
from itertools import chain
Expand Down Expand Up @@ -160,21 +161,22 @@ def find_search_results(self, show, episodes, search_mode, forced_search=False,
return results

if items_list:
items = {}
unknown_items = []

# categorize the items into lists by quality
items = defaultdict(list)
for item in items_list:
quality = self.get_quality(item, anime=show.is_anime)
items[self.get_quality(item, anime=show.is_anime)].append(item)

if quality == Quality.UNKNOWN:
unknown_items.append(item)
else:
if quality not in items:
items[quality] = []
items[quality].append(item)
# temporarily remove the list of items with unknown quality
unknown_items = items.pop(Quality.UNKNOWN, [])

# make a generator to sort the remaining items by descending quality
items_list = (items[quality] for quality in sorted(items, reverse=True))

# unpack all of the quality lists into a single sorted list
items_list = list(chain(*items_list))

items_list = list(chain(*[v for (_, v) in sorted(items.iteritems(), reverse=True)]))
items_list += unknown_items
# extend the list with the unknown qualities, now sorted at the bottom of the list
items_list.extend(unknown_items)

cl = []

Expand Down

0 comments on commit cfec040

Please sign in to comment.