The branch, dharma has been updated
       via  7673df35695d0bd124249881d42cc7367dd1dc49 (commit)
      from  838545c483ab91ff9cbb3c000aacd74251b1b51b (commit)

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

commit 7673df35695d0bd124249881d42cc7367dd1dc49
Author: amet <[email protected]>
Date:   Sat Jul 2 13:23:50 2011 +0400

    [script.xbmc.subtitles] -v2.5.4
    
    - fixed: OpenSubtitles search
    - added: SuperSubtitles service, thx kispaljr and mukka

diff --git a/script.xbmc.subtitles/addon.xml b/script.xbmc.subtitles/addon.xml
index 59131c3..1373a46 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="2.5.3"
+       version="2.5.4"
        provider-name="Amet, mr_blobby">
   <requires>
     <import addon="xbmc.python" version="1.0"/>
diff --git a/script.xbmc.subtitles/changelog.txt 
b/script.xbmc.subtitles/changelog.txt
index 3b681e8..b51a35c 100644
--- a/script.xbmc.subtitles/changelog.txt
+++ b/script.xbmc.subtitles/changelog.txt
@@ -1,3 +1,7 @@
+2.5.4
+- fixed: OpenSubtitles search
+- added: SuperSubtitles service, thx kispaljr and mukka
+
 2.5.3
 - fixed: ordering of OpenSubtitles results, thx to cidus
 - fixed: Undertexter, it will now find Swedish subs
diff --git 
a/script.xbmc.subtitles/resources/lib/services/OpenSubtitles/os_utilities.py 
b/script.xbmc.subtitles/resources/lib/services/OpenSubtitles/os_utilities.py
index af25830..faeb689 100644
--- a/script.xbmc.subtitles/resources/lib/services/OpenSubtitles/os_utilities.py
+++ b/script.xbmc.subtitles/resources/lib/services/OpenSubtitles/os_utilities.py
@@ -1,144 +1,75 @@
 # -*- coding: utf-8 -*- 
 
-import sys
 import os
+import sys
+import xbmc
 import xmlrpclib
 from utilities import *
-import xbmc
-from xml.dom import minidom
-import urllib
 
-_ = sys.modules[ "__main__" ].__language__
+
+_              = sys.modules[ "__main__" ].__language__
+__scriptname__ = sys.modules[ "__main__" ].__scriptname__
 
 BASE_URL_XMLRPC = u"http://api.opensubtitles.org/xml-rpc";
-BASE_URL_HASH = 
u"http://www.opensubtitles.org/en/search/sublanguageid-%s/moviebytesize-%s/moviehash-%s/simplexml";
-BASE_URL_NAME = 
u"http://www.opensubtitles.com/en/search/sublanguageid-%s/moviename-%s/simplexml";
 
 
 class OSDBServer:
 
-###-------------------------- Merge Subtitles All -------------################
-
-
-    def mergesubtitles( self ):
-        self.subtitles_list = []
-        if( len ( self.subtitles_hash_list ) > 0 ):
-            for item in self.subtitles_hash_list:
-                if item["format"].find( "srt" ) == 0 or item["format"].find( 
"sub" ) == 0:
-                    self.subtitles_list.append( item )
-
-
-        if( len ( self.subtitles_list ) > 0 ):
-            self.subtitles_list.sort(key=lambda x: [not 
x['sync'],x['lang_index']])
-
-###-------------------------- Sort Subtitles  -------------################
-
-    def sortsubtitles(self, subtitle, hashed, url_base):
+  def mergesubtitles( self ):
+    self.subtitles_list = []
+    if( len ( self.subtitles_hash_list ) > 0 ):
+      for item in self.subtitles_hash_list:
+        if item["format"].find( "srt" ) == 0 or item["format"].find( "sub" ) 
== 0:
+          self.subtitles_list.append( item )
 
