|
|
|
# coding=utf-8
|
|
|
|
from __future__ import absolute_import
|
|
|
|
from subliminal.converters.addic7ed import Addic7edConverter
|
|
|
|
from babelfish.converters.opensubtitles import OpenSubtitlesConverter
|
|
|
|
|
|
|
|
|
|
|
|
class PatchedAddic7edConverter(Addic7edConverter):
|
|
|
|
def __init__(self):
|
|
|
|
super(PatchedAddic7edConverter, self).__init__()
|
|
|
|
self.from_addic7ed.update({
|
|
|
|
"French (Canadian)": ("fra", "CA"),
|
|
|
|
})
|
|
|
|
self.to_addic7ed.update({
|
|
|
|
("fra", "CA"): "French (Canadian)",
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
class PatchedOpenSubtitlesConverter(OpenSubtitlesConverter):
|
|
|
|
def __init__(self):
|
|
|
|
super(PatchedOpenSubtitlesConverter, self).__init__()
|
|
|
|
self.to_opensubtitles.update({
|
|
|
|
('srp', None, "Latn"): 'scc',
|
|
|
|
('srp', None, "Cyrl"): 'scc',
|
|
|
|
('chi', None, 'Hant'): 'zht',
|
|
|
|
('spa', 'MX'): 'spl',
|
|
|
|
})
|
|
|
|
self.from_opensubtitles.update({
|
|
|
|
'zht': ('zho', None, 'Hant'),
|
|
|
|
'spl': ('spa', 'MX'),
|
|
|
|
})
|
|
|
|
|
|
|
|
def convert(self, alpha3, country=None, script=None):
|
|
|
|
alpha3b = self.alpha3b_converter.convert(alpha3, country, script)
|
|
|
|
if (alpha3b, country) in self.to_opensubtitles:
|
|
|
|
return self.to_opensubtitles[(alpha3b, country)]
|
|
|
|
elif (alpha3b, country, script) in self.to_opensubtitles:
|
|
|
|
return self.to_opensubtitles[(alpha3b, country, script)]
|
|
|
|
return alpha3b
|