The branch, frodo has been updated
       via  7ad4e2a109ae06fdefb8ba39f531b3c18671830f (commit)
      from  98f2a66975fb60ab89e2d3a613817154f304099f (commit)

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

commit 7ad4e2a109ae06fdefb8ba39f531b3c18671830f
Author: Martijn Kaijser <[email protected]>
Date:   Wed Sep 11 09:57:28 2013 +0200

    [script.artwork.downloader] 12.0.9

diff --git a/script.artwork.downloader/addon.xml 
b/script.artwork.downloader/addon.xml
index 320044d..b13773d 100644
--- a/script.artwork.downloader/addon.xml
+++ b/script.artwork.downloader/addon.xml
@@ -2,7 +2,7 @@
 <addon
     id="script.artwork.downloader"
     name="Artwork Downloader"
-    version="12.0.18"
+    version="12.0.19"
     provider-name="Martijn"
     >
   <requires>
diff --git a/script.artwork.downloader/changelog.txt 
b/script.artwork.downloader/changelog.txt
index bcdb03c..42b7fef 100644
--- a/script.artwork.downloader/changelog.txt
+++ b/script.artwork.downloader/changelog.txt
@@ -1,3 +1,10 @@
+[B]12.0.19[/B]
+- Gracefully fail if a non library item is send to the script
+- Fix not downloading extrafanart any more
+- Correct local scraper behaviour
+- Catch edge cases where it can't get data from library
+- Fix skin calling methods
+
 [B]12.0.18[/B]
 - Fixed wrong variable
 
diff --git a/script.artwork.downloader/default.py 
b/script.artwork.downloader/default.py
index 8e08c01..c238b18 100644
--- a/script.artwork.downloader/default.py
+++ b/script.artwork.downloader/default.py
@@ -38,7 +38,7 @@ __version__      = lib.common.__version__
 from lib import language
 from lib import provider
 from lib.apply_filters import filter
-from lib.art_list import artype_list
+from lib.art_list import arttype_list
 from lib.fileops import fileops, cleanup
 from lib.gui import choose_image, dialog_msg, choice_type, gui_imagelist, 
hasimages
 from lib.media_setup import _media_listing as media_listing
@@ -53,7 +53,7 @@ from traceback import print_exc
 from urlparse import urlsplit
 from xml.parsers.expat import ExpatError
 
-artype_list = artype_list()
+arttype_list = arttype_list()
 cancelled = False
 download_arttypes = []
 download_counter = {'Total Artwork': 0}
@@ -168,9 +168,14 @@ class Main:
             if arg[0] in args:
                 j = arg[1]
                 startup.update({arg[0]:arg[1]})
