The branch, eden-pre has been updated
       via  b78542eec4253b3e9f6db7a9386253bed0b28a6c (commit)
      from  966b60f968243ca4ae356bacd7fde0037e77d131 (commit)

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

commit b78542eec4253b3e9f6db7a9386253bed0b28a6c
Author: amet <[email protected]>
Date:   Thu Nov 3 22:30:56 2011 +0400

    [script.extrafanartdownloader] -v0.4.1
    
    - Added: Extrathumbs support for Movies
    - Fixed: New TMDB image locations on site
             Advisable is to delete all existing movie extrafanart folders

diff --git a/script.extrafanartdownloader/README 
b/script.extrafanartdownloader/README
index 3eed296..8dfe5e4 100644
--- a/script.extrafanartdownloader/README
+++ b/script.extrafanartdownloader/README
@@ -8,11 +8,12 @@ The script also supports a 'solo mode' which allows it to be 
run from inside a s
 Eden 11.0:
     The script can now be downloaded from the official repo XBMC-repo 
(pre-Eden)
     This script requires an xbmc nightly build of September 21st or later
-    Current stable version : 0.4.0
+    Current stable version : 0.4.1
 
 Current Features:
-    - TV Extrafanart
-    - Movie Extrafanart
+    - TV ExtraFanart
+    - Movie ExtraFanart
+    - Movie ExtraThumbs
     - Skin integration: Bulk mode (download all extrafanart for every tv 
show/movie)
     - Skin integration: Solo mode (download all extrafanart for only one tv 
show/movie)
     - Limit fanart by: maximum amount/ minimum rating / language used
@@ -27,6 +28,7 @@ Skins using this Add-On:
     - Aeon Nox (made by Big Noid)
     - Cirrus Extended (made by Butchabay)
     - Transparency [T!] (made by Ronie)
+    - Aeon MQ3 (made my MarcosQui)
 
 
----------------------------------------------------------------------------------------------
 To run the script in bulk mode simply click on it in the 'Addons' or 
'Programs' menu in XBMC.
@@ -37,9 +39,6 @@ This script has some different run modes. Please check the 
files as described be
 Code for skin intergration:
 Check "resources/docs/runscript.txt"
 
-Real world code example Dharma10.1 (available in Dharma version):
-Check "resources/docs/dharma.xml"
-
 Real world code example Eden 11.0 (available in Eden version):
 Check "resources/docs/pre-eden.xml"
 
diff --git a/script.extrafanartdownloader/addon.xml 
b/script.extrafanartdownloader/addon.xml
index 177eef5..fa9c231 100644
--- a/script.extrafanartdownloader/addon.xml
+++ b/script.extrafanartdownloader/addon.xml
@@ -2,7 +2,7 @@
 <addon

        id="script.extrafanartdownloader"

        name="Extrafanart Downloader"

-       version="0.4.0"

+       version="0.4.1"

        provider-name="paddycarey, putneyj, Machine-Sanctum"

     branch="Eden">

   <requires>

@@ -13,22 +13,14 @@
     <provides>executable</provides>

   </extension>

   <extension point="xbmc.addon.metadata">

-    <summary lang="en">Download extrafanart for all TV shows and 
Movies</summary>

-       <summary lang="nl">Download extrafanart voor alle TV series en 
Films</summary>

+    <summary lang="en">Downloads Artwork for TV shows and Movies in your 
library</summary>

     <description lang="en">

-       Download extrafanart for all TV shows and Movies in your library.[CR]

-       For this to work your skins needs to support the extrafanart.[CR]

-       Remark:[CR]Each TV Show / Movie must have its own folder where an 
'extrafanart' subfolder will be created.[CR]

-       Extrafanart sources:[CR]TV Shows (thetvdb.com)[CR]Movies 
(themoviedb.org)[CR]

+       Downloads Extrafanart, Extrathumbs for TV shows and Movies in your 
library.[CR]

+    For this to work your skins needs to support these features.[CR]

+       Remark:[CR]Each TV Show / Movie must have its own folder where an 
'extrafanart' or 'extrathumbs' subfolder will be created.[CR]

+       Artwork sources:[CR]TV Shows (thetvdb.com)[CR]Movies 
(themoviedb.org)[CR]

        Skin integration:[CR]See readme file

        </description>

-       <description lang="nl">

-       Download extrafanart voor alle TV series en Films in jou 
bibliotheek.[CR]

-       Dit werkt enkel als de skin extrafanart ondersteund.[CR]

-       Opmerking:[CR]Elke TV Serie / Film moet zijn eigen folder hebben waar 
een 'extrafanart' folder zal worden aangemaakt.[CR]

-       Extrafanart bronnen:[CR]TV Series (thetvdb.com)[CR]Films 
(themoviedb.org)[CR]

-       Skin integratie:[CR]Zie readme bestand

-       </description>

     <platform>all</platform>

   </extension>

 </addon>

diff --git a/script.extrafanartdownloader/changelog.txt 
b/script.extrafanartdownloader/changelog.txt
index be1ff83..7d7d23f 100644
--- a/script.extrafanartdownloader/changelog.txt
+++ b/script.extrafanartdownloader/changelog.txt
@@ -1,19 +1,24 @@
+[B]0.4.1[/B]
+- Added: Extrathumbs support for Movies
+- Fixed: New TMDB image locations on site
+         Advisable is to delete all existing movie extrafanart folders
+
 [B]0.4.0[/B]
