The branch, gotham has been updated
       via  c18450ea1080b8ca12c66f3c61feab20efc941e3 (commit)
      from  3fcf16d7783f8f694f41731e8780a036e17f4a7c (commit)

- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/scripts;a=commit;h=c18450ea1080b8ca12c66f3c61feab20efc941e3

commit c18450ea1080b8ca12c66f3c61feab20efc941e3
Author: sphere <sph...@dersphere.de>
Date:   Fri Jul 11 11:03:44 2014 +0200

    [service.subtitles.legendastv] updated to version 2.2.2

diff --git a/service.subtitles.legendastv/addon.xml 
b/service.subtitles.legendastv/addon.xml
index ee160b5..519bd9c 100644
--- a/service.subtitles.legendastv/addon.xml
+++ b/service.subtitles.legendastv/addon.xml
@@ -2,10 +2,10 @@
 <addon
    id="service.subtitles.legendastv"
    name="Legendas.TV"
-   version="2.2.0"
+   version="2.2.2"
    provider-name="gfjardim">
   <requires>
-    <import addon="xbmc.python" version="2.1.0"/>
+    <import addon="xbmc.python" version="2.14.0"/>
   </requires>
   <extension point="xbmc.subtitle.module" library="service.py" />
   <extension point="xbmc.addon.metadata">
diff --git a/service.subtitles.legendastv/changelog.txt 
b/service.subtitles.legendastv/changelog.txt
index f29b5bd..b597f3f 100644
--- a/service.subtitles.legendastv/changelog.txt
+++ b/service.subtitles.legendastv/changelog.txt
@@ -1,5 +1,16 @@
+2.2.2
+- Fix a bug with stream sites not parsing a valid filename (thanks to 
Mafarricos)
+
+2.2.1
+- Fix: Portuguese subtitles not displayed (tnx to Carlos Correia)
+- Implemented: Changing the language predilection at addon preferences (tnx to 
Carlos Correia)
+- Fix: small string fix (tnx to Carlos Correia)
+- Fix: Language sorting
+- Implement manual search 
+- Workaround: Android not parsing filesystem encoding
+
 2.2.0
-- Fix decompressing the downloaded subtitle
+- Fix: decompressing the downloaded subtitle
 
 2.1.2
-- move the service out of XBMC Subtitles
\ No newline at end of file
+- Move the service out of XBMC Subtitles
diff --git 
a/service.subtitles.legendastv/resources/language/English/strings.xml 
b/service.subtitles.legendastv/resources/language/English/strings.xml
index 9ed74f3..b83e2e0 100644
--- a/service.subtitles.legendastv/resources/language/English/strings.xml
+++ b/service.subtitles.legendastv/resources/language/English/strings.xml
@@ -5,4 +5,10 @@
 
 <strings>
     <string id="32001">Choose subtitle for:</string>
+    <string id="32002">Advanced</string>       
+    <string id="32003">Portuguese</string>
+    <string id="32004">Portuguese (Brazilian)</string>
+    <string id="32005">English</string>        
+    <string id="32006">Others</string> 
+    <string id="32007">Subtitles priority on search</string>   
 </strings>
diff --git a/service.subtitles.legendastv/resources/language/Portuguese 
(Brazil)/strings.xml 
b/service.subtitles.legendastv/resources/language/Portuguese 
(Brazil)/strings.xml
index 575022d..0f5c3c3 100644
--- a/service.subtitles.legendastv/resources/language/Portuguese 
(Brazil)/strings.xml   
+++ b/service.subtitles.legendastv/resources/language/Portuguese 
(Brazil)/strings.xml   
@@ -4,5 +4,11 @@
 <!-- Report language file syntax bugs at: http://trac.xbmc.org/ -->
 
 <strings>
-    <string id="32001">Escolha a leganda para:</string>
+    <string id="32001">Escolha a legenda para:</string>
+    <string id="32002">Avançadas</string>     
+    <string id="32003">Português</string>
+    <string id="32004">Português (Brasileiro)</string>
+    <string id="32005">Inglês</string>        
+    <string id="32006">Outras</string> 
+    <string id="32007">Prioridade de Legendas na pesquisa</string>     
 </strings>
