From ff250a824c818e391083cdf03821810fefe76e35 Mon Sep 17 00:00:00 2001
From: Luca <l.dimarino@gmail.com>
Date: Sun, 19 May 2013 18:01:14 +0200
Subject: [PATCH] Portuguese Brasilian Subtitles support

---
 gui/slick/images/flags/{br.png => pb.png} | Bin
 lib/subliminal/language.py                |   1 +
 lib/subliminal/services/addic7ed.py       |   4 ++--
 lib/subliminal/services/opensubtitles.py  |   6 +++---
 lib/subliminal/services/podnapisi.py      |   4 ++--
 lib/subliminal/services/subswiki.py       |   4 ++--
 lib/subliminal/services/subtitulos.py     |   4 ++--
 lib/subliminal/services/thesubdb.py       |   8 ++++++--
 lib/subliminal/services/tvsubtitles.py    |   4 ++--
 9 files changed, 20 insertions(+), 15 deletions(-)
 rename gui/slick/images/flags/{br.png => pb.png} (100%)

diff --git a/gui/slick/images/flags/br.png b/gui/slick/images/flags/pb.png
similarity index 100%
rename from gui/slick/images/flags/br.png
rename to gui/slick/images/flags/pb.png
diff --git a/lib/subliminal/language.py b/lib/subliminal/language.py
index c89e7abc0..6403bcc0a 100644
--- a/lib/subliminal/language.py
+++ b/lib/subliminal/language.py
@@ -619,6 +619,7 @@ LANGUAGES = [('aar', '', 'aa', u'Afar', u'afar'),
              ('pli', '', 'pi', u'Pali', u'pali'),
              ('pol', '', 'pl', u'Polish', u'polonais'),
              ('pon', '', '', u'Pohnpeian', u'pohnpei'),
+             ('pob', '', 'pb', u'Brazilian Portuguese', u'brazilian portuguese'),
              ('por', '', 'pt', u'Portuguese', u'portugais'),
              ('pra', '', '', u'Prakrit languages', u'prâkrit, langues'),
              ('pro', '', '', u'Provençal, Old (to 1500)', u'provençal ancien (jusqu\'à 1500)'),
diff --git a/lib/subliminal/services/addic7ed.py b/lib/subliminal/services/addic7ed.py
index fd0f70f48..665c5708a 100644
--- a/lib/subliminal/services/addic7ed.py
+++ b/lib/subliminal/services/addic7ed.py
@@ -38,8 +38,8 @@ class Addic7ed(ServiceBase):
     api_based = False
     #TODO: Complete this
     languages = language_set(['ar', 'ca', 'de', 'el', 'en', 'es', 'eu', 'fr', 'ga', 'gl', 'he', 'hr', 'hu',
-                              'it', 'pl', 'pt', 'ro', 'ru', 'se', 'pt-br'])
-    language_map = {'Portuguese (Brazilian)': Language('por-BR'), 'Greek': Language('gre'),
+                              'it', 'pl', 'pt', 'ro', 'ru', 'se', 'pb'])
+    language_map = {'Portuguese (Brazilian)': Language('pob'), 'Greek': Language('gre'),
                     'Spanish (Latin America)': Language('spa'), 'Galego': Language('glg'),
                     u'Català': Language('cat')}
     videos = [Episode]
diff --git a/lib/subliminal/services/opensubtitles.py b/lib/subliminal/services/opensubtitles.py
index fba8e4091..65599d245 100644
--- a/lib/subliminal/services/opensubtitles.py
+++ b/lib/subliminal/services/opensubtitles.py
@@ -74,9 +74,9 @@ class OpenSubtitles(ServiceBase):
                               'twi', 'tyv', 'udm', 'uga', 'uig', 'ukr', 'umb', 'urd', 'uzb', 'vai', 'ven', 'vie',
                               'vol', 'vot', 'wak', 'wal', 'war', 'was', 'wel', 'wen', 'wln', 'wol', 'xal', 'xho',
                               'yao', 'yap', 'yid', 'yor', 'ypk', 'zap', 'zen', 'zha', 'znd', 'zul', 'zun',