-        filename = movie = lang_name = subtitle_id = lang_id = link = ""
-        flag_image = "-.gif"
-        lang_index=3
-        
-        if subtitle.getElementsByTagName("releasename")[0].firstChild:
-            filename = 
subtitle.getElementsByTagName("releasename")[0].firstChild.data
-        if subtitle.getElementsByTagName("format")[0].firstChild:
-            format = subtitle.getElementsByTagName("format")[0].firstChild.data
-            filename = "%s.%s" % ( filename,format, )
-        if subtitle.getElementsByTagName("movie")[0].firstChild:
-            movie = subtitle.getElementsByTagName("movie")[0].firstChild.data
-        if subtitle.getElementsByTagName("language")[0].firstChild:
-            lang_name = 
subtitle.getElementsByTagName("language")[0].firstChild.data
-        if subtitle.getElementsByTagName("idsubtitle")[0].firstChild:
-            subtitle_id = 
subtitle.getElementsByTagName("idsubtitle")[0].firstChild.data
-        if subtitle.getElementsByTagName("iso639")[0].firstChild:
-            lang_id = 
subtitle.getElementsByTagName("iso639")[0].firstChild.data
-            flag_image = "flags/%s.gif" % (lang_id,)
-            lang_index=0
-            for user_lang_id in self.langs_ids:
-                if user_lang_id == lang_id:
-                    break
-                lang_index+=1   
-        if subtitle.getElementsByTagName("download")[0].firstChild:
-            link = subtitle.getElementsByTagName("download")[0].firstChild.data
-            link = url_base + link
-        if subtitle.getElementsByTagName("subrating")[0].firstChild:
-            rating = 
subtitle.getElementsByTagName("subrating")[0].firstChild.data
-        
-        
self.subtitles_hash_list.append({'lang_index':lang_index,'filename':filename,'link':link,'language_name':lang_name,'language_id':lang_id,'language_flag':flag_image,'movie':movie,"ID":subtitle_id,"rating":str(
 int( rating[0] ) ),"format":format,"sync":hashed})
-        
-        
-    def get_results ( self, search_url ):
-        socket = urllib.urlopen( search_url )
-        log( __name__ , "Search url [ %s ]" % (search_url,))
-        result = socket.read()
-        socket.close()
-        return result                
+    if( len ( self.subtitles_list ) > 0 ):
+      self.subtitles_list.sort(key=lambda x: [not x['sync'],x['lang_index']])
 
-###-------------------------- Opensubtitles Search 
-------------################
-        
+  def searchsubtitles( self, srch_string , lang1,lang2,lang3,hash_search, 
_hash = "000000000", size = "000000000"):
+    msg                      = ""
+    lang_index               = 3
+    searchlist               = []
+    self.subtitles_hash_list = []
+    self.langs_ids           = [toOpenSubtitles_two(lang1), 
toOpenSubtitles_two(lang2), toOpenSubtitles_two(lang3)]
+    
+    language = toOpenSubtitlesId(lang1)
+    if lang1 != lang2:
+      language += "," + toOpenSubtitlesId(lang2)
+    if lang3 != lang1 and lang3 != lang2:
+      language += "," + toOpenSubtitlesId(lang3)
+  
+    self.server = xmlrpclib.Server( BASE_URL_XMLRPC, verbose=0 )
+    login = self.server.LogIn("", "", "en", __scriptname__.replace(" ","_"))
+  
+    self.osdb_token  = login[ "token" ]
+    log( __name__ ,"Token:[%s]" % str(self.osdb_token))
+  
+    try:
+      if ( self.osdb_token ) :
+        if hash_search:
+          searchlist.append({'sublanguageid':language, 'moviehash':_hash, 
'moviebytesize':str( size ) })
+        searchlist.append({'sublanguageid':language, 'query':srch_string })
+        search = self.server.SearchSubtitles( self.osdb_token, searchlist )
+        if search["data"]:
+          for item in search["data"]:
+            if item["ISO639"]:
+              lang_index=0
+              for user_lang_id in self.langs_ids:
+                if user_lang_id == item["ISO639"]:
+                  break
+                lang_index+=1
+              flag_image = "flags/%s.gif" % item["ISO639"]
+            else:                                
+              flag_image = "-.gif"
 
-    def searchsubtitles( self, srch_string , lang1,lang2,lang3,hash_search, 
_hash = "000000000", size = "000000000"):
-        
-        self.subtitles_hash_list = []
-        self.subtitles_list =[]
-        self.langs_ids = [toOpenSubtitles_two(lang1), 
toOpenSubtitles_two(lang2), toOpenSubtitles_two(lang3)]
-        search_url1 = None
-        search_url2 = None
-        msg = ""                
-        
-        language = toOpenSubtitlesId(lang1)
-        if lang1 != lang2:
-            language += "," + toOpenSubtitlesId(lang2)
-            search_url1 = BASE_URL_NAME % 
(toOpenSubtitlesId(lang2),srch_string,)
-        if lang3 != lang1 and lang3 != lang2:
-            language += "," + toOpenSubtitlesId(lang3)
-            search_url2 = BASE_URL_NAME % 
(toOpenSubtitlesId(lang3),srch_string,)          
-        try:
-            if hash_search:
-              search_url = BASE_URL_HASH % (language,size, _hash,)
-              result = self.get_results( search_url )
-              test = True
-              if result.find('<?xml version=') < 0:
-                msg = _( 755 )
-              else:
-                xmldoc = minidom.parseString(result)
-                subtitles_alt = xmldoc.getElementsByTagName("subtitle")
-                if subtitles_alt:
-                    url_base = 
xmldoc.childNodes[0].childNodes[1].firstChild.data
-                    for subtitle in subtitles_alt:
-                       self.sortsubtitles(subtitle, True, url_base)           
+            if str(item["MatchedBy"]) == "moviehash":
+              sync = True
+            else:                                
+              sync = False
 
