The branch, eden has been updated
via 089cae4936eba37c3004846ab695933355f80bc4 (commit)
from f82af6ed0e60d7200aa041a8afef52c8ea577271 (commit)
- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/scripts;a=commit;h=089cae4936eba37c3004846ab695933355f80bc4
commit 089cae4936eba37c3004846ab695933355f80bc4
Author: amet <[email protected]>
Date: Thu Jul 19 15:13:31 2012 +0200
[script.xbmc.subtitles] -v3.3.0
3.3.0
- French localization, thx Regis Villemin
- Enabled localization of lang names in search results, thx Regis Villemin
- Fixed: LegendasZone, thx HiGhLaNdeR
- Fixed: script loading and charset errors on windows, thx chadoe
- fixed: Legendas.TV, MrSparklle
- fixed: Subtitulos.es fix tvshows with year, thx quillo86
diff --git a/script.xbmc.subtitles/addon.xml b/script.xbmc.subtitles/addon.xml
index fa096a4..40e5514 100755
--- a/script.xbmc.subtitles/addon.xml
+++ b/script.xbmc.subtitles/addon.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="script.xbmc.subtitles"
name="XBMC Subtitles"
- version="3.2.1"
+ version="3.3.0"
provider-name="amet, mr_blobby">
<requires>
<import addon="xbmc.python" version="2.0"/>
@@ -13,6 +13,7 @@
<summary lang="bg">XBMC ÑÑбÑиÑÑи</summary>
<summary lang="en">XBMC Subtitles</summary>
<summary lang="es">SubtÃtulos XBMC</summary>
+ <summary lang="fr">Sous-titres XBMC</summary>
<summary lang="hu">XBMC feliratok</summary>
<summary lang="sr">XBMC ÐÑеводи</summary>
<summary lang="se">XBMC Undertexter</summary>
@@ -23,6 +24,7 @@
<description lang="bg">ТÑÑÑи и ÑÐ²Ð°Ð»Ñ ÑÑбÑиÑÑи оÑ
многобÑойни изÑоÑниÑи. ТÑÑÐ±Ð²Ð°Ñ Ð»Ð¸ ви
ÑÑбÑиÑÑи на бÑлгаÑÑки език пÑобвайÑе
OpenSubtitles.org. ÐолзваÑиÑе Eden Ð¼Ð¾Ð³Ð°Ñ Ð´Ð° вкл/изкл
ÑÑбÑиÑÑиÑе Ð¾Ñ ÐаÑÑÑойки > Ðблик > Ðобавка >
Ðидео OSD</description>
<description lang="en">Search and download subtitles from multipe
providers.Subtitle button on OSD needs to be activated and path set to XBMC
Subtitles under System-> Skin-> Addon Scripts</description>
<description lang="es">Busca y descarga subtÃtulos de:Bierdopje.com,
Italiansubs.net, Legendas-Zone.org, LegendasDivx.com, Legendas.tv,
Napiprojekt.pl, OmniSubs.net, Ondertitel.com, OpenSubtitles.org, Podnapisi.net,
PT-SUBS.NET, theSubDB.com, Subdivx.com, Sublight.si, Subscene.com, Swesub.nu,
Subscenter.org, Titlovi.com, Titulky.com y Undertexter.se.El botón de
subtitulos en el OSD debe ser añadido, y la ruta al addon debe ponerse en
Sistema-> Skin-> Addons de Scripts</description>
+ <description lang="fr">Recherche et télécharge des sous-titres depuis
plusieurs sources. Le bouton de sous-titres doit être activé dans l'OSD
(interface affichée lors de la lecture), et un chemin doit être ajouté vers
"XBMC Subtitles" dans Système-> Thème-> Add-on(Raccourcis)</description>
<description lang="hu">Film feliratok keresése letöltése
az:Bierdopje.com, Italiansubs.net, Legendas.tv, Napiprojekt.pl, OmniSubs.net,
Ondertitel.com, OpenSubtitles.org, Podnapisi.net, theSubDB.com, Subdivx.com,
Sublight.si, Subscene.com, Swesub.nu, Subscenter.org, Titlovi.com, Titulky.com
és Undertexter.se webhelyekról.A dalszöveg OSD gombot aktiválni kell az
elérési út megadásával a BeállÃtások -> Skin -> Szkriptek
alatt.</description>
<description lang="sr">ÐÑеÑÑажи и Ñкини пÑеводе од
многобÑоÑниÑ
пÑоваÑдеÑа. ÐÑгме за пÑеводе
на OSD ÑÑеба да Ñе акÑивиÑа и изабеÑе XBMC Subtitles
Ñ Ð¡Ð¸ÑÑем-> ÐаÑка-> СкÑÐ¸Ð¿Ñ Ð´Ð¾Ð´Ð°Ñи</description>
<description lang="nl">Zoek en download ondertitels van 19
websites:Bierdopje.com, Italiansubs.net, Legendas.tv, Napiprojekt.pl,
OmniSubs.net, Ondertitel.com, OpenSubtitles.org, Podnapisi.net, theSubDB.com,
Subdivx.com, Sublight.si, Subscene.com, Swesub.nu, Subscenter.org, Titlovi.com,
Titulky.com en Undertexter.se.De ondertitel knop in het OSD scherm moet zijn
geactiveerd met het pad naar XBMC Subtitles via Systeem-> Skin-> Addon
Scripts.</description>
diff --git a/script.xbmc.subtitles/changelog.txt
b/script.xbmc.subtitles/changelog.txt
index 9d47172..d47414e 100644
--- a/script.xbmc.subtitles/changelog.txt
+++ b/script.xbmc.subtitles/changelog.txt
@@ -1,3 +1,11 @@
+3.3.0
+- French localization, thx Regis Villemin
+- Enabled localization of lang names in search results, thx Regis Villemin
+- Fixed: LegendasZone, thx HiGhLaNdeR
+- Fixed: script loading and charset errors on windows, thx chadoe
+- fixed: Legendas.TV, MrSparklle
+- fixed: Subtitulos.es fix tvshows with year, thx quillo86
+
3.2.1
- fix: clean temp folders properly, we have seen some issues with folders that
couldn't be cleaned
- Russian language update, thx to Roman_V_M
diff --git a/script.xbmc.subtitles/default.py b/script.xbmc.subtitles/default.py
index 25c55b3..509afa7 100644
--- a/script.xbmc.subtitles/default.py
+++ b/script.xbmc.subtitles/default.py
@@ -15,7 +15,7 @@ __language__ = __addon__.getLocalizedString
__cwd__ = xbmc.translatePath( __addon__.getAddonInfo('path')
).decode("utf-8")
__profile__ = xbmc.translatePath( __addon__.getAddonInfo('profile')
).decode("utf-8")
-__resource__ = xbmc.translatePath( os.path.join( __cwd__, 'resources', 'lib'
) )
+__resource__ = xbmc.translatePath( os.path.join( __cwd__, 'resources', 'lib'
) ).decode("utf-8")
sys.path.append (__resource__)
diff --git a/script.xbmc.subtitles/resources/language/French/strings.xml
b/script.xbmc.subtitles/resources/language/French/strings.xml
index 8aafaec..e115825 100644
--- a/script.xbmc.subtitles/resources/language/French/strings.xml
+++ b/script.xbmc.subtitles/resources/language/French/strings.xml
@@ -5,97 +5,121 @@
<string id="610">Chercher sur </string>
<string id="612">Entrer la recherche manuellement</string>
- <string id="642">Recherche de soustitres %s</string>
+ <string id="642">Recherche de sous-titres %s</string>
<string id="646">Connexion en cours...</string>
- <string id="649">Téléchargement des soustitres...</string>
- <string id="652">Fichier soustitre téléchargé et extrait</string>
- <string id="653">Echec de la connexion</string>
- <string id="654">Erreur d'extraction des soustitres</string>
- <string id="655">Local subtitle available</string>
- <string id="656">Service did not respond within the time out limit</string>
- <string id="657">No Subtitles Found!</string>
- <string id="744">soustitres trouvés pour</string>
- <string id="747">Search Using Parent Folder</string>
- <string id="748">You can't save subtitle to selected destination</string>
- <string id="750">Would you like to activate this subtitle
temporarily?</string>
- <string id="751">Enter Movie Name (year)</string>
- <string id="755">Server is overloaded, please try again later</string>
- <string id="756">Login failed. Please verify your settings at the addon
Configuration</string>
- <string id="757">Server requires you to rewrite code from image</string>
- <string id="758">Please take look at notification area</string>
- <string id="759">Enter code of image in notification area</string>
- <string id="760">Available Services</string>
+ <string id="649">Téléchargement des sous-titres...</string>f
+ <string id="652">Fichier de sous-titres téléchargé et extrait</string>
+ <string id="653">Echec de connexion</string>
+ <string id="654">Erreur d'extraction des sous-titres</string>
+ <string id="655">Des sous-titres sont disponibles en local</string>
+ <string id="656">Délai d'attente dépassé</string>
+ <string id="657">Pas de sous-titres trouvés !</string>
+ <string id="744">fichier(s) sous-titres trouvé(s) pour</string>
+ <string id="747">Chercher à partir du dossier parent</string>
+ <string id="748">Impossible de sauver les sous-titres à l'emplacement
choisi</string>
+ <string id="750">Voulez-vous activer ces sous-titres temporairement
?</string>
+ <string id="751">Tapez le nom du film (année)</string>
+ <string id="755">Serveur saturé, ré-essayez plus tard</string>
+ <string id="756">Echec de connexion. Vérifiez vos paramètres dans la
Configuration de l'addon</string>
+ <string id="757">Le serveur exige que vous retapiez le code de
l'image</string>
+ <string id="758">Regardez la zone de notification</string>
+ <string id="759">Entrez le code de l'image de la zone de
notification</string>
+ <string id="760">Services Disponibles</string>
+ <string id="761">Vous devez être identifié pour télécharger ces
sous-titres,[CR]vérifiez vos paramètres dans la Configuration de
l'addon</string>
+ <string id="762">Paramètres de l'addon</string>
+ <string id="763">Téléchargement auto des premiers sous-titres
'synchro'</string>
+ <string id="764">Téléchargement des premiers sous-titres
'synchro'</string>
+ <string id="765">premiers sous-titres 'synchro' téléchargés</string>
+ <string id="766">Choisir le dossier des sous-titres</string>
<!-- Script Settings -->
- <string id="30100">Selection des Langues</string>
+ <string id="30100">Langues</string>
<string id="30101">Première Langue</string>
- <string id="30102">Seconde Langue</string>
- <string id="30103">Selection des Services</string>
+ <string id="30102">Deuxième Langue</string>
+ <string id="30103">Services</string>
<string id="30104">- Utilisateur Podnapisi.net</string>
- <string id="30105">- Password Podnapisi.net</string>
- <string id="30106">Advanced Options</string>
- <string id="30107">Subtitle Download Folder Same As Movie</string>
- <string id="30108">- Set Custom Subtitle Download Path</string>
- <string id="30110">Entrez manuellement le texte de recherche</string>
+ <string id="30105">- Mot de passe Podnapisi.net</string>
+ <string id="30106">Avancé</string>
+ <string id="30107">Sauver les sous-titres dans le dossier du film</string>
+ <string id="30108">- Chemin personnalisé de téléchargement des
sous-titres</string>
+ <string id="30110">Saisie manuelle du texte de recherche</string>
<string id="30111">Troisième Langue</string>
- <string id="30113">Select Default Movie Service</string>
- <string id="30114">Select Default TV Show Service</string>
- <string id="30118">Display file name in results page</string>
- <string id="30119">Search Using Parent Folder</string>
- <string id="30121">Add Language To Filename </string>
- <string id="30122">Set Default Timeout</string>
- <string id="30123">- Legendas.TV Username</string>
- <string id="30124">- Legendas.TV Password</string>
+ <string id="30113">Films - service par défaut</string>
+ <string id="30114">Séries - service par défaut</string>
+ <string id="30118">Afficher le nom de fichier dans les résultats</string>
+ <string id="30119">Chercher à partir du dossier parent</string>
+ <string id="30121">Joindre la langue au nom de fichier</string>
+ <string id="30122">Temps d'attente par défaut</string>
+ <string id="30123">- Utilisateur Legendas.TV</string>
+ <string id="30124">- Mot de passe Legendas.TV</string>
<string id="30125"></string>
- <string id="30126">- Itasa Username</string>
- <string id="30127">- Itasa Password</string>
-
+ <string id="30126">- Utilisateur Itasa</string>
+ <string id="30127">- Mot de passe Itasa</string>
+ <string id="30128">- Utilisateur Titulky</string>
+ <string id="30129">- Mot de passe Titulky</string>
+ <string id="30130">Passer au service suivant, si pas de résultat</string>
+ <string id="30131">Télécharger automatiquement les premiers sous-titres
"synchro"</string>
+ <string id="30132">- Utilisateur LegendasDivx</string>
+ <string id="30133">- Mot de passe LegendasDivx</string>
+ <string id="30134">- Utilisateur PTSubs</string>
+ <string id="30135">- Mot de passe PTSubs</string>
+ <string id="30136">- Utilisateur OmniSubs</string>
+ <string id="30137">- Mot de passe OmniSubs</string>
+ <string id="30138">- Utilisateur LegendasZone</string>
+ <string id="30139">- Mot de passe LegendasZone</string>
+ <string id="30140">- Choix du type de sous-titres:</string>
+ <string id="30141">SubRip</string>
+ <string id="30142">TMPlayer</string>
+ <string id="30143">MicroDVD</string>
+ <string id="30144">MPl2</string>
+ <string id="30145">Sauver les sous-titres dans un sous-dossier
'Subs'</string>
+
<!-- Languages -->
- <string id="30201">Albanian</string>
- <string id="30202">Arabic</string>
- <string id="30203">Belarusian</string>
- <string id="30204">Bosnian (Latin)</string>
- <string id="30205">Bulgarian</string>
+ <string id="30201">Albanais</string>
+ <string id="30202">Arabe</string>
+ <string id="30203">Biélorusse</string>
+ <string id="30204">Bosnien (Latin)</string>
+ <string id="30205">Bulgare</string>
<string id="30206">Catalan</string>
- <string id="30207">Chinese</string>
- <string id="30208">Croatian</string>
- <string id="30209">Czech</string>
- <string id="30210">Danish</string>
- <string id="30211">Dutch</string>
- <string id="30212">English</string>
- <string id="30213">Estonian</string>
- <string id="30214">Finnish</string>
- <string id="30215">French</string>
- <string id="30216">German</string>
- <string id="30217">Greek</string>
- <string id="30218">Hebrew</string>
+ <string id="30207">Chinois</string>
+ <string id="30208">Croate</string>
+ <string id="30209">Tchèque</string>
+ <string id="30210">Danois</string>
+ <string id="30211">Néerlandais</string>
+ <string id="30212">Anglais</string>
+ <string id="30213">Estonien</string>
+ <string id="30214">Finlandais</string>
+ <string id="30215">Français</string>
+ <string id="30216">Allemand</string>
+ <string id="30217">Grec</string>
+ <string id="30218">Hébreu</string>
<string id="30219">Hindi</string>
- <string id="30220">Hungarian</string>
- <string id="30221">Icelandic</string>
- <string id="30222">Indonesian</string>
- <string id="30224">Italian</string>
- <string id="30225">Japanese</string>
- <string id="30226">Korean</string>
- <string id="30227">Latvian</string>
- <string id="30228">Lithuanian</string>
- <string id="30229">Macedonian</string>
- <string id="30230">Norwegian</string>
- <string id="30232">Polish</string>
- <string id="30233">Portuguese</string>
- <string id="30234">Portuguese (Brazil)</string>
- <string id="30235">Romanian</string>
- <string id="30236">Russian</string>
- <string id="30237">SerbianLatin</string>
- <string id="30238">Slovak</string>
- <string id="30239">Slovenian</string>
- <string id="30240">Spanish</string>
- <string id="30242">Swedish</string>
- <string id="30243">Thai</string>
- <string id="30244">Turkish</string>
- <string id="30245">Ukrainian</string>
- <string id="30246">Vietnamese</string>
- <string id="30247">Farsi</string>
+ <string id="30220">Hongrois</string>
+ <string id="30221">Islandais</string>
+ <string id="30222">Indonésien</string>
+ <string id="30224">Italien</string>
+ <string id="30225">Japonais</string>
+ <string id="30226">Coréen</string>
+ <string id="30227">Letton</string>
+ <string id="30228">Lituanien</string>
+ <string id="30229">Macédonien</string>
+ <string id="30230">Norvégien</string>
+ <string id="30232">Polonais</string>
+ <string id="30233">Portugais</string>
+ <string id="30234">Portugais (Brésil)</string>
+ <string id="30235">Roumain</string>
+ <string id="30236">Russe</string>
+ <string id="30237">Serbe (Latin)</string>
+ <string id="30238">Slovaque</string>
+ <string id="30239">Slovène</string>
+ <string id="30240">Espagnol</string>
+ <string id="30242">Suédois</string>
+ <string id="30243">Thaï</string>
+ <string id="30244">Turc</string>
+ <string id="30245">Ukrainien</string>
+ <string id="30246">Vietnamien</string>
+ <string id="30247">Persan</string>
</strings>
diff --git a/script.xbmc.subtitles/resources/lib/gui.py
b/script.xbmc.subtitles/resources/lib/gui.py
index 4860e3d..ed821c8 100644
--- a/script.xbmc.subtitles/resources/lib/gui.py
+++ b/script.xbmc.subtitles/resources/lib/gui.py
@@ -47,7 +47,7 @@ class GUI( xbmcgui.WindowXMLDialog ):
self.stack = False
self.autoDownload = False
use_subs_folder = __addon__.getSetting( "use_subs_folder" ) == "true"
# use 'Subs' subfolder for storing subtitles
- movieFullPath =
urllib.unquote(xbmc.Player().getPlayingFile()).decode('utf-8')# Full path of a
playing file
+ movieFullPath =
urllib.unquote(xbmc.Player().getPlayingFile().decode('utf-8'))# Full path of a
playing file
path = __addon__.getSetting( "subfolder" ) == "true"
# True for movie folder
self.sub_folder = xbmc.translatePath(__addon__.getSetting(
"subfolderpath" )).decode("utf-8") # User specified subtitle folder
self.year = xbmc.getInfoLabel("VideoPlayer.Year")
# Year
@@ -58,8 +58,8 @@ class GUI( xbmcgui.WindowXMLDialog ):
self.language_1 = languageTranslate(__addon__.getSetting( "Lang01" ),
4, 0) # Full language 1
self.language_2 = languageTranslate(__addon__.getSetting( "Lang02" ),
4, 0) # Full language 2
self.language_3 = languageTranslate(__addon__.getSetting( "Lang03" ),
4, 0) # Full language 3
- self.tmp_sub_dir = os.path.join( __profile__ ,"sub_tmp"
).decode("utf-8") # Temporary subtitle extraction directory
- self.stream_sub_dir = os.path.join( __profile__ ,"sub_stream"
).decode("utf-8") # Stream subtitle directory
+ self.tmp_sub_dir = os.path.join( __profile__ ,"sub_tmp" )
# Temporary subtitle extraction directory
+ self.stream_sub_dir = os.path.join( __profile__ ,"sub_stream" )
# Stream subtitle directory
self.clean_temp()
# clean temp dirs
@@ -264,7 +264,7 @@ class GUI( xbmcgui.WindowXMLDialog ):
break
else:
if gui:
- listitem = xbmcgui.ListItem(label=item["language_name"],
+ listitem = xbmcgui.ListItem(label=_(
languageTranslate(item["language_name"],0,5) ),
label2=item["filename"],
iconImage=item["rating"],
thumbnailImage=item["language_flag"]
@@ -314,9 +314,9 @@ class GUI( xbmcgui.WindowXMLDialog ):
sub_ext = os.path.splitext( file )[1]
sub_name = os.path.splitext( os.path.basename( self.file_original_path )
)[0]
if (__addon__.getSetting( "lang_to_end" ) == "true"):
- file_name = "%s.%s%s" % ( sub_name, sub_lang, sub_ext )
+ file_name = u"%s.%s%s" % ( sub_name, sub_lang, sub_ext )
else:
- file_name = "%s%s" % ( sub_name, sub_ext )
+ file_name = u"%s%s" % ( sub_name, sub_ext )
file_from = file.replace('\\','/')
file_to = os.path.join(self.sub_folder, file_name).replace('\\','/')
# Create a files list of from-to tuples so that multiple files may be
@@ -425,10 +425,10 @@ class GUI( xbmcgui.WindowXMLDialog ):
os.path.splitext( zip_entry )[1] )
else:
file_name = u"%s%s" % ( name, os.path.splitext( zip_entry )[1] )
- log( __name__ ,"Sub in Zip [%s], File Name [%s]" %
(zip_entry.encode("utf-8"),
-
file_name.encode("utf-8"),))
- ret_zip_entry = os.path.join(self.tmp_sub_dir,zip_entry.encode("utf-8"))
- ret_file_name = os.path.join(self.sub_folder,file_name.encode("utf-8"))
+ log( __name__ ,"Sub in Zip [%s], File Name [%s]" % (zip_entry,
+ file_name,))
+ ret_zip_entry = os.path.join(self.tmp_sub_dir,zip_entry)
+ ret_file_name = os.path.join(self.sub_folder,file_name)
return ret_zip_entry,ret_file_name
def list_services( self ):
diff --git a/script.xbmc.subtitles/resources/lib/services/LegendasTV/service.py
b/script.xbmc.subtitles/resources/lib/services/LegendasTV/service.py
index 7b72057..428dd53 100644
--- a/script.xbmc.subtitles/resources/lib/services/LegendasTV/service.py
+++ b/script.xbmc.subtitles/resources/lib/services/LegendasTV/service.py
@@ -3,7 +3,7 @@
# Copyright, 2010, Guilherme Jardim.
# This program is distributed under the terms of the GNU General Public
License, version 3.
# http://www.gnu.org/licenses/gpl.txt
-# Rev. 1.0.3
+# Rev. 1.0.4
import xbmc, xbmcgui
import cookielib, urllib2, urllib, sys, re, os, webbrowser, time, unicodedata
@@ -58,7 +58,9 @@ def download_subtitles (subtitles_list, pos, zip_subs,
tmp_sub_dir, sub_folder,
xbmc.executebuiltin("XBMC.Extract(" + fname + "," + extract_path +")")
time.sleep(2)
legendas_tmp = []
- for root, dirs, files in os.walk(extract_path, topdown=False):
+ # brunoga fixed solution for non unicode caracters
+ fs_encoding = sys.getfilesystemencoding()
+ for root, dirs, files in os.walk(extract_path.encode(fs_encoding),
topdown=False):
for file in files:
dirfile = os.path.join(root, file)
ext = os.path.splitext(dirfile)[1][1:].lower()
diff --git
a/script.xbmc.subtitles/resources/lib/services/LegendasZone/service.py
b/script.xbmc.subtitles/resources/lib/services/LegendasZone/service.py
index fac28b0..3e5806b 100644
--- a/script.xbmc.subtitles/resources/lib/services/LegendasZone/service.py
+++ b/script.xbmc.subtitles/resources/lib/services/LegendasZone/service.py
@@ -69,7 +69,7 @@ def getallsubs(searchstring, languageshort, languagelong,
file_original_path, su
page = 0
if languageshort == "pt":
- url = main_url + " legendas.php?l=pt&page=" + str(page) +
"&s=" + urllib.quote_plus(searchstring)
+ url = main_url + "legendas.php?l=pt&page=" + str(page) + "&s="
+ urllib.quote_plus(searchstring)
content = opener.open(url)
content = content.read()
@@ -135,7 +135,7 @@ def getallsubs(searchstring, languageshort, languagelong,
file_original_path, su
#filename = filename + " " + hits + "Hits" + "
- " + desc + " - uploader: " + uploader
subtitles_list.append({'rating':
str(downloads), 'no_files': no_files, 'id': id, 'filename': filename, 'desc':
desc, 'sync': sync, 'hits': hits, 'language_flag': 'flags/' + languageshort +
'.gif', 'language_name': languagelong})
page = page + 1
- url = main_url + " legendas.php?l=pt&page=" +
str(page) + "&s=" + urllib.quote_plus(searchstring)
+ url = main_url + "legendas.php?l=pt&page=" + str(page)
+ "&s=" + urllib.quote_plus(searchstring)
content = opener.open(url)
content = content.read()
#For DEBUG only uncomment next line
@@ -143,7 +143,7 @@ def getallsubs(searchstring, languageshort, languagelong,
file_original_path, su
else:
page = 0
if languageshort == "pt":
- url = main_url + " legendas.php?l=pt&page=" +
str(page) + "&s=" + urllib.quote_plus(searchstring)
+ url = main_url + "legendas.php?l=pt&page=" + str(page)
+ "&s=" + urllib.quote_plus(searchstring)
content = opener.open(url)
content = content.read()
maxsubs = re.findall(multiple_results_pattern, content,
re.IGNORECASE | re.DOTALL | re.MULTILINE | re.UNICODE | re.VERBOSE)
diff --git
a/script.xbmc.subtitles/resources/lib/services/SubtitulosES/service.py
b/script.xbmc.subtitles/resources/lib/services/SubtitulosES/service.py
index 188f766..7c9e502 100644
--- a/script.xbmc.subtitles/resources/lib/services/SubtitulosES/service.py
+++ b/script.xbmc.subtitles/resources/lib/services/SubtitulosES/service.py
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
# based on argenteam.net subtitles, based on a mod of Subdivx.com subtitles,
based on a mod of Undertext subtitles
-# developed by quillo86 for Subtitulos.es and XBMC.org
+# developed by quillo86 and infinito for Subtitulos.es and XBMC.org
import os, sys, re, xbmc, xbmcgui, string, time, urllib, urllib2
from utilities import log
_ = sys.modules[ "__main__" ].__language__
@@ -22,141 +22,187 @@ subtitle_pattern2 = "<li
class='li-idioma'>(.+?)<strong>(.+?)</strong>(.+?)<li c
# Functions
#====================================================================================================================
+def getallsubs(languageshort, langlong, file_original_path, subtitles_list,
tvshow, season, episode):
+
+ if re.search(r'\([^)]*\)', tvshow):
+ for level in range(4):
+ searchstring, tvshow, season, episode = getsearchstring(tvshow,
season, episode, level)
+ url = main_url + searchstring
+ getallsubsforurl(url, languageshort, langlong, file_original_path,
subtitles_list, tvshow, season, episode)
+ else:
+ searchstring, tvshow, season, episode = getsearchstring(tvshow,
season, episode, 0)
+ url = main_url + searchstring
+ getallsubsforurl(url, languageshort, langlong, file_original_path,
subtitles_list, tvshow, season, episode)
+
+def getallsubsforurl(url, languageshort, langlong, file_original_path,
subtitles_list, tvshow, season, episode):
+
+ content = geturl(url)
+
+ for matches in re.finditer(subtitle_pattern1, content, re.IGNORECASE |
re.DOTALL | re.MULTILINE | re.UNICODE):
+ filename = urllib.unquote_plus(matches.group(2))
+ filename = re.sub(r' ', '.', filename)
+ filename = re.sub(r'\s', '.', tvshow) + "." + season + "x" +
episode + filename
+
+ server = filename
+ backup = filename
+ subs = matches.group(4)
+
+ for matches in re.finditer(subtitle_pattern2, subs,
re.IGNORECASE | re.DOTALL | re.MULTILINE | re.UNICODE):
+ #log( __name__ ,"Descargas: %s" % (matches.group(2)))
+
+ idioma = matches.group(2)
+ idioma = re.sub(r'\xc3\xb1', 'n', idioma)
+ idioma = re.sub(r'\xc3\xa0', 'a', idioma)
+ idioma = re.sub(r'\xc3\xa9', 'e', idioma)
+
+ if idioma == "English":
+ languageshort = "en"
+ languagelong = "English"
+ filename = filename + ".(ENGLISH)"
+ server = filename
+ elif idioma == "Catala":
+ languageshort = "ca"
+ languagelong = "Catalan"
+ filename = filename + ".(CATALA)"
+ server = filename
+ elif idioma == "Espanol (Latinoamerica)":
+ languageshort = "es"
+ languagelong = "Spanish"
+ filename = filename + ".(LATINO)"
+ server = filename
+ elif idioma == "Galego":
+ languageshort = "es"
+ languagelong = "Spanish"
+ filename = filename + ".(GALEGO)"
+ server = filename
+ else:
+ languageshort = "es"
+ languagelong = "Spanish"
+ filename = filename + ".(ESPAÃA)"
+ server = filename
+
+ estado = matches.group(4)
+ estado = re.sub(r'\t', '', estado)
+ estado = re.sub(r'\n', '', estado)
+
+ id = matches.group(6)
+ id = id[44:61]
+ id = re.sub(r'"', '', id)
+
+ if estado == "green'>Completado" and languagelong ==
langlong:
+ subtitles_list.append({'rating': "0",
'no_files': 1, 'filename': filename, 'server': server, 'sync': False, 'id' :
id, 'language_flag': 'flags/' + languageshort + '.gif', 'language_name':
languagelong})
+
+ filename = backup
+ server = backup
+
-def getallsubs(searchstring, languageshort, langlong, file_original_path,
subtitles_list, tvshow, season, episode):
-
-
- if len(tvshow) > 0:
- url = main_url + re.sub(r'\s', '-', searchstring)
- else:
- url = main_url + re.sub(r'\s', '-', searchstring)
-
- content = geturl(url)
-
- for matches in re.finditer(subtitle_pattern1, content, re.IGNORECASE |
re.DOTALL | re.MULTILINE | re.UNICODE):
- filename = urllib.unquote_plus(matches.group(2))
- filename = re.sub(r' ', '.', filename)
- filename = re.sub(r'\s', '.', tvshow) + "." + season + "x" +
episode + filename
-
- server = filename
- backup = filename
- subs = matches.group(4)
-
- for matches in re.finditer(subtitle_pattern2, subs,
re.IGNORECASE | re.DOTALL | re.MULTILINE | re.UNICODE):
- #log( __name__ ,"Descargas: %s" % (matches.group(2)))
-
- idioma = matches.group(2)
- idioma = re.sub(r'\xc3\xb1', 'n', idioma)
- idioma = re.sub(r'\xc3\xa0', 'a', idioma)
- idioma = re.sub(r'\xc3\xa9', 'e', idioma)
-
- if idioma == "English":
- languageshort = "en"
- languagelong = "English"
- elif idioma == "Catala":
- languageshort = "ca"
- languagelong = "Catalan"
- elif idioma == "Espanol (Latinoamerica)":
- languageshort = "es"
- languagelong = "Spanish"
- filename = filename + ".LATINO"
- server = filename
- elif idioma == "Galego":
- languageshort = "es"
- languagelong = "Spanish"
- filename = filename + ".GALEGO"
- server = filename
- else:
- languageshort = "es"
- languagelong = "Spanish"
-
- estado = matches.group(4)
- estado = re.sub(r'\t', '', estado)
- estado = re.sub(r'\n', '', estado)
-
- id = matches.group(6)
- id = id[44:61]
- id = re.sub(r'"', '', id)
-
- if estado == "green'>Completado" and languagelong ==
langlong:
- subtitles_list.append({'rating': "0",
'no_files': 1, 'filename': filename, 'server': server, 'sync': False, 'id' :
id, 'language_flag': 'flags/' + languageshort + '.gif', 'language_name':
languagelong})
-
- filename = backup
- server = backup
-
-
def geturl(url):
- class AppURLopener(urllib.FancyURLopener):
- version = "App/1.7"
- def __init__(self, *args):
- urllib.FancyURLopener.__init__(self, *args)
- def add_referrer(self, url=None):
- if url:
- urllib._urlopener.addheader('Referer', url)
-
- urllib._urlopener = AppURLopener()
- urllib._urlopener.add_referrer("http://www.subtitulos.es/")
- try:
- response = urllib._urlopener.open(url)
- content = response.read()
- except:
- #log( __name__ ,"%s Failed to get url:%s" % (debug_pretext,
url))
- content = None
- return content
+ class AppURLopener(urllib.FancyURLopener):
+ version = "App/1.7"
+ def __init__(self, *args):
+ urllib.FancyURLopener.__init__(self, *args)
+ def add_referrer(self, url=None):
+ if url:
+ urllib._urlopener.addheader('Referer', url)
+
+ urllib._urlopener = AppURLopener()
+ urllib._urlopener.add_referrer("http://www.subtitulos.es/")
+ try:
+ response = urllib._urlopener.open(url)
+ content = response.read()
+ except:
+ #log( __name__ ,"%s Failed to get url:%s" % (debug_pretext,
url))
+ content = None
+ return content
+
+def getsearchstring(tvshow, season, episode, level):
+
+ # Clean tv show name
+ if level == 1 and re.search(r'\([^)][a-zA-Z]*\)', tvshow):
+ # Series name like "Shameless (US)" -> "Shameless US"
+ tvshow = tvshow.replace('(', '').replace(')', '')
+
+ if level == 2 and re.search(r'\([^)][0-9]*\)', tvshow):
+ # Series name like "Scandal (2012)" -> "Scandal"
+ tvshow = re.sub(r'\s\([^)]*\)', '', tvshow)
+
+ if level == 3 and re.search(r'\([^)]*\)', tvshow):
+ # Series name like "Shameless (*)" -> "Shameless"
+ tvshow = re.sub(r'\s\([^)]*\)', '', tvshow)
+
+ # Zero pad episode
+ episode = str(episode).rjust(2, '0')
+
+ # Build search string
+ searchstring = tvshow + '/' + season + 'x' + episode
+
+ # Replace spaces with dashes
+ searchstring = re.sub(r'\s', '-', searchstring)
+ #log( __name__ ,"%s Search string = %s" % (debug_pretext, searchstring))
+ return searchstring, tvshow, season, episode
+
+def clean_subtitles_list(subtitles_list):
+ seen = set()
+ subs = []
+ for sub in subtitles_list:
+ filename = sub['filename']
+ #log(__name__, "Filename: %s" % filename)
+ if filename not in seen:
+ subs.append(sub)
+ seen.add(filename)
+ return subs
def search_subtitles( file_original_path, title, tvshow, year, season,
episode, set_temp, rar, lang1, lang2, lang3, stack ): #standard input
subtitles_list = []
msg = ""
-
+
if len(tvshow) == 0:
- msg = "Subtitulos.es is only for TV Shows subtitles!"
- if len(tvshow) > 0:
- searchstring = tvshow + '/' + season + 'x' + episode
- #log( __name__ ,"%s Search string = %s" % (debug_pretext, searchstring))
+ msg = "Subtitulos.es is only for TV Shows subtitles!"
+
+ if lang1 == "Spanish":
+ languagelong = "Spanish"
+ languageshort = "es"
+ getallsubs("es", "Spanish", file_original_path, subtitles_list,
tvshow, season, episode)
+ elif lang1 == "English":
+ languagelong = "English"
+ languageshort = "en"
+ getallsubs("en", "English", file_original_path, subtitles_list,
tvshow, season, episode)
+ elif lang1 == "Catalan":
+ languagelong = "Catalan"
+ languageshort = "ca"
+ getallsubs("ca", "Catalan", file_original_path, subtitles_list,
tvshow, season, episode)
+
+ if lang2 == "Spanish" and lang1 != "Spanish":
+ languagelong = "Spanish"
+ languageshort = "es"
+ getallsubs("es", "Spanish", file_original_path, subtitles_list,
tvshow, season, episode)
+ elif lang2 == "English" and lang1 != "English":
+ languagelong = "English"
+ languageshort = "en"
+ getallsubs("en", "English", file_original_path, subtitles_list,
tvshow, season, episode)
+ elif lang2 == "Catalan" and lang1 != "Catalan":
+ languagelong = "Catalan"
+ languageshort = "ca"
+ getallsubs("ca", "Catalan", file_original_path, subtitles_list,
tvshow, season, episode)
+
+ if lang3 == "Spanish" and lang1 != "Spanish" and lang2 != "Spanish":
+ languagelong = "Spanish"
+ languageshort = "es"
+ getallsubs("es", "Spanish", file_original_path, subtitles_list,
tvshow, season, episode)
+ elif lang3 == "English" and lang1 != "English" and lang2 != "English":
+ languagelong = "English"
+ languageshort = "en"
+ getallsubs("en", "English", file_original_path, subtitles_list,
tvshow, season, episode)
+ elif lang3 == "Catalan" and lang1 != "Catalan" and lang2 != "Catalan":
+ languagelong = "Catalan"
+ languageshort = "ca"
+ getallsubs("ca", "Catalan", file_original_path, subtitles_list,
tvshow, season, episode)
- if lang1 == "Spanish":
- languagelong = "Spanish"
- languageshort = "es"
- getallsubs(searchstring, "es", "Spanish", file_original_path,
subtitles_list, tvshow, season, episode)
- elif lang1 == "English":
- languagelong = "English"
- languageshort = "en"
- getallsubs(searchstring, "en", "English", file_original_path,
subtitles_list, tvshow, season, episode)
- elif lang1 == "Catalan":
- languagelong = "Catalan"
- languageshort = "ca"
- getallsubs(searchstring, "ca", "Catalan", file_original_path,
subtitles_list, tvshow, season, episode)
-
- if lang2 == "Spanish" and lang1 != "Spanish":
- languagelong = "Spanish"
- languageshort = "es"
- getallsubs(searchstring, "es", "Spanish", file_original_path,
subtitles_list, tvshow, season, episode)
- elif lang2 == "English" and lang1 != "English":
- languagelong = "English"
- languageshort = "en"
- getallsubs(searchstring, "en", "English", file_original_path,
subtitles_list, tvshow, season, episode)
- elif lang2 == "Catalan" and lang1 != "Catalan":
- languagelong = "Catalan"
- languageshort = "ca"
- getallsubs(searchstring, "ca", "Catalan", file_original_path,
subtitles_list, tvshow, season, episode)
-
- if lang3 == "Spanish" and lang1 != "Spanish" and lang2 != "Spanish":
- languagelong = "Spanish"
- languageshort = "es"
- getallsubs(searchstring, "es", "Spanish", file_original_path,
subtitles_list, tvshow, season, episode)
- elif lang3 == "English" and lang1 != "English" and lang2 != "English":
- languagelong = "English"
- languageshort = "en"
- getallsubs(searchstring, "en", "English", file_original_path,
subtitles_list, tvshow, season, episode)
- elif lang3 == "Catalan" and lang1 != "Catalan" and lang2 != "Catalan":
- languagelong = "Catalan"
- languageshort = "ca"
- getallsubs(searchstring, "ca", "Catalan", file_original_path,
subtitles_list, tvshow, season, episode)
-
if ((lang1 != "Spanish") and (lang2 != "English") and (lang3 !=
"Catalan")):
msg = "Won't work, subtitulos.es is only for Spanish, English and
Catalan subtitles!"
+ subtitles_list = clean_subtitles_list(subtitles_list)
return subtitles_list, "", msg #standard output
@@ -194,7 +240,7 @@ def download_subtitles (subtitles_list, pos, zip_subs,
tmp_sub_dir, sub_folder,
if packed:
files = os.listdir(tmp_sub_dir)
init_filecount = len(files)
- #log( __name__ ,"%s argenteam: número de init_filecount %s" %
(debug_pretext, init_filecount)) #EGO
+ #log( __name__ ,"%s argenteam: número de init_filecount %s" %
(debug_pretext, init_filecount)) #EGO
filecount = init_filecount
max_mtime = 0
# determine the newest file from tmp_sub_dir
@@ -227,5 +273,4 @@ def download_subtitles (subtitles_list, pos, zip_subs,
tmp_sub_dir, sub_folder,
if (string.split(file, '.')[-1] in ['srt', 'sub', 'txt'])
and (os.stat(os.path.join(tmp_sub_dir, file)).st_mtime > init_max_mtime): #
unpacked file is a newly created subtitle file
log( __name__ ,"%s Unpacked subtitles file '%s'" %
(debug_pretext, file))
subs_file = os.path.join(tmp_sub_dir, file)
- return False, language, subs_file #standard output
-
+ return False, language, subs_file #standard output
\ No newline at end of file
diff --git a/script.xbmc.subtitles/resources/lib/utilities.py
b/script.xbmc.subtitles/resources/lib/utilities.py
index 92e3602..791e3fd 100644
--- a/script.xbmc.subtitles/resources/lib/utilities.py
+++ b/script.xbmc.subtitles/resources/lib/utilities.py
@@ -22,68 +22,68 @@ SERVICE_DIR = os.path.join(__cwd__, "resources", "lib",
"services")
LANGUAGES = (
- # Full Language name[0] podnapisi[1] ISO 639-1[2] ISO 639-1 Code[3]
Script Setting Language[4]
+ # Full Language name[0] podnapisi[1] ISO 639-1[2] ISO 639-1 Code[3]
Script Setting Language[4] localized name id number[5]
- ("Albanian" , "29", "sq", "alb",
"0" ),
- ("Arabic" , "12", "ar", "ara",
"1" ),
- ("Belarusian" , "0" , "hy", "arm",
"2" ),
- ("Bosnian" , "10", "bs", "bos",
"3" ),
- ("Bulgarian" , "33", "bg", "bul",
"4" ),
- ("Catalan" , "53", "ca", "cat",
"5" ),
- ("Chinese" , "17", "zh", "chi",
"6" ),
- ("Croatian" , "38", "hr", "hrv",
"7" ),
- ("Czech" , "7", "cs", "cze",
"8" ),
- ("Danish" , "24", "da", "dan",
"9" ),
- ("Dutch" , "23", "nl", "dut",
"10" ),
- ("English" , "2", "en", "eng",
"11" ),
- ("Estonian" , "20", "et", "est",
"12" ),
- ("Persian" , "52", "fa", "per",
"13" ),
- ("Finnish" , "31", "fi", "fin",
"14" ),
- ("French" , "8", "fr", "fre",
"15" ),
- ("German" , "5", "de", "ger",
"16" ),
- ("Greek" , "16", "el", "ell",
"17" ),
- ("Hebrew" , "22", "he", "heb",
"18" ),
- ("Hindi" , "42", "hi", "hin",
"19" ),
- ("Hungarian" , "15", "hu", "hun",
"20" ),
- ("Icelandic" , "6", "is", "ice",
"21" ),
- ("Indonesian" , "0", "id", "ind",
"22" ),
- ("Italian" , "9", "it", "ita",
"23" ),
- ("Japanese" , "11", "ja", "jpn",
"24" ),
- ("Korean" , "4", "ko", "kor",
"25" ),
- ("Latvian" , "21", "lv", "lav",
"26" ),
- ("Lithuanian" , "0", "lt", "lit",
"27" ),
- ("Macedonian" , "35", "mk", "mac",
"28" ),
- ("Norwegian" , "3", "no", "nor",
"29" ),
- ("Polish" , "26", "pl", "pol",
"30" ),
- ("Portuguese" , "32", "pt", "por",
"31" ),
- ("PortugueseBrazil" , "48", "pb", "pob",
"32" ),
- ("Romanian" , "13", "ro", "rum",
"33" ),
- ("Russian" , "27", "ru", "rus",
"34" ),
- ("Serbian" , "36", "sr", "scc",
"35" ),
- ("Slovak" , "37", "sk", "slo",
"36" ),
- ("Slovenian" , "1", "sl", "slv",
"37" ),
- ("Spanish" , "28", "es", "spa",
"38" ),
- ("Swedish" , "25", "sv", "swe",
"39" ),
- ("Thai" , "0", "th", "tha",
"40" ),
- ("Turkish" , "30", "tr", "tur",
"41" ),
- ("Ukrainian" , "46", "uk", "ukr",
"42" ),
- ("Vietnamese" , "51", "vi", "vie",
"43" ),
- ("BosnianLatin" , "10", "bs", "bos",
"100"),
- ("Farsi" , "52", "fa", "per",
"13" ),
- ("English (US)" , "2", "en", "eng",
"100"),
- ("English (UK)" , "2", "en", "eng",
"100"),
- ("Portuguese (Brazilian)" , "48", "pt-br", "pob",
"100"),
- ("Portuguese (Brazil)" , "48", "pb", "pob",
"32" ),
- ("Portuguese-BR" , "48", "pb", "pob",
"32" ),
- ("Brazilian" , "48", "pb", "pob",
"32" ),
- ("Español (Latinoamérica)" , "28", "es", "spa",
"100"),
- ("Español (España)" , "28", "es", "spa",
"100"),
- ("Spanish (Latin America)" , "28", "es", "spa",
"100"),
- ("Español" , "28", "es", "spa",
"100"),
- ("SerbianLatin" , "36", "sr", "scc",
"100"),
- ("Spanish (Spain)" , "28", "es", "spa",
"100"),
- ("Chinese (Traditional)" , "17", "zh", "chi",
"100"),
- ("Chinese (Simplified)" , "17", "zh", "chi",
"100") )
+ ("Albanian" , "29", "sq", "alb",
"0", 30201 ),
+ ("Arabic" , "12", "ar", "ara",
"1", 30202 ),
+ ("Belarusian" , "0" , "hy", "arm",
"2", 30203 ),
+ ("Bosnian" , "10", "bs", "bos",
"3", 30204 ),
+ ("Bulgarian" , "33", "bg", "bul",
"4", 30205 ),
+ ("Catalan" , "53", "ca", "cat",
"5", 30206 ),
+ ("Chinese" , "17", "zh", "chi",
"6", 30207 ),
+ ("Croatian" , "38", "hr", "hrv",
"7", 30208 ),
+ ("Czech" , "7", "cs", "cze",
"8", 30209 ),
+ ("Danish" , "24", "da", "dan",
"9", 30210 ),
+ ("Dutch" , "23", "nl", "dut",
"10", 30211 ),
+ ("English" , "2", "en", "eng",
"11", 30212 ),
+ ("Estonian" , "20", "et", "est",
"12", 30213 ),
+ ("Persian" , "52", "fa", "per",
"13", 30247 ),
+ ("Finnish" , "31", "fi", "fin",
"14", 30214 ),
+ ("French" , "8", "fr", "fre",
"15", 30215 ),
+ ("German" , "5", "de", "ger",
"16", 30216 ),
+ ("Greek" , "16", "el", "ell",
"17", 30217 ),
+ ("Hebrew" , "22", "he", "heb",
"18", 30218 ),
+ ("Hindi" , "42", "hi", "hin",
"19", 30219 ),
+ ("Hungarian" , "15", "hu", "hun",
"20", 30220 ),
+ ("Icelandic" , "6", "is", "ice",
"21", 30221 ),
+ ("Indonesian" , "0", "id", "ind",
"22", 30222 ),
+ ("Italian" , "9", "it", "ita",
"23", 30224 ),
+ ("Japanese" , "11", "ja", "jpn",
"24", 30225 ),
+ ("Korean" , "4", "ko", "kor",
"25", 30226 ),
+ ("Latvian" , "21", "lv", "lav",
"26", 30227 ),
+ ("Lithuanian" , "0", "lt", "lit",
"27", 30228 ),
+ ("Macedonian" , "35", "mk", "mac",
"28", 30229 ),
+ ("Norwegian" , "3", "no", "nor",
"29", 30230 ),
+ ("Polish" , "26", "pl", "pol",
"30", 30232 ),
+ ("Portuguese" , "32", "pt", "por",
"31", 30233 ),
+ ("PortugueseBrazil" , "48", "pb", "pob",
"32", 30234 ),
+ ("Romanian" , "13", "ro", "rum",
"33", 30235 ),
+ ("Russian" , "27", "ru", "rus",
"34", 30236 ),
+ ("Serbian" , "36", "sr", "scc",
"35", 30237 ),
+ ("Slovak" , "37", "sk", "slo",
"36", 30238 ),
+ ("Slovenian" , "1", "sl", "slv",
"37", 30239 ),
+ ("Spanish" , "28", "es", "spa",
"38", 30240 ),
+ ("Swedish" , "25", "sv", "swe",
"39", 30242 ),
+ ("Thai" , "0", "th", "tha",
"40", 30243 ),
+ ("Turkish" , "30", "tr", "tur",
"41", 30244 ),
+ ("Ukrainian" , "46", "uk", "ukr",
"42", 30245 ),
+ ("Vietnamese" , "51", "vi", "vie",
"43", 30246 ),
+ ("BosnianLatin" , "10", "bs", "bos",
"100", 30204 ),
+ ("Farsi" , "52", "fa", "per",
"13", 30247 ),
+ ("English (US)" , "2", "en", "eng",
"100", 30212 ),
+ ("English (UK)" , "2", "en", "eng",
"100", 30212 ),
+ ("Portuguese (Brazilian)" , "48", "pt-br", "pob",
"100", 30234 ),
+ ("Portuguese (Brazil)" , "48", "pb", "pob",
"32", 30234 ),
+ ("Portuguese-BR" , "48", "pb", "pob",
"32", 30234 ),
+ ("Brazilian" , "48", "pb", "pob",
"32", 30234 ),
+ ("Español (Latinoamérica)" , "28", "es", "spa",
"100", 30240 ),
+ ("Español (España)" , "28", "es", "spa",
"100", 30240 ),
+ ("Spanish (Latin America)" , "28", "es", "spa",
"100", 30240 ),
+ ("Español" , "28", "es", "spa",
"100", 30240 ),
+ ("SerbianLatin" , "36", "sr", "scc",
"100", 30237 ),
+ ("Spanish (Spain)" , "28", "es", "spa",
"100", 30240 ),
+ ("Chinese (Traditional)" , "17", "zh", "chi",
"100", 30207 ),
+ ("Chinese (Simplified)" , "17", "zh", "chi",
"100", 30207 ) )
REGEX_EXPRESSIONS = [ '[Ss]([0-9]+)[][._-]*[Ee]([0-9]+)([^\\\\/]*)$',
-----------------------------------------------------------------------
Summary of changes:
script.xbmc.subtitles/addon.xml | 4 +-
script.xbmc.subtitles/changelog.txt | 8 +
script.xbmc.subtitles/default.py | 2 +-
.../resources/language/French/strings.xml | 184 +++++++------
script.xbmc.subtitles/resources/lib/gui.py | 20 +-
.../resources/lib/services/LegendasTV/service.py | 6 +-
.../resources/lib/services/LegendasZone/service.py | 6 +-
.../resources/lib/services/SubtitulosES/service.py | 299 +++++++++++---------
script.xbmc.subtitles/resources/lib/utilities.py | 122 ++++----
9 files changed, 366 insertions(+), 285 deletions(-)
hooks/post-receive
--
Scripts
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons