The branch, frodo has been updated
via eaac63d26560f5efe1a04cfa7644348b68a76220 (commit)
from 2b92701b50b03025b1ca446bbb3e5615dc9fee7d (commit)
- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/scripts;a=commit;h=eaac63d26560f5efe1a04cfa7644348b68a76220
commit eaac63d26560f5efe1a04cfa7644348b68a76220
Author: amet <[email protected]>
Date: Tue Jun 18 23:30:50 2013 +0400
[script.xbmc.subtitles] -v3.9.9
3.9.9
- Add SerialZone.cz support,Ondrej Bima
- [fix] search on titulky.com,Ondrej Bima
- [fix] onFocus logic, cosmetics. ronie
- [fix] subdivx service, EnricGodes
diff --git a/script.xbmc.subtitles/addon.xml b/script.xbmc.subtitles/addon.xml
index 47e7ca6..e04c381 100644
--- 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.9.8"
+ version="3.9.9"
provider-name="amet, mr_blobby">
<requires>
<import addon="xbmc.python" version="2.1.0"/>
diff --git a/script.xbmc.subtitles/changelog.txt
b/script.xbmc.subtitles/changelog.txt
index 1e6c637..4d720fe 100644
--- a/script.xbmc.subtitles/changelog.txt
+++ b/script.xbmc.subtitles/changelog.txt
@@ -1,3 +1,9 @@
+3.9.9
+- Add SerialZone.cz support,Ondrej Bima
+- [fix] search on titulky.com,Ondrej Bima
+- [fix] onFocus logic, cosmetics. ronie
+- [fix] subdivx service, EnricGodes
+
3.9.8
- [fix] Modified Torec plugin directory structure, Mor Sela
- [fix] Modified how Subscene handles packed files to remove unnecessary 3s
sleep, IcE
diff --git a/script.xbmc.subtitles/resources/lib/gui.py
b/script.xbmc.subtitles/resources/lib/gui.py
index 3706a5c..5de5bab 100644
--- a/script.xbmc.subtitles/resources/lib/gui.py
+++ b/script.xbmc.subtitles/resources/lib/gui.py
@@ -45,6 +45,7 @@ class GUI( xbmcgui.WindowXMLDialog ):
self.rar = False
self.stack = False
self.autoDownload = False
+ self.focused = 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
useMovieFolderForSubs= __addon__.getSetting( "subfolder" ) == "true"
# True for movie folder
@@ -149,7 +150,6 @@ class GUI( xbmcgui.WindowXMLDialog ):
self.service_list = service_list
self.next = list(service_list)
- self.controlId = -1
log( __name__ ,"Addon Version: [%s]" % __version__)
log( __name__ ,"Manual Search : [%s]" % self.mansearch)
@@ -502,17 +502,15 @@ class GUI( xbmcgui.WindowXMLDialog ):
def onFocus( self, controlId ):
if controlId == 150:
- try:
- select_index = self.service_list.index(self.service)
- except IndexError:
- select_index = 0
- self.getControl( SERVICES_LIST ).selectItem(select_index)
- self.controlId = controlId
- try:
- if controlId == 8999:
- self.setFocusId( 150 )
- except:
- pass
+ if not self.focused:
+ try:
+ select_index = self.service_list.index(self.service)
+ except IndexError:
+ select_index = 0
+ self.getControl( SERVICES_LIST ).selectItem(select_index)
+ self.focused = True
+ else:
+ self.focused = False
def onAction( self, action ):
if ( action.getId() in CANCEL_DIALOG):
diff --git a/script.xbmc.subtitles/resources/lib/services/Subdivx/service.py
b/script.xbmc.subtitles/resources/lib/services/Subdivx/service.py
index 7a99d46..aa64e87 100644
--- a/script.xbmc.subtitles/resources/lib/services/Subdivx/service.py
+++ b/script.xbmc.subtitles/resources/lib/services/Subdivx/service.py
@@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
-
# Subdivx.com subtitles, based on a mod of Undertext subtitles
+# Adaptation: [email protected] | Please use email address for your
comments
+
import os, sys, re, xbmc, xbmcgui, string, time, urllib, urllib2
from utilities import log
_ = sys.modules[ "__main__" ].__language__
@@ -15,16 +16,14 @@ debug_pretext = "subdivx"
#Subtitle pattern example:
-"""
-<div id="menu_titulo_buscador"><a class="titulo_menu_izq"
href="http://www.subdivx.com/X6XMjEzMzIyX-iron-man-2-2010.html">Iron Man 2
(2010)</a></div>
-<img src="img/calif5.gif" class="detalle_calif">
-</div><div id="buscador_detalle">
-<div id="buscador_detalle_sub">Para la versión
Iron.Man.2.2010.480p.BRRip.XviD.AC3-EVO, sacados de acá.
¡Disfruten!</div><div id="buscador_detalle_sub_datos"><b>Downloads:</b> 4673
<b>Cds:</b> 1 <b>Comentarios:</b> <a rel="nofollow"
href="popcoment.php?idsub=MjEzMzIy" onclick="return hs.htmlExpand(this, {
objectType: 'iframe' } )">14</a> <b>Formato:</b> SubRip <b>Subido por:</b> <a
class="link1" href="http://www.subdivx.com/X9X303157">TrueSword</a> <img
src="http://www.subdivx.com/pais/2.gif" width="16" height="12"> <b>el</b>
06/09/2010 <a rel="nofollow" target="new"
href="http://www.subdivx.com/bajar.php?id=213322&u=6"><img src="bajar_sub.gif"
border="0"></a></div></div>
-<div id="menu_detalle_buscador">
-"""
+#<div id="menu_titulo_buscador"><a class="titulo_menu_izq"
href="http://www.subdivx.com/X6XMjEzMzIyX-iron-man-2-2010.html">Iron Man 2
(2010)</a></div>
+#<img src="img/calif5.gif" class="detalle_calif">
+#</div><div id="buscador_detalle">
+#<div id="buscador_detalle_sub">Para la versión
Iron.Man.2.2010.480p.BRRip.XviD.AC3-EVO, sacados de acá.
¡Disfruten!</div><div id="buscador_detalle_sub_datos"><b>Downloads:</b> 4673
<b>Cds:</b> 1 <b>Comentarios:</b> <a rel="nofollow"
href="popcoment.php?idsub=MjEzMzIy" onclick="return hs.htmlExpand(this, {
objectType: 'iframe' } )">14</a> <b>Formato:</b> SubRip <b>Subido por:</b> <a
class="link1" href="http://www.subdivx.com/X9X303157">TrueSword</a> <img
src="http://www.subdivx.com/pais/2.gif" width="16" height="12"> <b>el</b>
06/09/2010 </a></div></div>
+#<div id="menu_detalle_buscador">
-subtitle_pattern =
"<div\sid=\"buscador_detalle_sub\">(.+?)</div><div\sid=\"buscador_detalle_sub_datos\"><b>Downloads:</b>(.+?)<b>Cds:</b>(.+?)<b>Comentarios:</b>\s.+?\s<b>Formato:</b>.+?<b>Subido\spor:</b>\s<a\sclass=\"link1\"\shref=.+?</a>\s<.+?>.*?<a\srel=\"nofollow\"\starget=\"new\"\shref=\"http://www.subdivx.com/bajar.php\?id=(.+?)&u=(.+?)\">"
-# group(1) = user comments, may content filename, group(2)= downloads used for
ratings, group(3) = #files, group(4) = id, group(5) = server
+subtitle_pattern =
"<a\sclass=\"titulo_menu_izq\"\shref=\"http://www.subdivx.com/(.+?).html\">.+?<div\sid=\"buscador_detalle_sub\">(.*?)</div>.+?<b>Downloads:</b>(.+?)<b>Cds:</b>.+?</div></div>"
+# group(1) = id to fetch the subs files, group(2) = user comments, may content
filename, group(3)= downloads used for ratings
@@ -42,15 +41,15 @@ def getallsubs(searchstring, languageshort, languagelong,
file_original_path, su
log( __name__ ,u"%s Getting '%s' subs ..." % (debug_pretext,
languageshort))
while re.search(subtitle_pattern, content, re.IGNORECASE | re.DOTALL |
re.MULTILINE | re.UNICODE):
for matches in re.finditer(subtitle_pattern, content, re.IGNORECASE |
re.DOTALL | re.MULTILINE | re.UNICODE):
- id = matches.group(4)
- no_files = matches.group(3)
- server = matches.group(5)
- downloads = int(re.sub(r',','',matches.group(2))) / 1000
+ id = matches.group(1)
+ downloads = int(re.sub(r',','',matches.group(3))) / 1000
if (downloads > 10):
downloads=10
- filename = string.strip(matches.group(1))
+ filename = string.strip(matches.group(2))
#Remove new lines on the commentaries
filename = re.sub('\n',' ',filename)
+ #Remove Google Ads on the commentaries
+ filename = re.sub(r'<script.+?script>','', filename, re.IGNORECASE
| re.DOTALL | re.MULTILINE | re.UNICODE)
#Remove HTML tags on the commentaries
filename = re.sub(r'<[^<]+?>','', filename)
#Find filename on the comentaries to show sync label
@@ -64,10 +63,16 @@ def getallsubs(searchstring, languageshort, languagelong,
file_original_path, su
pass
#Find filename on the commentaries and put it in front
title_first_word = re.split('[\W]+', searchstring)
- version = re.search(title_first_word[0],filename, re.IGNORECASE |
re.DOTALL | re.MULTILINE | re.UNICODE)
- if version != None:
- filename = filename[version.start():] + " " + filename[:
version.start()]
- subtitles_list.append({'rating': str(downloads), 'no_files':
no_files, 'filename': filename, 'sync': sync, 'id' : id, 'server' : server,
'language_flag': 'flags/' + languageshort + '.gif', 'language_name':
languagelong})
+ comments_list = re.split('\s', filename)
+ n = 0
+ version = None
+ while n<len(comments_list) and version == None:
+ version = re.search(title_first_word[0],comments_list[n],
re.IGNORECASE | re.DOTALL | re.MULTILINE | re.UNICODE)
+ n=n+1
+ if version:
+ filename = comments_list[n-1] + " | " + filename
+ #End search filename
+ subtitles_list.append({'rating': str(downloads), 'filename':
filename, 'sync': sync, 'id' : id, 'language_flag': 'flags/' + languageshort +
'.gif', 'language_name': languagelong})
page = page + 1
url = main_url + "index.php?accion=5&masdesc=&oxdown=1&pg=" +
str(page) + "&buscar=" + urllib.quote_plus(searchstring)
content = geturl(url)
@@ -82,8 +87,6 @@ def getallsubs(searchstring, languageshort, languagelong,
file_original_path, su
-
-
def geturl(url):
class MyOpener(urllib.FancyURLopener):
version = ''
@@ -120,20 +123,20 @@ def search_subtitles( file_original_path, title, tvshow,
year, season, episode,
return subtitles_list, "", msg #standard output
+
def download_subtitles (subtitles_list, pos, zip_subs, tmp_sub_dir,
sub_folder, session_id): #standard input
id = subtitles_list[pos][ "id" ]
- server = subtitles_list[pos][ "server" ]
+ url = main_url + str(id) #get the page with the subtitle link, ie
http://www.subdivx.com/X6XMjE2NDM1X-iron-man-2-2010
+ content = geturl(url)
+ match=re.compile('bajar.php\?id=(.*?)&u=(.*?)\"',re.IGNORECASE | re.DOTALL
| re.MULTILINE | re.UNICODE).findall(content)
+
language = subtitles_list[pos][ "language_name" ]
- if string.lower(language) == "spanish":
- url = main_url + "bajar.php?id=" + id + "&u=" + server
- log( __name__ ,u"%s Fetching subtitles using url %s" % (debug_pretext,
url))
+ url = main_url + "bajar.php?id=" + match[0][0] + "&u=" + match[0][1]
content = geturl(url)
if content is not None:
header = content[:4]
if header == 'Rar!':
- log( __name__ ,u"%s subdivx: el contenido es RAR" %
(debug_pretext)) #EGO
local_tmp_file = os.path.join(tmp_sub_dir, "subdivx.rar")
- log( __name__ ,u"%s subdivx: local_tmp_file %s" % (debug_pretext,
local_tmp_file)) #EGO
packed = True
elif header == 'PK':
local_tmp_file = os.path.join(tmp_sub_dir, "subdivx.zip")
@@ -144,7 +147,6 @@ def download_subtitles (subtitles_list, pos, zip_subs,
tmp_sub_dir, sub_folder,
packed = False
log( __name__ ,u"%s Saving subtitles to '%s'" % (debug_pretext,
local_tmp_file))
try:
- log( __name__ ,u"%s subdivx: escribo en %s" % (debug_pretext,
local_tmp_file)) #EGO
local_file_handle = open(local_tmp_file, "wb")
local_file_handle.write(content)
local_file_handle.close()
diff --git a/script.xbmc.subtitles/resources/lib/services/Titulky/service.py
b/script.xbmc.subtitles/resources/lib/services/Titulky/service.py
index 053e221..45d9a45 100644
--- a/script.xbmc.subtitles/resources/lib/services/Titulky/service.py
+++ b/script.xbmc.subtitles/resources/lib/services/Titulky/service.py
@@ -165,10 +165,10 @@ class TitulkyClient(object):
item['sync'] = sync_found.group('data')
item['tvshow'] =
re.search('((.+?)</td>){2}[^>]+>(?P<data>[^<]+)',row.group(1),re.IGNORECASE |
re.DOTALL ).group('data')
item['year'] =
re.search('((.+?)</td>){3}[^>]+>(?P<data>[^<]+)',row.group(1),re.IGNORECASE |
re.DOTALL ).group('data')
- item['downloads'] =
re.search('((.+?)</td>){5}[^>]+>(?P<data>[^<]+)',row.group(1),re.IGNORECASE |
re.DOTALL ).group('data')
- item['lang'] =
re.search('((.+?)</td>){6}[^>]+><img
alt=\"(?P<data>\w{2})\"',row.group(1),re.IGNORECASE | re.DOTALL ).group('data')
- item['numberOfDiscs'] =
re.search('((.+?)</td>){7}[^>]+>(?P<data>[^<]+)',row.group(1),re.IGNORECASE |
re.DOTALL ).group('data')
- item['size'] =
re.search('((.+?)</td>){8}[^>]+>(?P<data>[\d\.]+)',row.group(1),re.IGNORECASE |
re.DOTALL ).group('data')
+ item['downloads'] =
re.search('((.+?)</td>){4}[^>]+>(?P<data>[^<]+)',row.group(1),re.IGNORECASE |
re.DOTALL ).group('data')
+ item['lang'] =
re.search('((.+?)</td>){5}[^>]+><img
alt=\"(?P<data>\w{2})\"',row.group(1),re.IGNORECASE | re.DOTALL ).group('data')
+ item['numberOfDiscs'] =
re.search('((.+?)</td>){6}[^>]+>(?P<data>[^<]+)',row.group(1),re.IGNORECASE |
re.DOTALL ).group('data')
+ item['size'] =
re.search('((.+?)</td>){7}[^>]+>(?P<data>[\d\.]+)',row.group(1),re.IGNORECASE |
re.DOTALL ).group('data')
except:
log(__name__,'Exception when parsing subtitle,
all I got is %s' % str(item))
continue
diff --git a/script.xbmc.subtitles/resources/settings.xml
b/script.xbmc.subtitles/resources/settings.xml
index 8cdb764..e3319f2 100644
--- a/script.xbmc.subtitles/resources/settings.xml
+++ b/script.xbmc.subtitles/resources/settings.xml
@@ -57,6 +57,7 @@
<setting id="RegieLive" type="bool" label="Subtitrari.RegieLive.ro"
default="false"/>
+ <setting id="SerialZone" type="bool" label="SerialZone.cz (Czech and
Slovak subs only)" default="false"/>
<setting id="Shooter" type="bool" label="Shooter.cn (Chinese and English
subs only)" default="false"/>
<setting id="Sratim" type="bool" label="Sratim.co.il" default="false"/>
<setting id="SubClub" type="bool" label="SubClub.eu" default="false"/>
diff --git
a/script.xbmc.subtitles/resources/skins/Default/720p/script-XBMC-Subtitles-main.xml
b/script.xbmc.subtitles/resources/skins/Default/720p/script-XBMC-Subtitles-main.xml
index b4742d0..d3dc1bf 100644
---
a/script.xbmc.subtitles/resources/skins/Default/720p/script-XBMC-Subtitles-main.xml
+++
b/script.xbmc.subtitles/resources/skins/Default/720p/script-XBMC-Subtitles-main.xml
@@ -22,6 +22,7 @@
<font>-</font>
<texturenofocus>-</texturenofocus>
<texturefocus>-</texturefocus>
+ <onfocus>SetFocus(150)</onfocus>
<visible>true</visible>
</control>
<control type="image">
-----------------------------------------------------------------------
Summary of changes:
script.xbmc.subtitles/addon.xml | 2 +-
script.xbmc.subtitles/changelog.txt | 6 +
script.xbmc.subtitles/resources/lib/gui.py | 22 +--
.../resources/lib/services/SerialZone}/__init__.py | 0
.../resources/lib/services/SerialZone/logo.png | Bin 0 -> 4427 bytes
.../resources/lib/services/SerialZone/service.py | 183 ++++++++++++++++++++
.../resources/lib/services/Subdivx/service.py | 58 ++++---
.../resources/lib/services/Titulky/service.py | 8 +-
script.xbmc.subtitles/resources/settings.xml | 1 +
.../Default/720p/script-XBMC-Subtitles-main.xml | 1 +
10 files changed, 236 insertions(+), 45 deletions(-)
copy {script.cu.lrclyrics/resources/lib/culrcscrapers =>
script.xbmc.subtitles/resources/lib/services/SerialZone}/__init__.py (100%)
create mode 100644
script.xbmc.subtitles/resources/lib/services/SerialZone/logo.png
create mode 100644
script.xbmc.subtitles/resources/lib/services/SerialZone/service.py
hooks/post-receive
--
Scripts
------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:
Build for Windows Store.
http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons