|
|
@ -207,15 +207,22 @@ class QualityPlugin(Plugin): |
|
|
|
|
|
|
|
self.calcScore(score, quality, contains_score, threedscore) |
|
|
|
|
|
|
|
# Evaluate score based on size |
|
|
|
size_scores = [] |
|
|
|
for quality in qualities: |
|
|
|
size_score = self.guessSizeScore(quality, size = size) |
|
|
|
self.calcScore(score, quality, size_score, penalty = False) |
|
|
|
|
|
|
|
# Try again with loose testing |
|
|
|
for quality in qualities: |
|
|
|
# Evaluate score based on size |
|
|
|
size_score = self.guessSizeScore(quality, size = size) |
|
|
|
loose_score = self.guessLooseScore(quality, extra = extra) |
|
|
|
self.calcScore(score, quality, loose_score, penalty = False) |
|
|
|
|
|
|
|
if size_score > 0: |
|
|
|
size_scores.append(quality) |
|
|
|
|
|
|
|
self.calcScore(score, quality, size_score + loose_score, penalty = False) |
|
|
|
|
|
|
|
# Add additional size score if only 1 size validated |
|
|
|
if len(size_scores) == 1: |
|
|
|
self.calcScore(score, size_scores[0], 10, penalty = False) |
|
|
|
del size_scores |
|
|
|
|
|
|
|
# Return nothing if all scores are <= 0 |
|
|
|
has_non_zero = 0 |
|
|
@ -325,6 +332,8 @@ class QualityPlugin(Plugin): |
|
|
|
if tryInt(quality['size_min']) <= tryInt(size) <= tryInt(quality['size_max']): |
|
|
|
log.debug('Found %s via release size: %s MB < %s MB < %s MB', (quality['identifier'], quality['size_min'], size, quality['size_max'])) |
|
|
|
score += 5 |
|
|
|
else: |
|
|
|
score -= 5 |
|
|
|
|
|
|
|
return score |
|
|
|
|
|
|
@ -413,6 +422,7 @@ class QualityPlugin(Plugin): |
|
|
|
'Movie Name (2013) 2D + 3D': {'size': 49000, 'quality': 'bd50', 'is_3d': True}, |
|
|
|
'Movie Monuments 2013 BrRip 1080p': {'size': 1800, 'quality': 'brrip'}, |
|
|
|
'Movie Monuments 2013 BrRip 720p': {'size': 1300, 'quality': 'brrip'}, |
|
|
|
'The.Movie.2014.3D.1080p.BluRay.AVC.DTS-HD.MA.5.1-GroupName': {'size': 30000, 'quality': 'bd50', 'is_3d': True}, |
|
|
|
} |
|
|
|
|
|
|
|
correct = 0 |
|
|
@ -420,7 +430,7 @@ class QualityPlugin(Plugin): |
|
|
|
test_quality = self.guess(files = [name], extra = tests[name].get('extra', None), size = tests[name].get('size', None)) or {} |
|
|
|
success = test_quality.get('identifier') == tests[name]['quality'] and test_quality.get('is_3d') == tests[name].get('is_3d', False) |
|
|
|
if not success: |
|
|
|
log.error('%s failed check, thinks it\'s %s', (name, self.guess([name]).get('identifier'))) |
|
|
|
log.error('%s failed check, thinks it\'s %s', (name, test_quality.get('identifier'))) |
|
|
|
|
|
|
|
correct += success |
|
|
|
|
|
|
|