-                              'por-BR', 'rum-MD'])
-    language_map = {'mol': Language('rum-MD'), 'scc': Language('srp'), 'pob': Language('por-BR'),
-                    Language('rum-MD'): 'mol', Language('srp'): 'scc', Language('por-BR'): 'pob'}
+                              'pob', 'rum-MD'])
+    language_map = {'mol': Language('rum-MD'), 'scc': Language('srp'),
+                    Language('rum-MD'): 'mol', Language('srp'): 'scc'}
     language_code = 'alpha3'
     videos = [Episode, Movie]
     require_video = False
diff --git a/lib/subliminal/services/podnapisi.py b/lib/subliminal/services/podnapisi.py
index 108de211b..be02dd51d 100644
--- a/lib/subliminal/services/podnapisi.py
+++ b/lib/subliminal/services/podnapisi.py
@@ -37,10 +37,10 @@ class Podnapisi(ServiceBase):
                               'es', 'et', 'fa', 'fi', 'fr', 'ga', 'he', 'hi', 'hr', 'hu', 'id',
                               'is', 'it', 'ja', 'ko', 'lt', 'lv', 'mk', 'ms', 'nl', 'nn', 'pl',
                               'pt', 'ro', 'ru', 'sk', 'sl', 'sq', 'sr', 'sv', 'th', 'tr', 'uk',
-                              'vi', 'zh', 'es-ar', 'pt-br'])
+                              'vi', 'zh', 'es-ar', 'pb'])
     language_map = {'jp': Language('jpn'), Language('jpn'): 'jp',
                     'gr': Language('gre'), Language('gre'): 'gr',
-                    'pb': Language('por-BR'), Language('por-BR'): 'pb',
+#                    'pb': Language('por-BR'), Language('por-BR'): 'pb',
                     'ag': Language('spa-AR'), Language('spa-AR'): 'ag',
                     'cyr': Language('srp')}
     videos = [Episode, Movie]
diff --git a/lib/subliminal/services/subswiki.py b/lib/subliminal/services/subswiki.py
index 2a3d57f8a..9f9a34141 100644
--- a/lib/subliminal/services/subswiki.py
+++ b/lib/subliminal/services/subswiki.py
@@ -33,9 +33,9 @@ class SubsWiki(ServiceBase):
     server_url = 'http://www.subswiki.com'
     site_url = 'http://www.subswiki.com'
     api_based = False
-    languages = language_set(['eng-US', 'eng-GB', 'eng', 'fre', 'por-BR', 'por', 'spa-ES', u'spa', u'ita', u'cat'])
+    languages = language_set(['eng-US', 'eng-GB', 'eng', 'fre', 'pob', 'por', 'spa-ES', u'spa', u'ita', u'cat'])
     language_map = {u'Español': Language('spa'), u'Español (España)': Language('spa'), u'Español (Latinoamérica)': Language('spa'),
-                    u'Català': Language('cat'), u'Brazilian': Language('por-BR'), u'English (US)': Language('eng-US'),
+                    u'Català': Language('cat'), u'Brazilian': Language('pob'), u'English (US)': Language('eng-US'),
                     u'English (UK)': Language('eng-GB')}
     language_code = 'name'
     videos = [Episode, Movie]
diff --git a/lib/subliminal/services/subtitulos.py b/lib/subliminal/services/subtitulos.py
index 753f2f44e..6dd085a3b 100644
--- a/lib/subliminal/services/subtitulos.py
+++ b/lib/subliminal/services/subtitulos.py
@@ -34,9 +34,9 @@ class Subtitulos(ServiceBase):
     server_url = 'http://www.subtitulos.es'
     site_url = 'http://www.subtitulos.es'
     api_based = False
