The branch, gotham has been updated
       via  76e29174675ccd8cec95aee09d7fc00030b78a7e (commit)
      from  68df26ba45d8458b21648e87e277fd55da38671f (commit)

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

commit 76e29174675ccd8cec95aee09d7fc00030b78a7e
Author: Martijn Kaijser <[email protected]>
Date:   Sun Aug 24 17:38:42 2014 +0200

    [service.subtitles.legendasdivx] 0.1.6

diff --git a/service.subtitles.legendasdivx/addon.xml 
b/service.subtitles.legendasdivx/addon.xml
index d1bbf56..96626b2 100644
--- a/service.subtitles.legendasdivx/addon.xml
+++ b/service.subtitles.legendasdivx/addon.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="service.subtitles.legendasdivx"
        name="LegendasDivx.com"
-       version="0.1.5"
+       version="0.1.6"
        provider-name="HiGhLaNdeR">
   <requires>
     <import addon="xbmc.python" version="2.14.0"/>
diff --git a/service.subtitles.legendasdivx/changelog.txt 
b/service.subtitles.legendasdivx/changelog.txt
index 734d6d5..7b3f4c4 100644
--- a/service.subtitles.legendasdivx/changelog.txt
+++ b/service.subtitles.legendasdivx/changelog.txt
@@ -1,3 +1,5 @@
+0.1.6
+- Reworked subtitle search pattern, faster search results. Found the wierd 
BUG!!! Awesome... :)
 0.1.5
 - Reworked subtitle search pattern, faster search results. Wierd BUG in some 
movies.
 0.1.4
diff --git a/service.subtitles.legendasdivx/service.py 
b/service.subtitles.legendasdivx/service.py
index 6395bd5..d1164c9 100644
--- a/service.subtitles.legendasdivx/service.py
+++ b/service.subtitles.legendasdivx/service.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Service LegendasDivx.com version 0.1.4
+# Service LegendasDivx.com version 0.1.6
 # Code based on Undertext (FRODO) service
 # Coded by HiGhLaNdR@OLDSCHOOL
 # Ported to Gotham by HiGhLaNdR@OLDSCHOOL