-        if startup['mediatype'] and startup['mediatype'] not in ['tvshow', 
'movie', 'musicvideo']:
+        if startup['mediatype'] and (startup['mediatype'] not in ['tvshow', 
'movie', 'musicvideo']):
             log('Error: invalid mediatype, must be one of movie, tvshow or 
musicvideo', xbmc.LOGERROR)
             return False
+        elif startup['dbid'] == '':
+            dialog_msg('okdialog',
+                       line1 = __localize__(32084))
+            log('Error: no valid dbid recieved, item must be scanned into 
library.', xbmc.LOGERROR)
+            return False
         try:
             # Creates temp folder
             self.fileops = fileops()
@@ -408,11 +413,11 @@ class Main:
         if not startup['mode'] == 'custom':
             global download_arttypes
             download_arttypes = []
-            for art_type in artype_list:
+            for art_type in arttype_list:
                 if art_type['bulk_enabled'] and startup['mediatype'] == 
art_type['media_type']:
                     download_arttypes.append(art_type['art_type'])
         # do the same but for custom mode
-        for art_type in artype_list:
+        for art_type in arttype_list:
             if (art_type['art_type'] in download_arttypes and
                 ((setting['movie_enable'] and startup['mediatype'] == 
art_type['media_type']) or
                 (setting['tvshow_enable'] and startup['mediatype'] == 
art_type['media_type']) or
@@ -686,7 +691,7 @@ class Main:
                    background = setting['background'])
         # Look for argument matching artwork types
         for item in sys.argv:
-            for type in artype_list:
+            for type in arttype_list:
                 if item == type['art_type'] and startup['mediatype'] == 
type['media_type']:
                     log('- Custom %s mode art_type: %s' 
%(type['media_type'],type['art_type']))
                     download_arttypes.append(item)
@@ -702,8 +707,8 @@ class Main:
                 break
             # Add parse the image restraints
             if gui_selected_type:
-                for artype in artype_list:
-                    if gui_selected_type == artype['art_type'] and 
startup['mediatype'] == artype['media_type']:
+                for arttype in arttype_list:
+                    if gui_selected_type == arttype['art_type'] and 
startup['mediatype'] == arttype['media_type']:
                         # Get image list for that specific imagetype
                         imagelist = gui_imagelist(image_list, 
gui_selected_type)
                         # Some debug log output
@@ -715,17 +720,17 @@ class Main:
             enabled_type_list = []
             imagelist = False
             # Fill GUI art type list
-            for artype in artype_list:
-                if (artype['solo_enabled'] == 'true' and
-                    startup['mediatype'] == artype['media_type'] and
-                    hasimages(image_list, artype['art_type'])):
-                    gui = __localize__(artype['gui_string'])
+            for arttype in arttype_list:
+                if (arttype['solo_enabled'] == 'true' and
+                    startup['mediatype'] == arttype['media_type'] and
+                    hasimages(image_list, arttype['art_type'])):
+                    gui = __localize__(arttype['gui_string'])
                     enabled_type_list.append(gui)
             # Not sure what this does again
             if len(enabled_type_list) == 1:
                 enabled_type_list[0] = 'True'
             # Fills imagelist with image that fit the selected imagetype
-            type_list = choice_type(enabled_type_list, startup, artype_list)
+            type_list = choice_type(enabled_type_list, startup, arttype_list)
             if (len(enabled_type_list) == 1) or type_list:
                 imagelist = gui_imagelist(image_list, type_list['art_type'])
                 # Some debug log output
@@ -740,8 +745,11 @@ class Main:
                 # Create a progress dialog so you can see the progress,
                 #Send the selected image for processing, Initiate the batch 
download
                 dialog_msg('create')
-                self._download_art(currentmedia, type_list, 
currentmedia['artworkdir'])
-                self._batch_download(download_list)
+                for art_type in arttype_list:
+                    if image_list['art_type'][0] == art_type['art_type']:
+                        self._download_art(currentmedia, art_type, 
currentmedia['artworkdir'])
+                        self._batch_download(download_list)
+                        break
                 # When not succesfull show failure dialog
                 if not download_succes:
                     dialog_msg('okdialog',
@@ -752,7 +760,7 @@ class Main:
             log('- No artwork found')
             dialog_msg('okdialog',
                        line1 = currentmedia['name'],
-                       line2 = __localize__(artype['gui_string']) + ' ' + 
__localize__(32022))
+                       line2 = __localize__(arttype['gui_string']) + ' ' + 
__localize__(32022))
         # When download succesfull
         elif download_succes:
             log('- Download succesfull')
@@ -767,7 +775,7 @@ class Main:
         global startup
         # Look for argument matching artwork types
         for item in sys.argv:
-            for type in artype_list:
+            for type in arttype_list:
                 if item == type['art_type'] and startup['mediatype'] == 
type['media_type']:
                     log('- Custom %s mode art_type: %s' 
%(type['media_type'],type['art_type']))
                     download_arttypes.append(item)
@@ -791,7 +799,7 @@ class Main:
                 if image_list:
                     log('- Chosen: %s'% image_list)
                     dialog_msg('create')
-                    for item in artype_list:
+                    for item in arttype_list:
                         if gui_arttype == item['art_type']:
                             self._download_art(currentmedia,
                                                item,
diff --git a/script.artwork.downloader/lib/apply_filters.py 
b/script.artwork.downloader/lib/apply_filters.py
index 502b2e0..66d8ad0 100644
--- a/script.artwork.downloader/lib/apply_filters.py
+++ b/script.artwork.downloader/lib/apply_filters.py
@@ -119,10 +119,6 @@ def extrafanart(data):
     elif limit.get('limit_artwork') and 'series_name' in data.get('artwork') 
and limit.get('limit_notext') and data.get('artwork')['series_name']:
         reason = 'Has text'
         limited = True
-    # Correct language
-    elif limit.get('limit_artwork') and not data.get('artwork')['language'] in 
[data.get('language'), 'n/a']:
-        reason = "Doesn't match preferred language: %s" % 
limit.get('limit_preferred_language')
-        limited = True
     return [limited, reason]
 
 def extrathumbs(data):
diff --git a/script.artwork.downloader/lib/art_list.py 
b/script.artwork.downloader/lib/art_list.py
index 1ab7fac..cb8b752 100644
--- a/script.artwork.downloader/lib/art_list.py
+++ b/script.artwork.downloader/lib/art_list.py
@@ -21,7 +21,7 @@
 from lib.settings import get
 
 ### Create list for Artwork types to download
-def artype_list():
+def arttype_list():
     setting = get()
     available_arttypes = [{'media_type': 'movie',
                            'bulk_enabled': setting.get('movie_poster'),
diff --git a/script.artwork.downloader/lib/media_setup.py 
b/script.artwork.downloader/lib/media_setup.py
index 8fa2254..22cbef5 100644
--- a/script.artwork.downloader/lib/media_setup.py
+++ b/script.artwork.downloader/lib/media_setup.py
@@ -41,7 +41,7 @@ def _media_unique(media_type, dbid):
         json_query = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": 
"VideoLibrary.GetTVShowDetails", "params": {"properties": ["file", 
"imdbnumber", "art"], "tvshowid":%s}, "id": 1}' %dbid)
         json_query = unicode(json_query, 'utf-8', errors='ignore')
         jsonobject = simplejson.loads(json_query)
-        if jsonobject['result'].has_key('tvshowdetails'):
+        if jsonobject.has_key('result') and 
jsonobject['result'].has_key('tvshowdetails'):
             item = jsonobject['result']['tvshowdetails']
             # Search for season information
             json_query_season = xbmc.executeJSONRPC('{"jsonrpc": "2.0", 
"method": "VideoLibrary.GetSeasons", "params": {"properties": ["season", 
"art"], "sort": { "method": "label" }, "tvshowid":%s }, "id": 1}' 
%item.get('tvshowid',''))
@@ -70,7 +70,7 @@ def _media_unique(media_type, dbid):
         json_query = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": 
"VideoLibrary.GetMovieDetails", "params": {"properties": ["file", "imdbnumber", 
"year", "trailer", "streamdetails", "art"], "movieid":%s }, "id": 1}' %dbid)
         json_query = unicode(json_query, 'utf-8', errors='ignore')
         jsonobject = simplejson.loads(json_query)
-        if jsonobject['result'].has_key('moviedetails'):
+        if jsonobject.has_key('result') and 
jsonobject['result'].has_key('moviedetails'):
             item = jsonobject['result']['moviedetails']
             disctype = 
media_disctype(item.get('file','').encode('utf-8').lower(),
                                       item['streamdetails']['video'])
@@ -90,7 +90,7 @@ def _media_unique(media_type, dbid):
         json_query = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": 
"VideoLibrary.GetMusicVideoDetails", "params": {"properties": ["file", 
"artist", "album", "track", "runtime", "year", "genre", "art"], "movieid":%s }, 
"id": 1}' %dbid)
         json_query = unicode(json_query, 'utf-8', errors='ignore')
         jsonobject = simplejson.loads(json_query)
-        if jsonobject['result'].has_key('musicvideodetails'):
+        if jsonobject.has_key('result') and 
jsonobject['result'].has_key('musicvideodetails'):
             item = jsonobject['result']['musicvideodetails']
             Medialist.append({'dbid': item.get('musicvideoid',''),
                               'id': '',
@@ -114,7 +114,7 @@ def _media_listing(media_type):
         json_query = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": 
"VideoLibrary.GetTVShows", "params": {"properties": ["file", "imdbnumber", 
"art"], "sort": { "method": "label" } }, "id": 1}')
         json_query = unicode(json_query, 'utf-8', errors='ignore')
         jsonobject = simplejson.loads(json_query)
-        if jsonobject['result'].has_key('tvshows'):
+        if jsonobject.has_key('result') and 
jsonobject['result'].has_key('tvshows'):
             for item in jsonobject['result']['tvshows']:
                 # Search for season information
                 json_query_season = xbmc.executeJSONRPC('{"jsonrpc": "2.0", 
"method": "VideoLibrary.GetSeasons", "params": {"properties": ["season", 
"art"], "sort": { "method": "label" }, "tvshowid":%s }, "id": 1}' 
%item.get('tvshowid',''))
@@ -143,7 +143,7 @@ def _media_listing(media_type):
         json_query = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": 
"VideoLibrary.GetMovies", "params": {"properties": ["file", "imdbnumber", 
"year", "trailer", "streamdetails", "art"], "sort": { "method": "label" } }, 
"id": 1}')
         json_query = unicode(json_query, 'utf-8', errors='ignore')
         jsonobject = simplejson.loads(json_query)
-        if jsonobject['result'].has_key('movies'):
+        if jsonobject.has_key('result') and 
jsonobject['result'].has_key('movies'):
             for item in jsonobject['result']['movies']:
                 disctype = 
media_disctype(item.get('file','').encode('utf-8').lower(),
                                           item['streamdetails']['video'])
@@ -162,7 +162,7 @@ def _media_listing(media_type):
         json_query = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": 
"VideoLibrary.GetMusicVideos", "params": {"properties": ["file", "artist", 
"album", "track", "runtime", "year", "genre", "art"], "sort": { "method": 
"album" } }, "id": 1}')
         json_query = unicode(json_query, 'utf-8', errors='ignore')
         jsonobject = simplejson.loads(json_query)
