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.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'])
|
||||||
|
|||||||
Reference in New Issue
Block a user