-    languages = language_set(['eng-US', 'eng-GB', 'eng', 'fre', 'por-BR', 'por', 'spa-ES', u'spa', u'ita', u'cat'])
+    languages = language_set(['eng-US', 'eng-GB', 'eng', 'fre', 'pob', 'por', 'spa-ES', u'spa', u'ita', u'cat'])
     language_map = {u'Español': Language('spa'), u'Español (España)': Language('spa'), #u'Español (Latinoamérica)': Language('spa'),
-                    u'Català': Language('cat'), u'Brazilian': Language('por-BR'), u'English (US)': Language('eng-US'),
+                    u'Català': Language('cat'), u'Brazilian': Language('pob'), u'English (US)': Language('eng-US'),
                     u'English (UK)': Language('eng-GB'), 'Galego': Language('glg')}
     language_code = 'name'
     videos = [Episode]
diff --git a/lib/subliminal/services/thesubdb.py b/lib/subliminal/services/thesubdb.py
index 9d2ced82b..93787ad62 100644
--- a/lib/subliminal/services/thesubdb.py
+++ b/lib/subliminal/services/thesubdb.py
@@ -16,7 +16,7 @@
 # You should have received a copy of the GNU Lesser General Public License
 # along with subliminal.  If not, see <http://www.gnu.org/licenses/>.
 from . import ServiceBase
-from ..language import language_set
+from ..language import language_set, Language
 from ..subtitles import get_subtitle_path, ResultSubtitle
 from ..videos import Episode, Movie, UnknownVideo
 import logging
@@ -32,7 +32,7 @@ class TheSubDB(ServiceBase):
     api_based = True
     # Source: http://api.thesubdb.com/?action=languages
     languages = language_set(['af', 'cs', 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'id', 'it',
-                              'la', 'nl', 'no', 'oc', 'pl', 'pt', 'ro', 'ru', 'sl', 'sr', 'sv',
+                              'la', 'nl', 'no', 'oc', 'pl', 'pb', 'ro', 'ru', 'sl', 'sr', 'sv',
                               'tr'])
     videos = [Movie, Episode, UnknownVideo]
     require_video = True
@@ -49,6 +49,10 @@ class TheSubDB(ServiceBase):
             logger.error(u'Request %s returned status code %d' % (r.url, r.status_code))
             return []
         available_languages = language_set(r.content.split(','))
+        #this is needed becase for theSubDB pt languages is Portoguese Brazil and not Portoguese#
+        #So we are deleting pt language and adding pb language 
+        if Language('pt') in available_languages:
+            available_languages = available_languages - language_set(['pt']) | language_set(['pb'])
         languages &= available_languages
         if not languages:
             logger.debug(u'Could not find subtitles for hash %s with languages %r (only %r available)' % (moviehash, languages, available_languages))
diff --git a/lib/subliminal/services/tvsubtitles.py b/lib/subliminal/services/tvsubtitles.py
index 27992226d..f6b2fd52b 100644
--- a/lib/subliminal/services/tvsubtitles.py
+++ b/lib/subliminal/services/tvsubtitles.py
@@ -43,10 +43,10 @@ class TvSubtitles(ServiceBase):
     api_based = False
     languages = language_set(['ar', 'bg', 'cs', 'da', 'de', 'el', 'en', 'es', 'fi', 'fr', 'hu',
                               'it', 'ja', 'ko', 'nl', 'pl', 'pt', 'ro', 'ru', 'sv', 'tr', 'uk',
-                              'zh', 'pt-br'])
+                              'zh', 'pb'])
     #TODO: Find more exceptions
     language_map = {'gr': Language('gre'), 'cz': Language('cze'), 'ua': Language('ukr'),
-                    'cn': Language('chi')}
+                    'cn': Language('chi'), 'br': Language('pob')}
     videos = [Episode]
     require_video = False
     required_features = ['permissive']
-- 
GitLab