Browse Source

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

pull/3730/merge
Dean Gardiner 11 years ago
parent
commit
dea5bbbf1c
  1. 19
      couchpotato/core/plugins/score/main.py

19
couchpotato/core/plugins/score/main.py

@ -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'])

Loading…
Cancel
Save