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