diff --git 
a/service.subtitles.legendastv/resources/language/Portuguese/strings.xml 
b/service.subtitles.legendastv/resources/language/Portuguese/strings.xml
index 575022d..7fd2cfa 100644
--- a/service.subtitles.legendastv/resources/language/Portuguese/strings.xml
+++ b/service.subtitles.legendastv/resources/language/Portuguese/strings.xml
@@ -1,8 +1,14 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <!-- Translated using Transifex web application. For support, or if you would 
like to to help out, please visit your language team! -->
-<!-- Portuguese (Brazil) language-Team URL: 
http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/pt_BR/ -->
+<!-- Portuguese language-Team URL: 
http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/pt_PT/ -->
 <!-- Report language file syntax bugs at: http://trac.xbmc.org/ -->
 
 <strings>
-    <string id="32001">Escolha a leganda para:</string>
+    <string id="32001">Escolha a legenda para:</string>
+    <string id="32002">Avançadas</string>     
+    <string id="32003">Português</string>
+    <string id="32004">Português (Brasileiro)</string>
+    <string id="32005">Inglês</string>        
+    <string id="32006">Outras</string> 
+    <string id="32007">Prioridade de Legendas na pesquisa</string>
 </strings>
diff --git a/service.subtitles.legendastv/resources/lib/LegendasTV.py 
b/service.subtitles.legendastv/resources/lib/LegendasTV.py
index b7063f7..73b2a92 100644
--- a/service.subtitles.legendastv/resources/lib/LegendasTV.py
+++ b/service.subtitles.legendastv/resources/lib/LegendasTV.py
@@ -2,7 +2,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. 2.1.2
+# Rev. 2.1.3
 
 def module_exists(module_name):
     try:
@@ -32,7 +32,6 @@ else:
 sub_ext = 'srt aas ssa sub smi'
 global regex_1, regex_2, regex_3
 regex_1 = "<div class=\"f_left\"><p><a href=\"([^\"]*)\">([^<]*)</a></p><p 
class=\"data\">.*?downloads, nota (\d*?),.*?<img .*? title=\"([^\"]*)\" 
/></div>"
-regex_2 = "<button class=\"ajax\" 
data-href=\"/util/carrega_legendas_busca/id_filme:\d*/page:\d*\">(\d*)</button>"
 regex_2 = "class=\"load_more\""
 regex_3 = "<button class=\"icon_arrow\" onclick=\"window.open\(\'([^\']*?)\', 
\'_self\'\)\">DOWNLOAD</button>"
 
@@ -98,15 +97,16 @@ LANGUAGES      = (
     ("Chinese (Simplified)"       , "17",       "zh",            "chi",        
         "100",                   30207  ) )
 
 def languageTranslate(lang, lang_from, lang_to):
-  for x in LANGUAGES:
-    if lang == x[lang_from] :
-      return x[lang_to]
-
-def normalizeString(str):
-  return unicodedata.normalize(
-         'NFKD', unicode(unicode(str, 'utf-8'))
-         ).encode('ascii','ignore')
+    for x in LANGUAGES:
+        if lang == x[lang_from] :
+            return x[lang_to]
 
+def normalizeString(obj):
+    try:
+        return unicodedata.normalize('NFKD', unicode(unicode(obj, 
'utf-8'))).encode('ascii','ignore')
+    except:
+        return unicode(str(obj).encode('string_escape'))
+    
 class LTVThread(Thread):
     def __init__ (self, obj, count, main_id, page):
         Thread.__init__(self)
@@ -126,8 +126,7 @@ class LegendasTV:
         self.cookie = ""
     
     def Log(self, message):
-#        print "####  %s" % message.encode("utf-8")
-        log(__name__, message)
+        print "####  %s" % message.encode("utf-8")
         
     def _urlopen(self, request):
         try:
@@ -291,7 +290,7 @@ class LegendasTV:
         self.Log("Message: Retrieving page [%s] for Movie[%s], Id[%s]." % 
(Page, MainID["title"], MainID["id"]))
         
 #        Response = 
self._urlopen("http://minister.legendas.tv/util/carrega_legendas_busca/page:%s/id_filme:%s";
 % (Page, MainID["id"]))
