Update score plugin to use the "root" media (show, movie) title

This commit is contained in:
Dean Gardiner
2014-08-03 22:58:25 +12:00
parent 68bde6086d
commit dea5bbbf1c
+11 -8
View File
@@ -1,4 +1,4 @@
from couchpotato.core.event import addEvent from couchpotato.core.event import addEvent, fireEvent
from couchpotato.core.helpers.encoding import toUnicode from couchpotato.core.helpers.encoding import toUnicode
from couchpotato.core.helpers.variable import getTitle, splitString, removeDuplicate from couchpotato.core.helpers.variable import getTitle, splitString, removeDuplicate
from couchpotato.core.logger import CPLog from couchpotato.core.logger import CPLog
@@ -16,17 +16,20 @@ class Score(Plugin):
def __init__(self): def __init__(self):
addEvent('score.calculate', self.calculate) addEvent('score.calculate', self.calculate)
def calculate(self, nzb, movie): def calculate(self, nzb, media):
""" Calculate the score of a NZB, used for sorting later """ """ Calculate the score of a NZB, used for sorting later """
# Fetch root media item (movie, show)
root = fireEvent('library.root', media, single = True)
# Merge global and category # Merge global and category
preferred_words = splitString(Env.setting('preferred_words', section = 'searcher').lower()) preferred_words = splitString(Env.setting('preferred_words', section = 'searcher').lower())
try: preferred_words = removeDuplicate(preferred_words + splitString(movie['category']['preferred'].lower())) try: preferred_words = removeDuplicate(preferred_words + splitString(media['category']['preferred'].lower()))
except: pass except: pass
score = nameScore(toUnicode(nzb['name']), movie['info'].get('year'), preferred_words) score = nameScore(toUnicode(nzb['name']), root['info'].get('year'), preferred_words)
for movie_title in movie['info']['titles']: for movie_title in root['info']['titles']:
score += nameRatioScore(toUnicode(nzb['name']), toUnicode(movie_title)) score += nameRatioScore(toUnicode(nzb['name']), toUnicode(movie_title))
score += namePositionScore(toUnicode(nzb['name']), toUnicode(movie_title)) score += namePositionScore(toUnicode(nzb['name']), toUnicode(movie_title))
@@ -44,15 +47,15 @@ class Score(Plugin):
score += providerScore(nzb['provider']) score += providerScore(nzb['provider'])
# Duplicates in name # Duplicates in name
score += duplicateScore(nzb['name'], getTitle(movie)) score += duplicateScore(nzb['name'], getTitle(root))
# Merge global and category # Merge global and category
ignored_words = splitString(Env.setting('ignored_words', section = 'searcher').lower()) ignored_words = splitString(Env.setting('ignored_words', section = 'searcher').lower())
try: ignored_words = removeDuplicate(ignored_words + splitString(movie['category']['ignored'].lower())) try: ignored_words = removeDuplicate(ignored_words + splitString(media['category']['ignored'].lower()))
except: pass except: pass
# Partial ignored words # Partial ignored words
score += partialIgnoredScore(nzb['name'], getTitle(movie), ignored_words) score += partialIgnoredScore(nzb['name'], getTitle(root), ignored_words)
# Ignore single downloads from multipart # Ignore single downloads from multipart
score += halfMultipartScore(nzb['name']) score += halfMultipartScore(nzb['name'])