Update score plugin to use the "root" media (show, movie) title
This commit is contained in:
Regular → Executable
+11
-8
@@ -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.variable import getTitle, splitString, removeDuplicate
|
||||
from couchpotato.core.logger import CPLog
|
||||
@@ -16,17 +16,20 @@ class Score(Plugin):
|
||||
def __init__(self):
|
||||
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 """
|
||||
|
||||
# Fetch root media item (movie, show)
|
||||
root = fireEvent('library.root', media, single = True)
|
||||
|
||||
# Merge global and category
|
||||
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
|
||||
|
||||
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 += namePositionScore(toUnicode(nzb['name']), toUnicode(movie_title))
|
||||
|
||||
@@ -44,15 +47,15 @@ class Score(Plugin):
|
||||
score += providerScore(nzb['provider'])
|
||||
|
||||
# Duplicates in name
|
||||
score += duplicateScore(nzb['name'], getTitle(movie))
|
||||
score += duplicateScore(nzb['name'], getTitle(root))
|
||||
|
||||
# Merge global and category
|
||||
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
|
||||
|
||||
# Partial ignored words
|
||||
score += partialIgnoredScore(nzb['name'], getTitle(movie), ignored_words)
|
||||
score += partialIgnoredScore(nzb['name'], getTitle(root), ignored_words)
|
||||
|
||||
# Ignore single downloads from multipart
|
||||
score += halfMultipartScore(nzb['name'])
|
||||
|
||||
Reference in New Issue
Block a user