-        Response = 
self._urlopen("http://legendas.tv/util/carrega_legendas_busca_filme/%s/%s"; % 
(MainID["id"], Page))
+        Response = 
self._urlopen("http://legendas.tv/util/carrega_legendas_busca_filme/%s/-/-/%s"; 
% (MainID["id"], Page))
         if not re.findall(regex_1, Response, re.IGNORECASE | re.DOTALL):
             self.Log("Error: Failed retrieving page [%s] for Movie[%s], 
Id[%s]." % (Page, MainID["title"], MainID["id"]))
         else:
@@ -302,11 +301,11 @@ class LegendasTV:
                 release = normalizeString(content[1])
                 rating =  content[2]
                 lang = normalizeString(content[3])
-                if re.search("Portugu.s-BR", lang):   LanguageId = "pb" 
-                elif re.search("Portugu.s-PT", lang): LanguageId = "pt"
-                elif re.search("Ingl.s", lang):       LanguageId = "en" 
+                if re.search("Portugues-BR", lang):   LanguageId = "pb" 
+                elif re.search("Portugues-PT", lang): LanguageId = "pt"
+                elif re.search("Ingles", lang):       LanguageId = "en" 
                 elif re.search("Espanhol", lang):     LanguageId = "es"
-                elif re.search("Franc.s", lang):      LanguageId = "fr"
+                elif re.search("Frances", lang):      LanguageId = "fr"
                 else: continue
                 for Preference, LangName in self.Languages:
                     if LangName == languageTranslate(LanguageId, 2, 0):
diff --git a/service.subtitles.legendastv/service.py 
b/service.subtitles.legendastv/service.py
index 8d0d585..4a953fa 100644
--- a/service.subtitles.legendastv/service.py
+++ b/service.subtitles.legendastv/service.py
@@ -27,11 +27,11 @@ __resource__   = xbmc.translatePath( os.path.join( __cwd__, 
'resources', 'lib' )
 __temp__       = xbmc.translatePath( os.path.join( __profile__, 'temp') 
).decode("utf-8")
 
 sys.path.append (__resource__)
+__search__ = __addon__.getSetting( 'SEARCH' )
 
 from LTVutilities import log, xbmcOriginalTitle, cleanDirectory, isStacked
 from LegendasTV import *
 
-
 def Search(item):  # standard input
 
     try:
@@ -57,18 +57,11 @@ def Search(item):  # standard input
                                         iconImage=it["rating"],
                                         thumbnailImage=it["language_flag"]
                                         )
-            if it["sync"]:
-                listitem.setProperty( "sync", "true" )
-            else:
-                listitem.setProperty( "sync", "false" )
-            
-            if it.get("hearing_imp", False):
-                listitem.setProperty( "hearing_imp", "true" )
-            else:
-                listitem.setProperty( "hearing_imp", "false" )
-            
+            if it["sync"]: listitem.setProperty( "sync", "true" )
+            else: listitem.setProperty( "sync", "false" )
+            if it.get("hearing_imp", False): listitem.setProperty( 
"hearing_imp", "true" )
+            else: listitem.setProperty( "hearing_imp", "false" )
             url = "plugin://%s/?action=download&download_url=%s&filename=%s" % 
(__scriptid__, it["url"],os.path.basename(item["file_original_path"]))
-            
             
xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=url,listitem=listitem,isFolder=False)
     
 def Download(url, filename, stack=False): #standard input
@@ -76,29 +69,27 @@ def Download(url, filename, stack=False): #standard input
     subtitles = []
     extractPath = os.path.join(__temp__, "Extracted")
     cleanDirectory(__temp__)
-    if not xbmcvfs.exists(extractPath):
-        os.makedirs(extractPath)
+    if not xbmcvfs.exists(extractPath): os.makedirs(extractPath)
     
     # Download the subtitle using its ID.
     Response = urllib2.urlopen(url).read()
 
     downloadID = re.findall(regex_3, Response)[0] if re.search(regex_3, 
Response) else 0
 
-    if not downloadID:
-        return ""
+    if not downloadID: return ""
     Response = urllib2.urlopen(urllib2.Request("http://minister.legendas.tv%s"; 
% downloadID))
     ltv_sub = Response.read()
     
     # Set the path of file concatenating the temp dir, the subtitle ID and a 
zip or rar extension.
     # Write the subtitle in binary mode.
     fname = os.path.join(__temp__,"subtitle")
