@ -2,8 +2,11 @@
import os
import os
from app . config import settings
from app . database import TableShows
from utilities . path_mappings import path_mappings
from utilities . path_mappings import path_mappings
from utilities . video_analyzer import embedded_audio_reader
from utilities . video_analyzer import embedded_audio_reader
from sonarr . info import get_sonarr_info
from . converter import SonarrFormatVideoCodec , SonarrFormatAudioCodec
from . converter import SonarrFormatVideoCodec , SonarrFormatAudioCodec
@ -28,6 +31,16 @@ def seriesParser(show, action, tags_dict, serie_default_profile, audio_profiles)
imdbId = show [ ' imdbId ' ] if ' imdbId ' in show else None
imdbId = show [ ' imdbId ' ] if ' imdbId ' in show else None
audio_language = [ ]
if not settings . general . getboolean ( ' parse_embedded_audio_track ' ) :
if get_sonarr_info . is_legacy ( ) :
audio_language = profile_id_to_language ( show [ ' qualityProfileId ' ] , audio_profiles )
else :
if ' languageProfileId ' in show :
audio_language = profile_id_to_language ( show [ ' languageProfileId ' ] , audio_profiles )
else :
audio_language = [ ]
if action == ' update ' :
if action == ' update ' :
return { ' title ' : show [ " title " ] ,
return { ' title ' : show [ " title " ] ,
' path ' : show [ " path " ] ,
' path ' : show [ " path " ] ,
@ -36,7 +49,7 @@ def seriesParser(show, action, tags_dict, serie_default_profile, audio_profiles)
' overview ' : overview ,
' overview ' : overview ,
' poster ' : poster ,
' poster ' : poster ,
' fanart ' : fanart ,
' fanart ' : fanart ,
' audio_language ' : str ( [ ] ) ,
' audio_language ' : str ( audio_language ) ,
' sortTitle ' : show [ ' sortTitle ' ] ,
' sortTitle ' : show [ ' sortTitle ' ] ,
' year ' : str ( show [ ' year ' ] ) ,
' year ' : str ( show [ ' year ' ] ) ,
' alternativeTitles ' : alternate_titles ,
' alternativeTitles ' : alternate_titles ,
@ -52,7 +65,7 @@ def seriesParser(show, action, tags_dict, serie_default_profile, audio_profiles)
' overview ' : overview ,
' overview ' : overview ,
' poster ' : poster ,
' poster ' : poster ,
' fanart ' : fanart ,
' fanart ' : fanart ,
' audio_language ' : str ( [ ] ) ,
' audio_language ' : str ( audio_language ) ,
' sortTitle ' : show [ ' sortTitle ' ] ,
' sortTitle ' : show [ ' sortTitle ' ] ,
' year ' : str ( show [ ' year ' ] ) ,
' year ' : str ( show [ ' year ' ] ) ,
' alternativeTitles ' : alternate_titles ,
' alternativeTitles ' : alternate_titles ,
@ -85,10 +98,28 @@ def episodeParser(episode):
else :
else :
sceneName = None
sceneName = None
audio_language = embedded_audio_reader ( path_mappings . path_replace ( episode [ ' episodeFile ' ] [ ' path ' ] ) ,
if settings . general . getboolean ( ' parse_embedded_audio_track ' ) :
file_size = episode [ ' episodeFile ' ] [ ' size ' ] ,
audio_language = embedded_audio_reader ( path_mappings . path_replace ( episode [ ' episodeFile ' ]
episode_file_id = episode [ ' episodeFile ' ] [ ' id ' ] ,
[ ' path ' ] ) ,
use_cache = True )
file_size = episode [ ' episodeFile ' ] [ ' size ' ] ,
episode_file_id = episode [ ' episodeFile ' ] [ ' id ' ] ,
use_cache = True )
else :
audio_language = [ ]
if ' language ' in episode [ ' episodeFile ' ] and len ( episode [ ' episodeFile ' ] [ ' language ' ] ) :
item = episode [ ' episodeFile ' ] [ ' language ' ]
if isinstance ( item , dict ) :
if ' name ' in item :
audio_language . append ( item [ ' name ' ] )
elif ' languages ' in episode [ ' episodeFile ' ] and len ( episode [ ' episodeFile ' ] [ ' languages ' ] ) :
items = episode [ ' episodeFile ' ] [ ' languages ' ]
if isinstance ( items , list ) :
for item in items :
if ' name ' in item :
audio_language . append ( item [ ' name ' ] )
else :
audio_language = TableShows . get (
TableShows . sonarrSeriesId == episode [ ' seriesId ' ] ) . audio_language
if ' mediaInfo ' in episode [ ' episodeFile ' ] :
if ' mediaInfo ' in episode [ ' episodeFile ' ] :
if ' videoCodec ' in episode [ ' episodeFile ' ] [ ' mediaInfo ' ] :
if ' videoCodec ' in episode [ ' episodeFile ' ] [ ' mediaInfo ' ] :