-            if (not hash_search) or (not self.subtitles_hash_list):        
-              search_url = BASE_URL_NAME % 
(toOpenSubtitlesId(lang1),srch_string,)
-              result = self.get_results( search_url )
-              if result.find('<?xml version=') < 0:
-                  msg = _( 755 )
-              else:
-                  xmldoc = minidom.parseString(result)
-                  subtitles_alt = xmldoc.getElementsByTagName("subtitle")
-                    
-                  if search_url1 != None :
-                      result = self.get_results( search_url1 )
-                      if result.find('<?xml version=') < 0:
-                          msg = _( 755 )
-                      else:
-                          xmldoc = minidom.parseString(result)
-                          subtitles_alt += 
xmldoc.getElementsByTagName("subtitle")
-                    
-                  if search_url2 != None :
-                      result = self.get_results( search_url2 )
-                      if result.find('<?xml version=') < 0:
-                          msg = _( 755 )
-                      else:
-                          xmldoc = minidom.parseString(result)
-                          subtitles_alt += 
xmldoc.getElementsByTagName("subtitle")    
-                    
-            if subtitles_alt:
-                url_base = xmldoc.childNodes[0].childNodes[1].firstChild.data
-                for subtitle in subtitles_alt:
-                   self.sortsubtitles(subtitle, False, url_base)
-                        
-        except:
-            pass
-        
-        self.mergesubtitles()
-        return self.subtitles_list, msg
+            
self.subtitles_hash_list.append({'lang_index':lang_index,'filename':item["SubFileName"],'link':item["ZipDownloadLink"],"language_name":item["LanguageName"],"language_flag":flag_image,"language_id":item["SubLanguageID"],"ID":item["IDSubtitle"],"rating":str(
 int( item["SubRating"][0] ) ),"format":item["SubFormat"],"sync":sync})
+            
+    except:
+      msg = "Error Searching For Subs"
+    
+    self.mergesubtitles()
+    return self.subtitles_list, msg
diff --git a/script.xbmc.subtitles/resources/settings.xml 
b/script.xbmc.subtitles/resources/settings.xml
index df01405..076bfb3 100644
--- a/script.xbmc.subtitles/resources/settings.xml
+++ b/script.xbmc.subtitles/resources/settings.xml
@@ -43,6 +43,7 @@
       <setting id="Subscenter" type="bool" label="Subscenter.org" 
default="false"/>
       <setting id="AsiaTeam" type="bool" label="Asia-Team.net" 
default="false"/>
       <setting id="Sratim" type="bool" label="Sratim.co.il" default="false"/>
+      <setting id="SuperSubtitles" type="bool" label="SuperSubtitles 
(Feliratok.info)" default="false"/>
       <setting id="LegendasZone" type="bool" label="Legendas-Zone.org" 
default="false"/>
       <setting id="LZuser" type="text"  visible= "eq(-1,true)" 
enable="eq(-1,true)" label="30138" default=""/>
       <setting id="LZpass" type="text" option = "hidden" visible= 
"eq(-2,true)" enable="eq(-2,true)" label="30139" default=""/>

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

Summary of changes:
 script.xbmc.subtitles/addon.xml                    |    2 +-
 script.xbmc.subtitles/changelog.txt                |    4 +
 .../lib/services/OpenSubtitles/os_utilities.py     |  189 +++++---------
 .../lib/services/SuperSubtitles}/__init__.py       |    0
 .../resources/lib/services/SuperSubtitles/logo.png |  Bin 0 -> 22540 bytes
 .../lib/services/SuperSubtitles/service.py         |  277 ++++++++++++++++++++
 .../lib/services/SuperSubtitles/subenv.py          |   19 ++
 .../lib/services/SuperSubtitles/subutils.py        |  103 ++++++++
 script.xbmc.subtitles/resources/settings.xml       |    1 +
 9 files changed, 465 insertions(+), 130 deletions(-)
 copy {script.cu.lyrics/resources/lib/scrapers => 
script.xbmc.subtitles/resources/lib/services/SuperSubtitles}/__init__.py (100%)
 create mode 100644 
script.xbmc.subtitles/resources/lib/services/SuperSubtitles/logo.png
 create mode 100644 
script.xbmc.subtitles/resources/lib/services/SuperSubtitles/service.py
 create mode 100644 
script.xbmc.subtitles/resources/lib/services/SuperSubtitles/subenv.py
 create mode 100644 
script.xbmc.subtitles/resources/lib/services/SuperSubtitles/subutils.py


hooks/post-receive
-- 
Scripts

------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security 
threats, fraudulent activity, and more. Splunk takes this data and makes 
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to