@@ -94,9 +94,12 @@ HTTP_USER_AGENT = "User-Agent=Mozilla/5.0 (Windows; U; 
Windows NT 6.1; en-US; rv
 Release: The.Dark.Knight.2008.720p.BluRay.DTS.x264-ESiR</td>
 """
 
-subtitle_pattern = 
"<div\sclass=\"sub_box\">.+?<div\sclass=\"sub_header\">.+?<b>(.+?)</b>\s\((\d\d\d\d)\)\s.+?</div>.+?<table\sclass=\"sub_main\scolor1\"\scellspacing=\"0\">.+?<tr>.+?<th>CDs:</th>.+?<td>(.+?)</td>.+?<a\shref=\"\?name=Downloads&d_op=ratedownload&lid=(.+?)\">.+?<img\sborder.+?<th\sclass=\"color2\">Hits:</th>.+?<td>(.+?)</td>.+?<td>(.+?)</td>.+?<td\scolspan=\"5\"\sclass=\"td_desc\sbrd_up\">((\n|.)*)</td>.+?Mais\sLegendas"
-release_pattern = "([^\W]\w{1,}[\.|\-]{1,1}[^\.|^\ 
][^\Ws][\w{1,}\.|\-|\(\d\d\d\d\)|\[\d\d\d\d\]]{3,}[^\Ws][\w{3,}\-|\.{1,1}]\w{2,})"
-release_pattern1 = "([^\W][\w\ ]{4,}[^\Ws][x264|xvid]{1,}-[\w]{1,})"
+subtitle_pattern = 
"<div\sclass=\"sub_box\">.+?<div\sclass=\"sub_header\">.+?<b>(.+?)</b>\s\((\d\d\d\d)\)\s.+?</div>.+?<table\sclass=\"sub_main\scolor1\"\scellspacing=\"0\">.+?<tr>.+?<th>CDs:</th>.+?<td>(.+?)</td>.+?<a\shref=\"\?name=Downloads&d_op=ratedownload&lid=(.+?)\">.+?<th\sclass=\"color2\">Hits:</th>.+?<td>(.+?)</td>.+?<td>(.+?)</td>.+?<td\scolspan=\"5\"\sclass=\"td_desc\sbrd_up\">(.*?)</td>.+?<td\sclass"
+#release_pattern = "([^\W]\w{1,}[\.|\-]{1,1}[^\.|^\ 
][^\Ws][\w{1,}\.|\-|\(\d\d\d\d\)|\[\d\d\d\d\]]{3,}[^\Ws][\w{3,}\-|\.{1,1}]\w{2,})"
+release_pattern = "([^\W][\w\.]{1,}\w{1,}[\.]{1,1}[^\.|^\ 
|^\.org|^\.com|^\.net][^\Ws|^\.org|^\.com|^\.net][\w{1,}\.|\-|\(\d\d\d\d\)|\[\d\d\d\d\]]{3,}[^\Ws|^\.org|^\.com|^\.net][\w{3,}\-|\.{1,1}]\w{2,})"
+#release_pattern1 = "([^\W][\w\ ]{4,}[^\Ws][x264|xvid]{1,}-[\w]{1,})"
+release_pattern1 = "([^\W][\w\ 
|\]|[]{4,}[^\Ws][x264|xvid|ac3]{1,}-[\w\[\]]{1,})"
+year_pattern = "(19|20)\d{2}$"
 #release_pattern = "([^\W][\w\ |\.|\-]{4,}[^\Ws][x264|xvid]{1,}-[\w]{1,})"
 # group(1) = Name, group(2) = Year, group(3) = Number Files, group(4) = ID, 
group(5) = Hits, group(6) = Requests, group(7) = Description
 #==========
@@ -110,6 +113,18 @@ def _log(module, msg):
 def log(msg):
     if debug == 'true': _log(__name__, msg)
 
+def urlpost(query, lang, page):
+    postdata = urllib.urlencode({'query' : query, 'form_cat' : lang})
+    cj = cookielib.CookieJar()
+    my_opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
+    my_opener.addheaders = [('Referer', 
'http://www.legendasdivx.com/modules.php?name=Downloads&file=jz&d_op=search&op=_jz00&page='+
 str(page))]
+    urllib2.install_opener(my_opener)
+    request = 
urllib2.Request('http://www.legendasdivx.com/modules.php?name=Downloads&file=jz&d_op=search&op=_jz00&page='+
 str(page), postdata)
+    log(u"POST url page: %s" % page)
+    log(u"POST url data: %s" % postdata)
+    response = urllib2.urlopen(request).read()
+    return response
+    
 def geturl(url):
     class MyOpener(urllib.FancyURLopener):
         #version = HTTP_USER_AGENT
@@ -129,15 +144,13 @@ def getallsubs(searchstring, languageshort, languagelong, 
file_original_path, se
     log(u"getallsubs: Search String = '%s'" % searchstring)
     log(u"getallsubs: Search String Not Clean = '%s'" % searchstring_notclean)
     page = 1
-    if languageshort == "pt": url = main_url + 
"modules.php?name=Downloads&file=jz&d_op=search_next&order=&form_cat=28&page=" 
+ str(page) + "&query=" + urllib.quote_plus(searchstring)
-    elif languageshort == "pb": url = main_url + 
"modules.php?name=Downloads&file=jz&d_op=search_next&order=&form_cat=29&page=" 
+ str(page) + "&query=" + urllib.quote_plus(searchstring)
-    elif languageshort == "es": url = main_url + 
"modules.php?name=Downloads&file=jz&d_op=search_next&order=&form_cat=30&page=" 
+ str(page) + "&query=" + urllib.quote_plus(searchstring)
-    elif languageshort == "en": url = main_url + 
"modules.php?name=Downloads&file=jz&d_op=search_next&order=&form_cat=31&page=" 
+ str(page) + "&query=" + urllib.quote_plus(searchstring)
-    else: url = main_url + "index.php"
-    content = geturl(url)
+    if languageshort == "pt": content = urlpost(searchstring, "28", page)
+    elif languageshort == "pb": content = urlpost(searchstring, "29", page)
+    elif languageshort == "es": content = urlpost(searchstring, "30", page)
+    elif languageshort == "en": content = urlpost(searchstring, "31", page)
     log(u"getallsubs: LanguageShort = '%s'" % languageshort)
-    while re.search(subtitle_pattern, content, re.IGNORECASE | re.DOTALL | 
re.MULTILINE | re.UNICODE | re.VERBOSE) and page < 6:
-        for matches in re.finditer(subtitle_pattern, content, re.IGNORECASE | 
re.DOTALL | re.MULTILINE | re.UNICODE | re.VERBOSE):
+    while re.search(subtitle_pattern, content, re.IGNORECASE | re.DOTALL | 
re.MULTILINE) and page < 6:
+        for matches in re.finditer(subtitle_pattern, content, re.IGNORECASE | 
re.DOTALL | re.X):
             hits = matches.group(5)
             id = matches.group(4)
             id = string.split(id, '"')
@@ -208,15 +221,14 @@ def getallsubs(searchstring, languageshort, languagelong, 
file_original_path, se
                             if re.search(filesearch[1][:len(filesearch[1])-4], 
desc, re.IGNORECASE): sync = True
             if __filenameon__ == "false": filename = desc + "  " + "hits: " + 
hits
             else: filename = filename + " " + "(" + movieyear + ")" + "  " + 
"hits: " + hits + " - " + desc
-            subtitles_list.append({'rating': str(downloads), 'no_files': 
no_files, 'filename': filename, 'desc': desc, 'sync': sync, 'hits' : hits, 
'id': id, 'language_short': languageshort, 'language_name': languagelong})
+            subtitles_list.append({'rating': str(downloads), 'filename': 
filename, 'desc': desc, 'sync': sync, 'hits' : hits, 'id': id, 
'language_short': languageshort, 'language_name': languagelong})
+            log(u"getallsubs: SUBS LIST = '%s'" % subtitles_list)
         page = page + 1
         
-        if languageshort == "pt": url = main_url + 
"modules.php?name=Downloads&file=jz&d_op=search_next&order=&form_cat=28&page=" 
+ str(page) + "&query=" + urllib.quote_plus(searchstring)
-        elif languageshort == "pb": url = main_url + 
"modules.php?name=Downloads&file=jz&d_op=search_next&order=&form_cat=29&page=" 
+ str(page) + "&query=" + urllib.quote_plus(searchstring)
-        elif languageshort == "es": url = main_url + 
"modules.php?name=Downloads&file=jz&d_op=search_next&order=&form_cat=30&page=" 
+ str(page) + "&query=" + urllib.quote_plus(searchstring)
-        elif languageshort == "en": url = main_url + 
"modules.php?name=Downloads&file=jz&d_op=search_next&order=&form_cat=31&page=" 
+ str(page) + "&query=" + urllib.quote_plus(searchstring)
-        else: url = main_url + "index.php"
-        content = geturl(url)
+        if languageshort == "pt": content = urlpost(searchstring, "28", page)
+        elif languageshort == "pb": content = urlpost(searchstring, "29", page)
+        elif languageshort == "es": content = urlpost(searchstring, "30", page)
+        elif languageshort == "en": content = urlpost(searchstring, "31", page)
 
 #   Bubble sort, to put syncs on top
     for n in range(0,len(subtitles_list)):
@@ -277,7 +289,8 @@ def Search(item):
         filename = os.path.splitext(os.path.basename(file_original_path))[0]
         log(u"getallsubs: filename string __parentfolder__ is 2 = %s" % 
(filename,))
  
-    filename = xbmc.getCleanMovieTitle(filename)[0]
+    filename = xbmc.getCleanMovieTitle(filename)[0] + " " + 
xbmc.getCleanMovieTitle(filename)[1]
+    log(u"Search: FILENAME = %s" % (filename,))
     searchstring_notclean = 
os.path.splitext(os.path.basename(file_original_path))[0]
     searchstring = ""
     global israr
@@ -288,6 +301,13 @@ def Search(item):
     israr = string.lower(israr[-1])
 
     title = xbmc.getCleanMovieTitle(item['title'])[0]
+#    if item['year'] == '':
+#        log(u"Search: year null? = %s" % (item['year'],))
+#        year = re.search(year_pattern, filename, re.IGNORECASE)
+#        log(u"Search: year pattern = %s" % (year,))
+#        year = year.group(0)
+#        log(u"Search: year group = %s" % (year.group(0),))
+#    else:
     year = item['year']
     tvshow = item['tvshow']
     season = item['season']
@@ -297,14 +317,14 @@ def Search(item):
     subtitles_list = []
     
     if item['mansearch']:
-        searchstring = item['mansearchstr']
+        searchstring = '"' + item['mansearchstr'] + '"'
         log(u"Search: Manual String = %s" % (searchstring,))
     else:
         if tvshow != '':
             searchstring = "%s S%#02dE%#02d" % (tvshow, int(season), 
int(episode))
             log(u"Search: Title TV LIBRARY String = %s" % (searchstring,))
         elif title != '' and tvshow == '':
-            searchstring = title + ' ' + year
+            searchstring = '"' + title + ' ' + year + '"'
             log(u"Search: Title MOVIE LIBRARY String = %s" % (searchstring,))
         else:
             if 'rar' in israr and searchstring is not None:
@@ -342,22 +362,22 @@ def Search(item):
                     # log(u"Search: TITLE is NULL using filename as String = 
%s" % (searchstring,))
                 # else:
                 ########## TODO: EXTRACT THE YEAR FROM THE FILENAME AND ADD IT 
TO THE SEARCH (WILL BE DONE IN THE NEXT DAYS) ###########
-                               if __search__ == '0':
-                                       if 
re.search("(.+?s[0-9][0-9]e[0-9][0-9])", filename, re.IGNORECASE):
-                                               searchstring = 
re.search("(.+?s[0-9][0-9]e[0-9][0-9])", filename, re.IGNORECASE)
-                                               searchstring = 
searchstring.group(0)
-                                               log(u"Search: Filename is TV 
String (search is 0) = %s" % (searchstring,))
-                                       else:
-                                               searchstring = filename
-                                               log(u"Search: Filename is Not 
TV String (search is 0) = %s" % (searchstring,))
-                               else:
-                                       if 
re.search("(.+?s[0-9][0-9]e[0-9][0-9])", title, re.IGNORECASE):
-                                               searchstring = 
re.search("(.+?s[0-9][0-9]e[0-9][0-9])", title, re.IGNORECASE)
-                                               searchstring = 
searchstring.group(0)
-                                               log(u"Search: Title is TV 
String (search is 1) = %s" % (searchstring,))
-                                       else:
-                                               searchstring = title
-                                               log(u"Search: Title is Not TV 
String (search is 1) = %s" % (searchstring,))
+                if __search__ == '0':
+                    if re.search("(.+?s[0-9][0-9]e[0-9][0-9])", filename, 
re.IGNORECASE):
+                        searchstring = 
re.search("(.+?s[0-9][0-9]e[0-9][0-9])", filename, re.IGNORECASE)
+                        searchstring = searchstring.group(0)
+                        log(u"Search: Filename is TV String (search is 0) = 
%s" % (searchstring,))
+                    else:
+                        searchstring = '"' + filename + '"'
+                        log(u"Search: Filename is Not TV String (search is 0) 
= %s" % (searchstring,))
+                else:
+                    if re.search("(.+?s[0-9][0-9]e[0-9][0-9])", title, 
re.IGNORECASE):
+                        searchstring = 
re.search("(.+?s[0-9][0-9]e[0-9][0-9])", title, re.IGNORECASE)
+                        searchstring = searchstring.group(0)
+                        log(u"Search: Title is TV String (search is 1) = %s" % 
(searchstring,))
+                    else:
+                        searchstring = title
+                        log(u"Search: Title is Not TV String (search is 1) = 
%s" % (searchstring,))
 
     PT_ON = __addon__.getSetting( 'PT' )
     PTBR_ON = __addon__.getSetting( 'PTBR' )

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

Summary of changes:
 service.subtitles.legendasdivx/addon.xml     |    2 +-
 service.subtitles.legendasdivx/changelog.txt |    2 +
 service.subtitles.legendasdivx/service.py    |   96 ++++++++++++++++----------
 3 files changed, 61 insertions(+), 39 deletions(-)


hooks/post-receive
-- 
Scripts

------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to