-- Added silent downloading in background
-- Added Extrafanart limiter (maximum fanart/language/no text) 
-- Added download backup folder for fanart
-- More extensive error checking
-- More extensive debug logging
-- Updated skin integration examples
-- Open Settings on first run
+- Added: silent downloading in background
+- Added: Extrafanart limiter (maximum fanart/language/no text) 
+- Added: Download backup folder for fanart
+- Added: More extensive error checking
+- Added: More extensive debug logging
+- Added: Open Settings on first run
+- Updated: Skin integration examples
 
 [B]0.3.8[/B]
-- Added option to centralize fanart storage
+- Added: option to centralize fanart storage
 - Splitting code into libraries
 
 [B]0.3.7[/B]
-- Added skin integration options (see readme file)
+- Added: Skin integration options (see readme file)
 
 [B]0.3.6[/B]
 - Initial commit
-- Added to official XBMC-repo
+- Initial version for official XBMC-repo
diff --git a/script.extrafanartdownloader/default.py 
b/script.extrafanartdownloader/default.py
index b6eeb63..f1dd62b 100644
--- a/script.extrafanartdownloader/default.py
+++ b/script.extrafanartdownloader/default.py
@@ -29,36 +29,162 @@ from xml.parsers.expat import ExpatError
 Media_listing = media_setup.media_listing
 __language__ = language.get_abbrev()
 
