diff --git a/bazarr/get_subtitle.py b/bazarr/get_subtitle.py index b596b6ef6..ff4de38cd 100644 --- a/bazarr/get_subtitle.py +++ b/bazarr/get_subtitle.py @@ -20,6 +20,7 @@ from notifier import send_notifications, send_notifications_movie import cPickle as pickle import codecs from get_providers import get_providers, get_providers_auth +from subliminal.providers.legendastv import LegendasTVSubtitle # configure the cache region.configure('dogpile.cache.memory') @@ -231,7 +232,10 @@ def manual_search(path, language, hi, providers, providers_auth, sceneName, medi continue if used_sceneName: not_matched.remove('hash') - subtitles_list.append(dict(score=round((compute_score(s, video, hearing_impaired=hi) / max_score * 100), 2), language=alpha2_from_alpha3(s.language.alpha3), hearing_impaired=str(s.hearing_impaired), provider=s.provider_name, subtitle=codecs.encode(pickle.dumps(s), "base64").decode(), url=s.page_link, matches=list(matched), dont_matches=list(not_matched))) + if type(s) is LegendasTVSubtitle: + # The pickle doesn't work very well with RAR (rarfile.RarFile) or ZIP (zipfile.ZipFile) + s.archive.content = None + subtitles_list.append(dict(score=round((compute_score(s, video, hearing_impaired=hi) / max_score * 100), 2), language=alpha2_from_alpha3(s.language.alpha3), hearing_impaired=str(s.hearing_impaired), provider=s.provider_name, subtitle=codecs.encode(pickle.dumps(s), "base64").decode(), url=s.page_link, matches=list(matched), dont_matches=list(not_matched))) subtitles_dict = {} subtitles_dict = sorted(subtitles_list, key=lambda x: x['score'], reverse=True) logging.debug('BAZARR ' + str(len(subtitles_dict)) + " subtitles have been found for this file: " + path)