-    fname += '.rar' if re.search("\x52\x61\x72\x21\x1a\x07\x00", ltv_sub) else 
'.zip'
-    with open(fname,'wb') as f:
-        f.write(ltv_sub)
+#     fname += '.rar' if re.search("\x52\x61\x72\x21\x1a\x07\x00", ltv_sub) 
else '.zip'
+    fname += '.rar' if Response.url.__contains__('.rar') else '.zip'
+    with open(fname,'wb') as f: f.write(ltv_sub)
 
     # brunoga fixed solution for non unicode caracters
     # Ps. Windows allready parses Unicode filenames.
-    fs_encoding = sys.getfilesystemencoding()
+    fs_encoding = sys.getfilesystemencoding() if sys.getfilesystemencoding() 
else "utf-8"
     extractPath = extractPath.encode(fs_encoding)
 
     # Use XBMC.Extract to extract the downloaded file, extract it to the temp 
dir, 
@@ -118,8 +109,7 @@ def Download(url, filename, stack=False): #standard input
                 dirname = re.sub(r"[/\\]{1,10}","-", dirname)
                 dirfile_with_path_name = "(%s)%s" % (dirname, basename) if 
len(dirname) else basename
                 new_dirfile = os.path.join(extractPath, dirfile_with_path_name)
-                with open(new_dirfile, "w") as f:
-                    f.write(temp)
+                with open(new_dirfile, "w") as f: f.write(temp)
                 
                 # Get the file extension
                 ext = os.path.splitext(new_dirfile)[1][1:].lower()
@@ -132,8 +122,7 @@ def Download(url, filename, stack=False): #standard input
                     xbmc.executebuiltin("XBMC.Extract(%s, %s)" % (new_dirfile, 
extractPath))
                     xbmc.sleep(1000)
                     extract_and_copy(1)
-                elif ext not in "idx": 
-                    xbmcvfs.delete(new_dirfile)
+                elif ext not in "idx": xbmcvfs.delete(new_dirfile)
             for dir in dirs:
                 dirfolder = os.path.join(root, dir)
                 xbmcvfs.rmdir(dirfolder)
@@ -161,35 +150,31 @@ def Download(url, filename, stack=False): #standard input
             for x, sub in subtitles:
                 if isStacked(subSelected, sub):
                     outputSub.append(sub)
-    elif len(subtitles) == 1:
-        outputSub.append(subtitles[0][1])
+    elif len(subtitles) == 1: outputSub.append(subtitles[0][1])
     return outputSub
 
 def get_params(string=""):
     param=[]
-    if string == "":
-        paramstring=sys.argv[2]
+    if string == "": paramstring=sys.argv[2]
     else:
         paramstring=string 
     if len(paramstring)>=2:
         params=paramstring
         cleanedparams=params.replace('?','')
-        if (params[len(params)-1]=='/'):
-            params=params[0:len(params)-2]
+        if (params[len(params)-1]=='/'): params=params[0:len(params)-2]
         pairsofparams=cleanedparams.split('&')
         param={}
         for i in range(len(pairsofparams)):
             splitparams={}
             splitparams=pairsofparams[i].split('=')
-            if (len(splitparams))==2:
-                param[splitparams[0]]=splitparams[1]
-                                                                
+            if (len(splitparams))==2: param[splitparams[0]]=splitparams[1]
     return param
 
 params = get_params()
+log( "Version: %s" % __version__)
+log( "Action '%s' called" % params['action'])
 
-if params['action'] == 'search':
-    log( "action 'search' called")
+if params['action'] == 'search' or params['action'] == 'manualsearch':
     item = {}
     item['temp']                = False
     item['rar']                 = False
@@ -201,21 +186,44 @@ if params['action'] == 'search':
     item['file_original_path']  = 
urllib.unquote(xbmc.Player().getPlayingFile().decode('utf-8'))# Full path of a 
playing file
     item['languages']           = [] #['scc','eng']
     