+### clean up and
+def cleanup(self):
+    if self.fileops._exists(self.fileops.tempdir):
+        dialog('update', percentage = 100, line1 = __localize__(36004), 
background = self.background)
+        log('Cleaning up temp files')
+        for x in os.listdir(self.fileops.tempdir):
+            tempfile = os.path.join(self.fileops.tempdir, x)
+            self.fileops._delete(tempfile)
+            if self.fileops._exists(tempfile):
+                log('Error deleting temp file: %s' % tempfile, xbmc.LOGERROR)
+        self.fileops._rmdir(self.fileops.tempdir)
+        if self.fileops._exists(self.fileops.tempdir):
+            log('Error deleting temp directory: %s' % self.fileops.tempdir, 
xbmc.LOGERROR)
+        else:
+            log('Deleted temp directory: %s' % self.fileops.tempdir, 
xbmc.LOGNOTICE)
+    ### log results and notify user
+    log('Finished: Total of %s artwork downloaded' % 
self.fileops.downloadcount, xbmc.LOGNOTICE)
+    summary_tmp = __localize__(36009) + ': %s ' % self.fileops.downloadcount
+    summary = summary_tmp + __localize__(36013)
+    dialog('close', background = self.background)
+    if not self.failcount < self.failthreshold:
+        log('Network error detected, script aborted', xbmc.LOGERROR)
+        dialog('okdialog', line1 = __localize__(36007), line2 = 
__localize__(36008), background = self.background)
+    if not xbmc.abortRequested:
+        dialog('okdialog', line1 = summary, background = self.background)
+    else:
+        dialog('okdialog', line1 = __localize__(36007), line2 = summary, 
background = self.background)
+
+### check if settings.xml excist
+def settings_excist(self):
+    if not os.path.isfile(settings_file):
+        dialog('okdialog', line1 = __localize__(36037), line2 = 
__localize__(36038))
+        log('## Settings.xml file not found. Opening settings window.')
+        __addon__.openSettings()
+        first_run = True
+    else:
+        log('Settings.xml file found. Continue with initializing.')
+  
+### get settings from settings.xml
+def settings_get(self):
+    self.moviefanart = __addon__.getSetting("movie_enable") == 'true'
+    self.movie_extrafanart = __addon__.getSetting("movie_extrafanart") == 
'true'
+    self.movie_extrathumbs = __addon__.getSetting("movie_extrathumbs") == 
'true'
+    self.tvfanart = __addon__.getSetting("tvshow_enable") == 'true'
+    self.tvshow_extrafanart = __addon__.getSetting("tvshow_extrafanart") == 
'true'
+    self.centralize_enable = __addon__.getSetting("centralize_enable") == 
'true'
+    self.centralfolder_split = __addon__.getSetting("centralfolder_split")
+    self.centralfolder_movies = __addon__.getSetting("centralfolder_movies")
+    self.centralfolder_tvshows = __addon__.getSetting("centralfolder_tvshows")
+    self.limit_extrafanart = __addon__.getSetting("limit_extrafanart") == 
'true'
+    self.limit_extrafanart_max = 
int(__addon__.getSetting("limit_extrafanart_max").rstrip('0').rstrip('.'))
+    self.limit_extrafanart_rating = 
int(__addon__.getSetting("limit_extrafanart_rating").rstrip('0').rstrip('.'))
+    self.limit_extrathumbs = self.limit_extrafanart
+    self.limit_extrathumbs_max = 4
+    self.limit_extrathumbs_rating = self.limit_extrafanart_rating
+    self.limit_language = __addon__.getSetting("limit_language") == 'true'
+    self.limit_notext = __addon__.getSetting("limit_notext") == 'true'
+    self.use_cache = __addon__.getSetting("use_cache") == 'true'
+    self.cache_directory = __addon__.getSetting("cache_directory")
+    self.background = __addon__.getSetting("background") == 'true'
+
+### declare some starting variables
+def settings_vars(self):
+    self.mediatype = ''
+    self.medianame = ''
+    providers = provider.get_providers()
+    self.movie_providers = providers['movie_providers']
+    self.tv_providers = providers['tv_providers']
+    self.music_providers = providers['music_providers']
+    self.failcount = 0
+    self.failthreshold = 3
+    self.xmlfailthreshold = 5
+    self.fanart_centralized = 0        
+
+# Print out settings to log to help with debugging
+def settings_log(self):
+    log("## Settings...")
+    log('## Language Used = %s' % str(__language__))
+    log('## Download Movie Artwork= %s' % str(self.moviefanart))
+    log('## Download Movie ExtraFanart= %s' % str(self.movie_extrafanart))
+    log('## Download Movie ExtraThumbs= %s' % str(self.movie_extrathumbs))
+    log('## Download TV Show Artwork = %s' % str(self.tvfanart))
+    log('## Download TV Show ExtraFanart = %s' % str(self.tvshow_extrafanart))
+    log('## Background Run = %s' % str(self.background))
+    log('## Centralize Extrafanart = %s' % str(self.centralize_enable))
+    log('## Central Movies Folder = %s' % str(self.centralfolder_movies))
+    log('## Central TV Show Folder = %s' % str(self.centralfolder_tvshows))
+    log('## Limit Extrafanart = %s' % str(self.limit_extrafanart))
+    log('## Limit Extrafanart Max = %s' % str(self.limit_extrafanart_max))
+    log('## Limit Extrafanart Rating = %s' % 
str(self.limit_extrafanart_rating))
+    log('## Limit Extrathumbs = %s' % str(self.limit_extrathumbs))
+    log('## Limit Extrathumbs Max = %s' % str(self.limit_extrathumbs_max))
+    log('## Limit Extrathumbs Rating = %s' % 
str(self.limit_extrathumbs_rating))
+    log('## Limit Language = %s' % str(self.limit_language))
+    log('## Limit Fanart with no text = %s' % str(self.limit_notext))
+    log('## Backup downloaded fanart= %s' % str(self.use_cache))
+    log('## Backup folder = %s' % str(self.cache_directory))
+    log("## End of Settings...")
+
+### Check for script starting arguments used by skins
+def runmode_args(self):
+    log("## Checking for arguments used by skins")
+    try: log( "## arg 0: %s" % sys.argv[0] )
+    except:   log( "## no arg0" )
+    try: log( "## arg 1: %s" % sys.argv[1] )
+    except:   log( "## no arg1" )
+    try: log( "## arg 2: %s" % sys.argv[2] )
+    except:   log( "## no arg2" )
+    try: log( "## arg 3: %s" % sys.argv[3] )
+    except:   log( "## no arg3" )
+    try: log( "## arg 4: %s" % sys.argv[4] )
+    except:   log( "## no arg4" )
+    try: log( "arg 5: %s" % sys.argv[5] )
+    except:   log( "## no arg5" )
+    try: log( "## arg 6: %s" % sys.argv[6] )
+    except:   log( "## no arg6" )
+    try: log( "## arg 7: %s" % sys.argv[7] )
+    except:   log( "## no arg7" )
+    try: log( "## arg 8: %s" % sys.argv[8] )
+    except:   log( "## no arg8" )
+
+### initial check before exicuting
+def initialise(self):
+    dialog('create', line1 = __localize__(36005), background = self.background)
+    for item in sys.argv:
+        log("## Checking for downloading mode...")
+        match = re.search("mediatype=(.*)" , item)
+        if match:
+            self.mediatype = match.group(1)
+            if self.mediatype == 'tvshow' or self.mediatype == 'movie' or 
self.mediatype == 'music':
+                pass
+            else:
+                log('Error: invalid mediatype, must be one of movie, tvshow or 
music', xbmc.LOGERROR)
+                return False
+        else:
+            pass
+        match = re.search("medianame=" , item)
+        if match:
+            self.medianame = item.replace("medianame=" , "")
+        else:
+            pass
+    try:
+        self.fileops = fileops()
+    except CreateDirectoryError, e:
+        log("Could not create directory: %s" % str(e))
+        return False
+    else:
+        return True
 class Main:
     def __init__(self):
-        if not os.path.isfile(settings_file):
-            dialog('okdialog', line1 = __localize__(36037), line2 = 
__localize__(36038))
-            log('Settings.xml file not found. Opening settings window.')
-            __addon__.openSettings()
-            first_run = True
-        else:
-            log('Settings.xml file found. Continue with initializing.')
-        ### Check for script starting arguments used by skins
-        log("## Checking for arguments used by skins")
-        try: log( "## arg 0: %s" % sys.argv[0] )
-        except:   log( "## no arg0" )
-        try: log( "## arg 1: %s" % sys.argv[1] )
-        except:   log( "## no arg1" )
-        try: log( "## arg 2: %s" % sys.argv[2] )
-        except:   log( "## no arg2" )
-        try: log( "## arg 3: %s" % sys.argv[3] )
-        except:   log( "## no arg3" )
-        try: log( "## arg 4: %s" % sys.argv[4] )
-        except:   log( "## no arg4" )
-        try: log( "arg 5: %s" % sys.argv[5] )
-        except:   log( "## no arg5" )
-        try: log( "## arg 6: %s" % sys.argv[6] )
-        except:   log( "## no arg6" )
-        try: log( "## arg 7: %s" % sys.argv[7] )
-        except:   log( "## no arg7" )
-        try: log( "## arg 8: %s" % sys.argv[8] )
-        except:   log( "## no arg8" )
-        if self.initialise():
+        settings_excist(self)
+        settings_get(self)
+        settings_vars(self)
+        settings_log(self)
+        runmode_args(self)
+        if initialise(self):
             if not self.mediatype == '':
                 if not self.medianame == '':
                     self.solo_mode(self.mediatype, self.medianame)
@@ -74,13 +200,13 @@ class Main:
                     elif self.mediatype == 'music':
                         log('Bulk mode: Music not yet implemented', 
xbmc.LOGNOTICE)
             else:
-                if self.tvfanart:
+                if self.tvfanart and self.tvshow_extrafanart:
                     self.Medialist = Media_listing('TVShows')
                     self.mediatype = 'tvshow'
                     self.download_fanart(self.Medialist, self.tv_providers)
                 else:
                     log('TV fanart disabled, skipping', xbmc.LOGINFO)
-                if self.moviefanart:
+                if self.moviefanart and (self.movie_extrafanart or 
self.movie_extrathumbs):
                     self.Medialist = Media_listing('Movies')
                     self.mediatype = 'movie'
                     self.download_fanart(self.Medialist, self.movie_providers)
@@ -88,109 +214,10 @@ class Main:
                     log('Movie fanart disabled, skipping', xbmc.LOGINFO)
         else:
             log('Initialisation error, script aborting', xbmc.LOGERROR)
-        self.cleanup()
-
+        cleanup(self)
 
-    ### load settings and initialise needed directories
-    def initialise(self):
-        providers = provider.get_providers()
-        self.movie_providers = providers['movie_providers']
-        self.tv_providers = providers['tv_providers']
-        self.music_providers = providers['music_providers']
-        self.failcount = 0
-        self.failthreshold = 3
-        self.xmlfailthreshold = 5
-        self.fanart_centralized = 0
-        self.moviefanart = __addon__.getSetting("movie_enable") == 'true'
-        self.tvfanart = __addon__.getSetting("tvshow_enable") == 'true'
-        self.centralize_enable = __addon__.getSetting("centralize_enable") == 
'true'
-        self.centralfolder_split = __addon__.getSetting("centralfolder_split")
-        self.centralfolder_movies = 
__addon__.getSetting("centralfolder_movies")
-        self.centralfolder_tvshows = 
__addon__.getSetting("centralfolder_tvshows")
-        self.limit_extrafanart = __addon__.getSetting("limit_extrafanart") == 
'true'
-        self.limit_extrafanart_max = 
int(__addon__.getSetting("limit_extrafanart_max").rstrip('0').rstrip('.'))
-        self.limit_extrafanart_rating = 
int(__addon__.getSetting("limit_extrafanart_rating").rstrip('0').rstrip('.'))
-        self.limit_language = __addon__.getSetting("limit_language") == 'true'
-        self.limit_notext = __addon__.getSetting("limit_notext") == 'true'
-        self.use_cache = __addon__.getSetting("use_cache") == 'true'
-        self.cache_directory = __addon__.getSetting("cache_directory")
-        self.background = __addon__.getSetting("background") == 'true'
-        dialog('create', line1 = __localize__(36003), background = 
self.background)
-        self.mediatype = ''
-        self.medianame = ''
 
-        # Print out settings to log to help with debugging
-        log("## Settings...")
-        log('## Language Used = %s' % str(__language__))
-        log('## Download Movie Fanart= %s' % str(self.moviefanart))
-        log('## Download TV Show  Fanart = %s' % str(self.tvfanart))
-        log('## Background Run = %s' % str(self.background))
-        log('## Centralize Extrafanart = %s' % str(self.centralize_enable))
-        log('## Central Movies Folder = %s' % str(self.centralfolder_movies))
-        log('## Central TV Show Folder = %s' % str(self.centralfolder_tvshows))
-        log('## Limit Extrafanart = %s' % str(self.limit_extrafanart))
-        log('## Limit Extrafanart Max = %s' % str(self.limit_extrafanart_max))
-        log('## Limit Extrafanart Rating = %s' % 
str(self.limit_extrafanart_rating))
-        log('## Limit Language = %s' % str(self.limit_language))
-        log('## Limit Fanart with no text = %s' % str(self.limit_notext))
-        log('## Backup downloaded fanart= %s' % str(self.use_cache))
-        log('## Backup folder = %s' % str(self.cache_directory))
-        log("## End of Settings...")
 
-        
-        for item in sys.argv:
-            log("## Checking for downloading mode...")
-            match = re.search("mediatype=(.*)" , item)
-            if match:
-                self.mediatype = match.group(1)
-                if self.mediatype == 'tvshow' or self.mediatype == 'movie' or 
self.mediatype == 'music':
-                    pass
-                else:
-                    log('Error: invalid mediatype, must be one of movie, 
tvshow or music', xbmc.LOGERROR)
-                    return False
-            else:
-                pass
-            match = re.search("medianame=" , item)
-            if match:
-                self.medianame = item.replace("medianame=" , "")
-            else:
-                pass
-        try:
-            self.fileops = fileops()
-        except CreateDirectoryError, e:
-            log("Could not create directory: %s" % str(e))
-            return False
-        else:
-            return True
-
-
-    ### clean up and
-    def cleanup(self):
-        if self.fileops._exists(self.fileops.tempdir):
-            dialog('update', percentage = 100, line1 = __localize__(36004), 
background = self.background)
-            log('Cleaning up temp files')
-            for x in os.listdir(self.fileops.tempdir):
-                tempfile = os.path.join(self.fileops.tempdir, x)
-                self.fileops._delete(tempfile)
-                if self.fileops._exists(tempfile):
-                    log('Error deleting temp file: %s' % tempfile, 
xbmc.LOGERROR)
-            self.fileops._rmdir(self.fileops.tempdir)
-            if self.fileops._exists(self.fileops.tempdir):
-                log('Error deleting temp directory: %s' % 
self.fileops.tempdir, xbmc.LOGERROR)
-            else:
-                log('Deleted temp directory: %s' % self.fileops.tempdir, 
xbmc.LOGNOTICE)
-        ### log results and notify user
-        log('Finished: %s extrafanart downloaded' % 
self.fileops.downloadcount, xbmc.LOGNOTICE)
-        summary_tmp = __localize__(36009) + ': %s ' % 
self.fileops.downloadcount
-        summary = summary_tmp + __localize__(36013)
-        dialog('close', background = self.background)
-        if not self.failcount < self.failthreshold:
-            log('Network error detected, script aborted', xbmc.LOGERROR)
-            dialog('okdialog', line1 = __localize__(36007), line2 = 
__localize__(36008), background = self.background)
-        if not xbmc.abortRequested:
-            dialog('okdialog', line1 = summary, background = self.background)
-        else:
-            dialog('okdialog', line1 = __localize__(36007), line2 = summary, 
background = self.background)
 
     ### solo mode
     def solo_mode(self, itemtype, itemname):
@@ -243,8 +270,12 @@ class Main:
             log('ID: %s' % self.media_id)
             log('Path: %s' % self.media_path)
             targetdirs = []
+            targetthumbsdirs = []
             extrafanart_dir = os.path.join(self.media_path, 'extrafanart')
+            extrathumbs_dir = os.path.join(self.media_path, 'extrathumbs')
             targetdirs.append(extrafanart_dir)
+            targetthumbsdirs.append(extrathumbs_dir)
+            ### Check if using the centralize option
             if self.centralize_enable:
                 if self.mediatype == 'tvshow':
                     if not self.centralfolder_tvshows == '':
@@ -256,6 +287,10 @@ class Main:
                         targetdirs.append(self.centralfolder_movies)
                     else:
                         log('Error: Central fanart enabled but Movies folder 
not set, skipping', xbmc.LOGERROR)
+            ### Check if using the cache option
+            targets = targetdirs[:]
+            if self.use_cache and not self.cache_directory == '':
+                targets.append(self.cache_directory)
             if self.media_id == '':
                 log('%s: No ID found, skipping' % self.media_name, 
xbmc.LOGNOTICE)
             elif self.mediatype == 'tvshow' and self.media_id.startswith('tt'):
@@ -270,7 +305,7 @@ class Main:
                         if backdrops_result == 'retrying':
                             time.sleep(10)
                         try:
-                            backdrops = provider.get_image_list(self.media_id)
+                            image_list = provider.get_image_list(self.media_id)
                         except HTTP404Error, e:
                             errmsg = '404: File not found'
                             backdrops_result = 'skipping'
@@ -305,53 +340,112 @@ class Main:
                     if backdrops_result == 'pass':
                         self.failcount = 0
                         self.current_fanart = 0
+                        self.current_extrathumbs = 0
                         self.downloaded_fanart = 0
-                        if (self.limit_extrafanart and 
self.limit_extrafanart_max < len(backdrops)):
+                        self.downloaded_extrathumbs = 0
+                        if (self.limit_extrafanart and 
self.limit_extrafanart_max < len(image_list)):
                             download_max = self.limit_extrafanart_max
-                        else: download_max = len(backdrops)
-                        targets = targetdirs[:]
-                        if self.use_cache and not self.cache_directory == '':
-                            targets.append(self.cache_directory)
-                        for fanart in backdrops:
-                            fanarturl = fanart['url']
-                            ### check if script has been cancelled by user
-                            if dialog('iscanceled', background = 
self.background):
-                                dialog('close', background = self.background)
-                                break
-                            if not self.failcount < self.failthreshold:
-                                break
-                            fanartfile = provider.get_filename(fanarturl)
-                            self.current_fanart = self.current_fanart + 1
-                            
-                            if self.limit_extrafanart and 
self.downloaded_fanart >= self.limit_extrafanart_max:
-                                reason = 'Max number fanart reached: %s' % 
self.downloaded_fanart
-                                self.fileops._delete_file_in_dirs(fanartfile, 
targetdirs, reason)
-                            elif self.limit_extrafanart and 'rating' in fanart 
and fanart['rating'] < self.limit_extrafanart_rating:
-                                reason = 'Rating too low: %s' % 
fanart['rating']
-                                self.fileops._delete_file_in_dirs(fanartfile, 
targetdirs, reason)
-                            elif self.limit_extrafanart and 'series_name' in 
fanart and self.limit_notext and fanart['series_name']:
-                                reason = 'Has text'
-                                self.fileops._delete_file_in_dirs(fanartfile, 
targetdirs, reason)
-                            elif self.limit_extrafanart and 
self.limit_language and 'language' in fanart and fanart['language'] != 
__language__:
-                                reason = "Doesn't match current language: %s" 
% xbmc.getLanguage()
-                                self.fileops._delete_file_in_dirs(fanartfile, 
targetdirs, reason)
-                            else:
-                                try:
-                                    self.fileops._downloadfile(fanarturl, 
fanartfile, targets)
-                                except HTTP404Error, e:
-                                    log("File does not exist at URL: %s" % 
str(e), xbmc.LOGWARNING)
-                                except HTTPTimeout, e:
-                                    self.failcount = self.failcount + 1
-                                    log("Error downloading file: %s, timed 
out" % str(e), xbmc.LOGERROR)
-                                except CreateDirectoryError, e:
-                                    log("Could not create directory, skipping: 
%s" % str(e), xbmc.LOGWARNING)
-                                    break
-                                except DownloadError, e:
-                                    self.failcount = self.failcount + 1
-                                    log('Error downloading file: %s (Possible 
network error: %s), skipping' % (fanarturl, str(e)), xbmc.LOGERROR)
-                                else:
-                                    self.downloaded_fanart = 
self.downloaded_fanart + 1
-                            dialog('update', percentage = 
int(float(self.current_fanart) / float(download_max) * 100.0), line1 = 
__localize__(36006), line2 = self.media_name, line3 = fanartfile, background = 
self.background)
+                        else: download_max = len(image_list)
+                        if (self.limit_extrathumbs and 
self.limit_extrathumbs_max < len(image_list)):
+                            download_thumbsmax = self.limit_extrathumbs_max
+                        else: download_thumbsmax = len(image_list)
+                        ### Extrafanart downloading
+                        if self.movie_extrafanart or self.tvshow_extrafanart:
+                            log('Extrafanart enabled. Processing')
+                            for fanart in image_list:
+                                size = 'original'
+                                fanarturl = fanart['url']
+                                if size in fanart['size']:
+                                    ### check if script has been cancelled by 
user
+                                    if dialog('iscanceled', background = 
self.background):
+                                        dialog('close', background = 
self.background)
+                                        break
+                                    if not self.failcount < self.failthreshold:
+                                        break
+                                    if self.mediatype == 'movie':
+                                        fanartfile = 
provider.get_filename(fanart['id'])
+                                    else:
+                                        fanartfile = 
provider.get_filename(fanarturl)
+                                    self.current_fanart = self.current_fanart 
+ 1
+                                    ### Check for set limits
+                                    if self.limit_extrafanart and 
self.downloaded_fanart >= self.limit_extrafanart_max:
+                                        reason = 'Max number fanart reached: 
%s' % self.downloaded_fanart
+                                        
self.fileops._delete_file_in_dirs(fanartfile, targetdirs, reason)
+                                    elif self.limit_extrafanart and 'rating' 
in fanart and fanart['rating'] < self.limit_extrafanart_rating:
+                                        reason = 'Rating too low: %s' % 
fanart['rating']
+                                        
self.fileops._delete_file_in_dirs(fanartfile, targetdirs, reason)
+                                    elif self.limit_extrafanart and 
'series_name' in fanart and self.limit_notext and fanart['series_name']:
+                                        reason = 'Has text'
+                                        
self.fileops._delete_file_in_dirs(fanartfile, targetdirs, reason)
+                                    elif self.limit_extrafanart and 
self.limit_language and 'language' in fanart and fanart['language'] != 
__language__:
+                                        reason = "Doesn't match current 
language: %s" % xbmc.getLanguage()
+                                        
self.fileops._delete_file_in_dirs(fanartfile, targetdirs, reason)
+                                    else:
+                                        try:
+                                            
self.fileops._downloadfile(fanarturl, fanartfile, targets)
+                                        except HTTP404Error, e:
+                                            log("File does not exist at URL: 
%s" % str(e), xbmc.LOGWARNING)
+                                        except HTTPTimeout, e:
+                                            self.failcount = self.failcount + 1
+                                            log("Error downloading file: %s, 
timed out" % str(e), xbmc.LOGERROR)
+                                        except CreateDirectoryError, e:
+                                            log("Could not create directory, 
skipping: %s" % str(e), xbmc.LOGWARNING)
+                                            break
+                                        except DownloadError, e:
+                                            self.failcount = self.failcount + 1
+                                            log('Error downloading file: %s 
(Possible network error: %s), skipping' % (fanarturl, str(e)), xbmc.LOGERROR)
+                                        else:
+                                            self.downloaded_fanart = 
self.downloaded_fanart + 1
+                                    dialog('update', percentage = 
int(float(self.current_fanart) / float(download_max) * 100.0), line1 = 
__localize__(36006) + ' ' + __localize__(36102), line2 = self.media_name, line3 
= fanartfile, background = self.background)
+                        else:    
+                            log('Extrafanart disabled. skipping')
+                        ### Movie extrathumbs downloading
+                        if self.movie_extrathumbs and self.mediatype == 
'movie':
+                            log('Movie extrathumbs enabled. Processing')
+                            for extrathumbs in image_list:
+                                size = 'thumb'
+                                extrathumbsurl = extrathumbs['url']
+                                if size in extrathumbs['size']:
+                                    ### check if script has been cancelled by 
user
+                                    if dialog('iscanceled', background = 
self.background):
+                                        dialog('close', background = 
self.background)
+                                        break
+                                    if not self.failcount < self.failthreshold:
+                                        break
+                                    extrathumbsfile = ('thumb%s.jpg' % 
str(self.current_extrathumbs+1))
+                                    self.current_extrathumbs = 
self.current_extrathumbs + 1
+                                    ### Check for set limits
+                                    if self.limit_extrathumbs and 
self.downloaded_extrathumbs >= self.limit_extrathumbs_max:
+                                        reason = 'Max number extrathumbs 
reached: %s' % self.downloaded_extrathumbs
+                                        
self.fileops._delete_file_in_dirs(extrathumbsfile, targetthumbsdirs, reason)
+                                    elif self.limit_extrathumbs and 'rating' 
in extrathumbs and extrathumbs['rating'] < self.limit_extrathumbs_rating:
+                                        reason = 'Rating too low: %s' % 
extrathumbs['rating']
+                                        
self.fileops._delete_file_in_dirs(extrathumbsfile, targetthumbsdirs, reason)
+                                    elif self.limit_extrathumbs and 
'series_name' in extrathumbs and self.limit_notext and 
extrathumbs['series_name']:
+                                        reason = 'Has text'
+                                        
self.fileops._delete_file_in_dirs(extrathumbsfile, targetthumbsdirs, reason)
+                                    elif self.limit_extrathumbs and 
self.limit_language and 'language' in extrathumbs and extrathumbs['language'] 
!= __language__:
+                                        reason = "Doesn't match current 
language: %s" % xbmc.getLanguage()
+                                        
self.fileops._delete_file_in_dirs(extrathumbsfile, targetthumbsdirs, reason)
+                                    else:
+                                        try:
+                                            
self.fileops._downloadfile(extrathumbsurl, extrathumbsfile, targetthumbsdirs)
+                                        except HTTP404Error, e:
+                                            log("File does not exist at URL: 
%s" % str(e), xbmc.LOGWARNING)
+                                        except HTTPTimeout, e:
+                                            self.failcount = self.failcount + 1
+                                            log("Error downloading file: %s, 
timed out" % str(e), xbmc.LOGERROR)
+                                        except CreateDirectoryError, e:
+                                            log("Could not create directory, 
skipping: %s" % str(e), xbmc.LOGWARNING)
+                                            break
+                                        except DownloadError, e:
+                                            self.failcount = self.failcount + 1
+                                            log('Error downloading file: %s 
(Possible network error: %s), skipping' % (extrathumbsurl, str(e)), 
xbmc.LOGERROR)
+                                        else:
+                                            self.downloaded_extrathumbs = 
self.downloaded_extrathumbs + 1
+                                    dialog('update', percentage = 
int(float(self.current_extrathumbs) / float(download_max) * 100.0), line1 = 
__localize__(36006) + ' ' + __localize__(36110), line2 = self.media_name, line3 
= extrathumbsfile, background = self.background)
+                        else:    
+                            log('Extrathumbs disabled. skipping')
             log('Finished processing media: %s' % self.media_name, 
xbmc.LOGDEBUG)
             self.processeditems = self.processeditems + 1
 
diff --git 
a/script.extrafanartdownloader/resources/language/English/strings.xml 
b/script.extrafanartdownloader/resources/language/English/strings.xml
index a18d196..fb8e11a 100644
--- a/script.extrafanartdownloader/resources/language/English/strings.xml
+++ b/script.extrafanartdownloader/resources/language/English/strings.xml
@@ -3,19 +3,19 @@
     <!-- Plugin settings -->
         <string id="36001">Download Movie fanart</string>
         <string id="36002">Download TV Shows fanart</string>
-        <string id="36003">Checking for extrafanart</string>
+        <string id="36003">-</string>
         <string id="36004">Cleaning up</string>
-        <string id="36005">Checking for extrafanart</string>
-        <string id="36006">Downloading extrafanart</string>
+        <string id="36005">Checking for artwork</string>
+        <string id="36006">Downloading</string>
         <string id="36007">Add-on aborted</string>
         <string id="36008">Network error detected</string>
         <string id="36009">Finished</string>
         <string id="36010">Enable downloading</string>
         <string id="36011">extrafanart centralized</string>
         <string id="36012">Run in background</string>
-        <string id="36013">extrafanart downloaded</string>
+        <string id="36013">artwork downloaded</string>
         <string id="36029">Central Folders Split Into Titles</string>  
-        <string id="36030">Centralize fanart</string>
+        <string id="36030">Centralize fanart [I](Can be used for fanart 
slideshow)[/I] </string>
         <string id="36031">Central Movie fanart directory</string>
         <string id="36032">Central TV fanart directory</string>
         <string id="36033">Limit download: Extrafanart</string>
@@ -39,7 +39,7 @@
         <string id="36063">Exclude fanart that has text</string>
 
     <!-- Plugin settings: Music section -->
-<string id="36071">Music</string>
+        <string id="36071">Music</string>
         <string id="36072">Options for downloading Music artwork</string>
 
     <!-- Plugin settings: Advanced settings section -->   
diff --git a/script.extrafanartdownloader/resources/lib/provider/tmdb.py 
b/script.extrafanartdownloader/resources/lib/provider/tmdb.py
index e23c559..799a83b 100644
--- a/script.extrafanartdownloader/resources/lib/provider/tmdb.py
+++ b/script.extrafanartdownloader/resources/lib/provider/tmdb.py
@@ -16,8 +16,9 @@ class TMDBProvider(BaseProvider):
         self.url = "http://api.themoviedb.org/2.1/Movie.imdbLookup/"; + 
language.get_abbrev() + "/xml/%s/%s"
         
         
-    def get_filename(self, url):
-        return url.split('backdrops', 1)[1].replace('/', '-').lstrip('-')
+    def get_filename(self, imageid):
+        filename = imageid + '.jpg'
+        return filename
         
     def get_image_list(self, media_id):
         xml_url = self.url % (self.api_key, media_id)
@@ -34,7 +35,9 @@ class TMDBProvider(BaseProvider):
             tree = tree.findall('images')[0]
             for image in tree.findall('image'):
                 info = {}
-                if image.get('type') == 'backdrop' and image.get('size') == 
'original' and image.get('url'):
+                if image.get('type') == 'backdrop' and image.get('url'):
+                    info['size'] = image.get('size')
+                    info['id'] = image.get('id')
                     info['url'] = image.get('url')
                     info['height'] = int(image.get('height'))
                     info['width'] = int(image.get('width'))
diff --git a/script.extrafanartdownloader/resources/lib/provider/tvdb.py 
b/script.extrafanartdownloader/resources/lib/provider/tvdb.py
index 8877983..0e494ac 100644
--- a/script.extrafanartdownloader/resources/lib/provider/tvdb.py
+++ b/script.extrafanartdownloader/resources/lib/provider/tvdb.py
@@ -25,10 +25,12 @@ class TVDBProvider(BaseProvider):
             if image.findtext('BannerType') == 'fanart' and 
image.findtext('BannerPath'):
                 info['url'] = self.url_prefix + image.findtext('BannerPath')
                 info['language'] = image.findtext('Language')
-                if image.findtext('BannerType2'):
+                if image.findtext('BannerType2') :
                     x,y = image.findtext('BannerType2').split('x')
+                    info['BannerType'] = image.findtext('BannerType')
                     info['height'] = int(x)
                     info['width'] = int(y)
+                    info['size'] = 'original'
                 info['series_name'] = image.findtext('SeriesName') == 'true'
                 if image.findtext('RatingCount') and 
int(image.findtext('RatingCount')) >= 1:
                     info['rating'] = float(image.findtext('Rating'))
diff --git a/script.extrafanartdownloader/resources/settings.xml 
b/script.extrafanartdownloader/resources/settings.xml
index de9c94f..636d8ce 100644
--- a/script.extrafanartdownloader/resources/settings.xml
+++ b/script.extrafanartdownloader/resources/settings.xml
@@ -8,7 +8,7 @@
         <setting label="36012" id="background" type="bool"  default="false"/>
         <setting type="sep" />
         <setting label="36030" id="centralize_enable" type="bool"  
default="false"/>
-        <setting label="36029" id="centralfolder_split" type="bool" 
subsetting= "true" enable="false" default="false" visible="eq(-1,true)"/>
+        <setting label="36029" id="centralfolder_split" type="bool" 
subsetting= "true" enable="false" default="false" visible="false"/>
         <setting label="36031" id="centralfolder_movies" subsetting="true" 
type="folder"  default="" source="auto" option="writeable" enable="eq(-2,true)" 
visible="eq(-2,true)"/>
         <setting label="36032" id="centralfolder_tvshows" subsetting="true" 
type="folder"  default="" source="auto" option="writeable" enable="eq(-3,true)" 
visible="eq(-3,true)"/>
         <setting type="sep" />
@@ -27,8 +27,8 @@
         <setting label="36010" type="bool" id="movie_enable" default="true" />
         <setting label="36108" type="bool" id="movie_poster" subsetting= 
"true" enable="eq(-1,true)" default="false" visible="false" />
         <setting label="36101" type="bool" id="movie_fanart" subsetting= 
"true"  enable="eq(-2,true)" default="true" visible="false" />
-        <setting label="36102" type="bool" id="movie_extrafanart" subsetting= 
"true"  enable="eq(-3,true)" default="false" visible="false" />
-        <setting label="36110" type="bool" id="movie_extrathumb" subsetting= 
"true"  enable="eq(-4,true)" default="false" visible="false" />
+        <setting label="36102" type="bool" id="movie_extrafanart" subsetting= 
"true"  enable="eq(-3,true)" default="false"  />
+        <setting label="36110" type="bool" id="movie_extrathumbs" subsetting= 
"true"  enable="eq(-4,true)" default="false" />
         <setting label="36106" type="bool" id="movie_logo" subsetting= "true"  
enable="eq(-5,true)" default="false" visible="false" />
     </category>
     
@@ -39,7 +39,7 @@
         <setting type="sep" />
         <setting label="36010" type="bool" id="tvshow_enable" default="true" />
         <setting label="36101" type="bool" id="tvshow_fanart" subsetting= 
"true"  enable="eq(-1,true)" default="false" visible="false" />
-        <setting label="36102" type="bool" id="tvshow_extrafanart" subsetting= 
"true"  enable="eq(-2,true)" default="false" visible="false" />
+        <setting label="36102" type="bool" id="tvshow_extrafanart" subsetting= 
"true"  enable="eq(-2,true)" default="false" />
         <setting label="36005" type="bool" id="tvshow_clearart" subsetting= 
"true"  enable="eq(-3,true)" default="false" visible="false" />
         <setting label="36106" type="bool" id="tvshow_logo" subsetting= "true" 
 enable="eq(-4,true)" default="false" visible="false" />
         <setting label="36108" type="bool" id="tvshow_poster" subsetting= 
"true"  enable="eq(-5,true)" default="false" visible="false" />

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

Summary of changes:
 script.extrafanartdownloader/README                |   11 +-
 script.extrafanartdownloader/addon.xml             |   20 +-
 script.extrafanartdownloader/changelog.txt         |   25 +-
 script.extrafanartdownloader/default.py            |  446 ++++++++++++--------
 .../resources/language/English/strings.xml         |   12 +-
 .../resources/lib/provider/tmdb.py                 |    9 +-
 .../resources/lib/provider/tvdb.py                 |    4 +-
 .../resources/settings.xml                         |    8 +-
 8 files changed, 315 insertions(+), 220 deletions(-)


hooks/post-receive
-- 
Scripts

------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to