Video gets a new parameter embeded_subtitles to represent the subtitle files found in the mkv container.
This commit is contained in:
18
src/utils.py
18
src/utils.py
@@ -47,7 +47,7 @@ def refine(video, embedded_subtitles=True, **kwargs):
|
|||||||
* :attr:`~subliminal.video.Video.resolution`
|
* :attr:`~subliminal.video.Video.resolution`
|
||||||
* :attr:`~subliminal.video.Video.video_codec`
|
* :attr:`~subliminal.video.Video.video_codec`
|
||||||
* :attr:`~subliminal.video.Video.audio_codec`
|
* :attr:`~subliminal.video.Video.audio_codec`
|
||||||
* :attr:`~subliminal.video.Video.subtitle_languages`
|
* :attr:`~subliminal.video.Video.embeded_subtitles`
|
||||||
:param bool embedded_subtitles: search for embedded subtitles.
|
:param bool embedded_subtitles: search for embedded subtitles.
|
||||||
"""
|
"""
|
||||||
# skip non existing videos
|
# skip non existing videos
|
||||||
@@ -111,24 +111,24 @@ def refine(video, embedded_subtitles=True, **kwargs):
|
|||||||
# subtitle tracks
|
# subtitle tracks
|
||||||
if mkv.subtitle_tracks:
|
if mkv.subtitle_tracks:
|
||||||
if embedded_subtitles:
|
if embedded_subtitles:
|
||||||
embedded_subtitle_languages = set()
|
embeded_subtitles = set()
|
||||||
for st in mkv.subtitle_tracks:
|
for st in mkv.subtitle_tracks:
|
||||||
if st.language:
|
if st.language:
|
||||||
try:
|
try:
|
||||||
embedded_subtitle_languages.add(Language.fromalpha3b(st.language))
|
embeded_subtitles.add(Language.fromalpha3b(st.language))
|
||||||
except BabelfishError:
|
except BabelfishError:
|
||||||
logging.error('Embedded subtitle track language %r is not a valid language', st.language)
|
logging.error('Embedded subtitle track language %r is not a valid language', st.language)
|
||||||
embedded_subtitle_languages.add(Language('und'))
|
embeded_subtitles.add(Language('und'))
|
||||||
elif st.name:
|
elif st.name:
|
||||||
try:
|
try:
|
||||||
embedded_subtitle_languages.add(Language.fromname(st.name))
|
embeded_subtitles.add(Language.fromname(st.name))
|
||||||
except BabelfishError:
|
except BabelfishError:
|
||||||
logging.debug('Embedded subtitle track name %r is not a valid language', st.name)
|
logging.debug('Embedded subtitle track name %r is not a valid language', st.name)
|
||||||
embedded_subtitle_languages.add(Language('und'))
|
embeded_subtitles.add(Language('und'))
|
||||||
else:
|
else:
|
||||||
embedded_subtitle_languages.add(Language('und'))
|
embeded_subtitles.add(Language('und'))
|
||||||
logging.debug('Found embedded subtitle %r', embedded_subtitle_languages)
|
logging.debug('Found embedded subtitle %r', embeded_subtitles)
|
||||||
video.subtitle_languages |= embedded_subtitle_languages
|
video.embeded_subtitles |= embeded_subtitles
|
||||||
else:
|
else:
|
||||||
logging.debug('MKV has no subtitle track')
|
logging.debug('MKV has no subtitle track')
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ class Video(object):
|
|||||||
:param set subtitles: existing subtitle languages.
|
:param set subtitles: existing subtitle languages.
|
||||||
"""
|
"""
|
||||||
def __init__(self, name, hash=None, size=None, format=None, release_group=None, resolution=None, video_codec=None, audio_codec=None,
|
def __init__(self, name, hash=None, size=None, format=None, release_group=None, resolution=None, video_codec=None, audio_codec=None,
|
||||||
imdb_id=None, subtitles=None):
|
imdb_id=None, subtitles=None, embeded_subtitles=None):
|
||||||
#: Name or path of the video
|
#: Name or path of the video
|
||||||
self.name = name
|
self.name = name
|
||||||
|
|
||||||
@@ -64,6 +64,9 @@ class Video(object):
|
|||||||
#: Existing subtitle languages
|
#: Existing subtitle languages
|
||||||
self.subtitles = subtitles or set()
|
self.subtitles = subtitles or set()
|
||||||
|
|
||||||
|
#: Embeded subtitle languages
|
||||||
|
self.embeded_subtitles = embeded_subtitles or set()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def exists(self):
|
def exists(self):
|
||||||
"""Test whether the video exists"""
|
"""Test whether the video exists"""
|
||||||
|
|||||||
Reference in New Issue
Block a user