item["languages"].extend(urllib.unquote(params['languages']).decode('utf-8').split(","))
- 
-    if len(item["languages"]) > 1:   
-        for x, lang in enumerate(item["languages"]):
-            if lang == u"Portuguese (Brazil)":
-                item["languages"][0], item["languages"][x] = 
item["languages"][x], item["languages"][0]
-            elif lang == u"Portuguese":
-                item["languages"][1], item["languages"][x] = 
item["languages"][x], item["languages"][1]
-            elif lang == u"English":
-                item["languages"][2], item["languages"][x] = 
item["languages"][x], item["languages"][2]
-    if item['title'] == "":
-        log( "VideoPlayer.OriginalTitle not found")
-        item['title']    = 
normalizeString(xbmc.getInfoLabel("VideoPlayer.Title"))            # no 
original title, get just Title
-        
-    if item['episode'].lower().find("s") > -1:                                 
                                           # Check if season is "Special"
-        item['season'] = "0"                                                   
                                                                 #
+    
+    if not item['title']:
+        # no original title, get just Title
+        log( "VideoPlayer.OriginalTitle not found")        
+        item['title']  = 
normalizeString(xbmc.getInfoLabel("VideoPlayer.Title"))
+
+    if 'searchstring' in params:
+        if item['title']: item['title'] = 
urllib.unquote(params['searchstring'])
+        elif item['tvshow']: item['tvshow'] = 
urllib.unquote(params['searchstring'])
+
+    langtemp = []
+    for lang in item["languages"]:
+        if __search__ == '0':
+            if lang == u"Portuguese (Brazil)": langtemp.append((0, lang))
+            elif lang == u"Portuguese": langtemp.append((1, lang))
+            elif lang == u"English": langtemp.append((2, lang))
+            else: langtemp.append((3, lang))
+        elif __search__ == '1':
+            if lang == u"Portuguese (Brazil)": langtemp.append((1, lang))
+            elif lang == u"Portuguese": langtemp.append((0, lang))
+            elif lang == u"English": langtemp.append((2, lang))
+            else: langtemp.append((3, lang))
+        elif __search__ == '2':            
+            if lang == u"Portuguese (Brazil)": langtemp.append((1, lang))
+            elif lang == u"Portuguese": langtemp.append((2, lang))
+            elif lang == u"English": langtemp.append((0, lang))
+            else: langtemp.append((3, lang))
+        elif __search__ == '3':        
+            if lang == u"Portuguese (Brazil)": langtemp.append((1, lang))
+            elif lang == u"Portuguese": langtemp.append((2, lang))
+            elif lang == u"English": langtemp.append((3, lang))
+            else: langtemp.append((0, lang))
+    langtemp = sorted(langtemp)
+    item["languages"] = []
+    for a, b in langtemp: item["languages"].append(b)
+
+    if item['episode'].lower().find("s") > -1:                                 
               # Check if season is "Special"
+        item['season'] = "0"                                    
         item['episode'] = item['episode'][-1:]
     
     if ( item['file_original_path'].find("http") > -1 ):
@@ -232,11 +240,11 @@ if params['action'] == 'search':
     Search(item)    
 
 elif params['action'] == 'download':
-    subs = Download(params["download_url"],params["filename"])
+    try: subs = Download(params["download_url"],params["filename"])
+    except: subs = Download(params["download_url"],'filename')
     for sub in subs:
         listitem = xbmcgui.ListItem(label2=os.path.basename(sub))
         
xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=sub,listitem=listitem,isFolder=False)
-    
-    
+
 xbmcplugin.endOfDirectory(int(sys.argv[1]))
     

-----------------------------------------------------------------------

Summary of changes:
 service.subtitles.legendastv/LICENSE.txt           |   16 +++
 service.subtitles.legendastv/addon.xml             |    4 +-
 service.subtitles.legendastv/changelog.txt         |   15 +++-
 .../resources/language/English/strings.xml         |    6 +
 .../language/Portuguese (Brazil)/strings.xml       |    8 ++-
 .../resources/language/Portuguese/strings.xml      |   10 ++-
 .../resources/lib/LegendasTV.py                    |   33 +++---
 .../resources/settings.xml                         |    6 +
 service.subtitles.legendastv/service.py            |  114 +++++++++++---------
 9 files changed, 135 insertions(+), 77 deletions(-)
 create mode 100644 service.subtitles.legendastv/LICENSE.txt
 create mode 100644 service.subtitles.legendastv/resources/settings.xml


hooks/post-receive
-- 
Scripts

------------------------------------------------------------------------------
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
_______________________________________________
Xbmc-addons mailing list
Xbmc-addons@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to