From 319d418af82f00b5e3583bc468530603f11c6ee2 Mon Sep 17 00:00:00 2001 From: clinton-hall Date: Wed, 21 Sep 2016 11:12:42 +0930 Subject: [PATCH] convert to 3 letter language code. Fixes #1088 --- core/transcoder/transcoder.py | 17 ++++++++++++----- tests/general.py | 4 +++- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/core/transcoder/transcoder.py b/core/transcoder/transcoder.py index 6264d9f1..cdb8b233 100644 --- a/core/transcoder/transcoder.py +++ b/core/transcoder/transcoder.py @@ -11,6 +11,7 @@ import shutil import re from core import logger from core.nzbToMediaUtil import makeDir +from babelfish import Language def isVideoGood(videofile, status): @@ -428,12 +429,18 @@ def buildCommands(file, newDir, movieName, bitbucket): sub_details, result = getVideoDetails(subfile) if not sub_details or not sub_details.get("streams"): continue - lan = os.path.splitext(os.path.splitext(subfile)[0])[1] command.extend(['-i', subfile]) - lansplit = lan.split('-') - if len(lansplit[0]) == 3 and ( len(lansplit) == 1 or ( len(lansplit) == 2 and len(lansplit[1]) == 2 ) ): + lan = os.path.splitext(os.path.splitext(subfile)[0])[1][1:].split('-')[0] + metlan = None + try: + if len(lan) == 3: + metlan = Language(lan) + if len(lan) == 2: + metlan = Language.fromalpha2(lan) + except: pass + if metlan: meta_cmd.extend(['-metadata:s:s:{x}'.format(x=len(s_mapped) + n), - 'language={lang}'.format(lang=lan[1:])]) + 'language={lang}'.format(lang=metlan.alpha3)]) n += 1 map_cmd.extend(['-map', '{x}:0'.format(x=n)]) @@ -492,7 +499,7 @@ def extract_subs(file, newfilePath, bitbucket): for n in range(num): sub = subStreams[n] idx = sub["index"] - lan = sub.geet("tags", {}).get("language", "unk") + lan = sub.get("tags", {}).get("language", "unk") if num == 1: outputFile = os.path.join(subdir, "{0}.srt".format(name)) diff --git a/tests/general.py b/tests/general.py index cfcee84e..e51ef9c9 100755 --- a/tests/general.py +++ b/tests/general.py @@ -39,7 +39,9 @@ if server_responding("http://127.0.0.1:8090"): print "Mylar Running" from babelfish import Language -print Language('eng') +lan = 'pt' +lan = Language.fromalpha2(lan) +print lan.alpha3 import subliminal