diff --git a/libs/subliminal_patch/providers/subssabbz.py b/libs/subliminal_patch/providers/subssabbz.py index 386e3c19f..960d36429 100644 --- a/libs/subliminal_patch/providers/subssabbz.py +++ b/libs/subliminal_patch/providers/subssabbz.py @@ -55,7 +55,12 @@ class SubsSabBzSubtitle(Subtitle): self.video = video self.fps = fps self.num_cds = num_cds - self.release_info = os.path.splitext(filename)[0] + self.release_info = filename + if fps: + if video.fps and float(video.fps) == fps: + self.release_info += " [{:.3f}]".format(fps) + else: + self.release_info += " [{:.3f}]".format(fps) @property def id(self): @@ -168,7 +173,7 @@ class SubsSabBzProvider(Provider): element = a_element_wrapper.find('a') if element: link = element.get('href') - notes = element.get('onmouseover') + notes = re.sub(r'ddrivetip\(\'(.*)\',\'#[0-9]+\'\)', r'\1', element.get('onmouseover')) title = element.get_text() try: @@ -248,12 +253,15 @@ class SubsSabBzProvider(Provider): else: logger.info('Cache file: %s', codecs.encode(cache_key, 'hex_codec').decode('utf-8')) - archive_stream = io.BytesIO(request.content) - if is_rarfile(archive_stream): - return self.process_archive_subtitle_files(RarFile(archive_stream), language, video, link, fps, num_cds) - elif is_zipfile(archive_stream): - return self.process_archive_subtitle_files(ZipFile(archive_stream), language, video, link, fps, num_cds) - else: - logger.error('Ignore unsupported archive %r', request.headers) - region.delete(cache_key) - return [] + try: + archive_stream = io.BytesIO(request.content) + if is_rarfile(archive_stream): + return self.process_archive_subtitle_files(RarFile(archive_stream), language, video, link, fps, num_cds) + elif is_zipfile(archive_stream): + return self.process_archive_subtitle_files(ZipFile(archive_stream), language, video, link, fps, num_cds) + except: + pass + + logger.error('Ignore unsupported archive %r', request.headers) + region.delete(cache_key) + return [] diff --git a/libs/subliminal_patch/providers/subsunacs.py b/libs/subliminal_patch/providers/subsunacs.py index 19c5eff86..137d2f7bf 100644 --- a/libs/subliminal_patch/providers/subsunacs.py +++ b/libs/subliminal_patch/providers/subsunacs.py @@ -55,7 +55,12 @@ class SubsUnacsSubtitle(Subtitle): self.video = video self.fps = fps self.num_cds = num_cds - self.release_info = os.path.splitext(filename)[0] + self.release_info = filename + if fps: + if video.fps and float(video.fps) == fps: + self.release_info += " [{:.3f}]".format(fps) + else: + self.release_info += " [{:.3f}]".format(fps) @property def id(self): @@ -168,7 +173,7 @@ class SubsUnacsProvider(Provider): element = a_element_wrapper.find('a', {'class': 'tooltip'}) if element: link = element.get('href') - notes = element.get('title') + notes = re.sub(r'()', r"", element.get('title')) title = element.get_text() try: @@ -230,11 +235,8 @@ class SubsUnacsProvider(Provider): is_7zip = isinstance(archiveStream, SevenZipFile) if is_7zip: - try: - file_content = archiveStream.readall() - file_list = sorted(file_content) - except: - return [] + file_content = archiveStream.readall() + file_list = sorted(file_content) else: file_list = sorted(archiveStream.namelist()) @@ -268,14 +270,17 @@ class SubsUnacsProvider(Provider): else: logger.info('Cache file: %s', codecs.encode(cache_key, 'hex_codec').decode('utf-8')) - archive_stream = io.BytesIO(request.content) - if is_rarfile(archive_stream): - return self.process_archive_subtitle_files(RarFile(archive_stream), language, video, link, fps, num_cds) - elif is_zipfile(archive_stream): - return self.process_archive_subtitle_files(ZipFile(archive_stream), language, video, link, fps, num_cds) - elif archive_stream.seek(0) == 0 and is_7zfile(archive_stream): - return self.process_archive_subtitle_files(SevenZipFile(archive_stream), language, video, link, fps, num_cds) - else: - logger.error('Ignore unsupported archive %r', request.headers) - region.delete(cache_key) - return [] + try: + archive_stream = io.BytesIO(request.content) + if is_rarfile(archive_stream): + return self.process_archive_subtitle_files(RarFile(archive_stream), language, video, link, fps, num_cds) + elif is_zipfile(archive_stream): + return self.process_archive_subtitle_files(ZipFile(archive_stream), language, video, link, fps, num_cds) + elif archive_stream.seek(0) == 0 and is_7zfile(archive_stream): + return self.process_archive_subtitle_files(SevenZipFile(archive_stream), language, video, link, fps, num_cds) + except: + pass + + logger.error('Ignore unsupported archive %r', request.headers) + region.delete(cache_key) + return [] diff --git a/libs/subliminal_patch/providers/yavkanet.py b/libs/subliminal_patch/providers/yavkanet.py index 6de60ef35..4555fd177 100644 --- a/libs/subliminal_patch/providers/yavkanet.py +++ b/libs/subliminal_patch/providers/yavkanet.py @@ -37,7 +37,12 @@ class YavkaNetSubtitle(Subtitle): self.type = type self.video = video self.fps = fps - self.release_info = os.path.splitext(filename)[0] + self.release_info = filename + if fps: + if video.fps and float(video.fps) == fps: + self.release_info += " [{:.3f}]".format(fps) + else: + self.release_info += " [{:.3f}]".format(fps) @property def id(self): @@ -141,7 +146,7 @@ class YavkaNetProvider(Provider): element = row.find('a', {'class': 'selector'}) if element: link = element.get('href') - notes = element.get('content') + notes = re.sub(r'(?s)(.*)

', r"\1", element.get('content')) title = element.get_text() try: @@ -205,12 +210,15 @@ class YavkaNetProvider(Provider): else: logger.info('Cache file: %s', codecs.encode(cache_key, 'hex_codec').decode('utf-8')) - archive_stream = io.BytesIO(request.content) - if is_rarfile(archive_stream): - return self.process_archive_subtitle_files(RarFile(archive_stream), language, video, link, fps) - elif is_zipfile(archive_stream): - return self.process_archive_subtitle_files(ZipFile(archive_stream), language, video, link, fps) - else: - logger.error('Ignore unsupported archive %r', request.headers) - region.delete(cache_key) - return [] + try: + archive_stream = io.BytesIO(request.content) + if is_rarfile(archive_stream): + return self.process_archive_subtitle_files(RarFile(archive_stream), language, video, link, fps) + elif is_zipfile(archive_stream): + return self.process_archive_subtitle_files(ZipFile(archive_stream), language, video, link, fps) + except: + pass + + logger.error('Ignore unsupported archive %r', request.headers) + region.delete(cache_key) + return []