-        if jsonobject['result'].has_key('musicvideos'):
+        if jsonobject.has_key('result') and 
jsonobject['result'].has_key('musicvideos'):
             for item in jsonobject['result']['musicvideos']:
                 Medialist.append({'dbid': item.get('musicvideoid',''),
                                   'id': '',
diff --git a/script.artwork.downloader/lib/provider/local.py 
b/script.artwork.downloader/lib/provider/local.py
index e1d0f51..b234371 100644
--- a/script.artwork.downloader/lib/provider/local.py
+++ b/script.artwork.downloader/lib/provider/local.py
@@ -25,7 +25,7 @@ import xbmcvfs
 
 ### import libraries
 #from resources.lib.provider.base import BaseProvider
-from lib.art_list import artype_list
+from lib.art_list import arttype_list
 from lib.script_exceptions import NoFanartError
 from lib.settings import get_limit
 from lib.utils import *
@@ -33,7 +33,7 @@ from operator import itemgetter
 
 ### get addon info
 __localize__    = ( sys.modules[ "__main__" ].__localize__ )
-artype_list = artype_list()
+arttype_list = arttype_list()
 limit = get_limit()
 
 class local():
@@ -41,32 +41,30 @@ class local():
         image_list = []
         file_list = xbmcvfs.listdir(media_item['artworkdir'][0])
         ### Processes the bulk mode downloading of files
-        i = 0
-        j = 0
-        for item in artype_list:
+        i = 0 # needed
+        j = 0 # have
+        for item in arttype_list:
             if item['bulk_enabled'] and media_item['mediatype'] == 
item['media_type']:
-                #log('finding: %s, arttype counter: %s'%(item['art_type'], j))
-                j += 1
+                #log('finding: %s, arttype counter: %s'%(item['art_type'], i))
+                i += 1
                 # File checking
                 if item['art_type'] == 'extrafanart':
-                    i += 1
                     extrafanart_file_list = ''
-                    if xbmcvfs.exists(media_item['extrafanartdirs'][0]):
+                    if 'extrafanart' in file_list[0]:
                         extrafanart_file_list = 
xbmcvfs.listdir(media_item['extrafanartdirs'][0])
-                        #log('list of extrafanart files: %s'%file_list)
-                    #log('extrafanart found: %s'%len(file_list))
-                    if len(extrafanart_file_list) <= 
limit.get('limit_extrafanart_max'):
-                        i += 1
+                        #log('list of extrafanart files: 
%s'%extrafanart_file_list[1])
+                        #log('extrafanart found: 
%s'%len(extrafanart_file_list[1]))
+                        if len(extrafanart_file_list[1]) >= 
limit.get('limit_extrafanart_max'):
+                            j += 1
 
                 elif item['art_type'] == 'extrathumbs':
-                    i += 1
                     extrathumbs_file_list = ''
-                    if xbmcvfs.exists(media_item['extrathumbsdirs'][0]):
+                    if 'extrathumbs' in file_list[0]:
                         extrathumbs_file_list = 
xbmcvfs.listdir(media_item['extrathumbsdirs'][0])
-                        #log('list of extrathumbs files: %s'%file_list)
-                    #log('extrathumbs found: %s'%len(file_list))
-                    if len(extrathumbs_file_list) <= 
limit.get('limit_extrathumbs_max'):
-                        i += 1
+                        #log('list of extrathumbs files: 
%s'%extrathumbs_file_list[1])
+                        #log('extrathumbs found: 
%s'%len(extrathumbs_file_list[1]))
+                        if len(extrathumbs_file_list[1]) >= 
limit.get('limit_extrathumbs_max'):
+                            j += 1
 
                 elif item['art_type'] in ['seasonposter']:
                     for season in media_item['seasons']:
@@ -76,9 +74,9 @@ class local():
                             filename = "season-all-poster.jpg"
                         else:
                             filename = (item['filename'] % int(season))
-                        if filename in file_list:
+                        if filename in file_list[1]:
                             url = os.path.join(media_item['artworkdir'][0], 
filename).encode('utf-8')
-                            i += 1
+                            j += 1
                             generalinfo = '%s: %s  |  ' %( 
__localize__(32141), 'n/a')
                             generalinfo += '%s: %s  |  ' %( 
__localize__(32144), season)
                             generalinfo += '%s: %s  |  ' %( 
__localize__(32143), 'n/a')
@@ -107,7 +105,7 @@ class local():
                             filename = (item['filename'] % int(season))
                         if filename in file_list:
                             url = os.path.join(media_item['artworkdir'][0], 
filename).encode('utf-8')
-                            i += 1
+                            j += 1
                             generalinfo = '%s: %s  |  ' %( 
__localize__(32141), 'n/a')
                             generalinfo += '%s: %s  |  ' %( 
__localize__(32144), season)
                             generalinfo += '%s: %s  |  ' %( 
__localize__(32143), 'n/a')
@@ -134,13 +132,13 @@ class local():
                             filename = (item['filename'] % int(season))
                         if filename in file_list:
                             url = os.path.join(media_item['artworkdir'][0], 
filename).encode('utf-8')
-                            i += 1
+                            j += 1
                             generalinfo = '%s: %s  |  ' %( 
__localize__(32141), 'n/a')
                             generalinfo += '%s: %s  |  ' %( 
__localize__(32144), season)
                             generalinfo += '%s: %s  |  ' %( 
__localize__(32143), 'n/a')
                             generalinfo += '%s: %s  |  ' %( 
__localize__(32145), 'n/a')
                             # Fill list
-                            log ('found: %s'%url)
+                            #log ('found: %s'%url)
                             image_list.append({'url': url,
                                                'preview': url,
                                                'id': filename,
@@ -157,7 +155,7 @@ class local():
                     filename = item['filename']
                     if filename in file_list:
                         url = os.path.join(media_item['artworkdir'][0], 
filename).encode('utf-8')
-                        i += 1
+                        j += 1
                         generalinfo = '%s: %s  |  ' %( __localize__(32141), 
'n/a')
                         generalinfo += '%s: %s  |  ' %( __localize__(32143), 
'n/a')
                         generalinfo += '%s: %s  |  ' %( __localize__(32145), 
'n/a')
@@ -172,9 +170,9 @@ class local():
                                            'language': 'EN',
                                            'votes': '0',
                                            'generalinfo': generalinfo})
-        log('total local files needed: %s'%j)
-        log('total local files found:  %s'%i)
-        if j > i:
+        #log('total local types needed: %s'%i)
+        #log('total local types found:  %s'%j)
+        if j < i:
             #log('scan providers for more')
             scan_more = True
         else:
diff --git a/script.artwork.downloader/resources/language/English/strings.po 
b/script.artwork.downloader/resources/language/English/strings.po
index 7a951f1..dacae98 100644
--- a/script.artwork.downloader/resources/language/English/strings.po
+++ b/script.artwork.downloader/resources/language/English/strings.po
@@ -247,7 +247,11 @@ msgctxt "#32083"
 msgid "-"
 msgstr ""
 
-#empty strings from id 32084 to 32090
+msgctxt "#32084"
+msgid "No valid library item selected"
+msgstr ""
+
+#empty strings from id 32085 to 32090
 #Add-on settings: Music section id=32091 to 32100
 
 msgctxt "#32091"

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

Summary of changes:
 script.artwork.downloader/addon.xml                |    2 +-
 script.artwork.downloader/changelog.txt            |    7 +++
 script.artwork.downloader/default.py               |   46 ++++++++++-------
 script.artwork.downloader/lib/apply_filters.py     |    4 --
 script.artwork.downloader/lib/art_list.py          |    2 +-
 script.artwork.downloader/lib/media_setup.py       |   12 ++--
 script.artwork.downloader/lib/provider/local.py    |   54 +++++++++----------
 .../resources/language/English/strings.po          |    6 ++-
 8 files changed, 73 insertions(+), 60 deletions(-)


hooks/post-receive
-- 
Scripts

------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. Consolidate legacy IT systems to a single system of record for IT
2. Standardize and globalize service processes across IT
3. Implement zero-touch automation to replace manual, redundant tasks
http://pubads.g.doubleclick.net/gampad/clk?id=51271111&iu=/4140/ostg.clktrk
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to