The branch, eden-pre has been updated
       via  daf82719340fb79ebe7dcdd4a5f7e9550b2b903e (commit)
      from  2db5d501a1999ede826d2b06b4810ee60b3bea4d (commit)

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

commit daf82719340fb79ebe7dcdd4a5f7e9550b2b903e
Author: spiff <[email protected]>
Date:   Tue Oct 11 09:47:58 2011 +0200

    [script.extrafanartdownloader] -v 0.3.7

diff --git a/script.extrafanartdownloader/addon.xml 
b/script.extrafanartdownloader/addon.xml
index 568d7fe..11ef108 100644
--- a/script.extrafanartdownloader/addon.xml
+++ b/script.extrafanartdownloader/addon.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

-<addon id="script.extrafanartdownloader" name="Extrafanart Downloader" 
version="0.3.6" provider-name="paddycarey">

+<addon id="script.extrafanartdownloader" name="Extrafanart Downloader" 
version="0.3.7" provider-name="paddycarey/putneyj">

   <requires>

     <import addon="xbmc.python" version="2.0"/>

-    <import addon="script.module.elementtree" version="1.2.7"/>

   </requires>

   <extension point="xbmc.python.script" library="default.py">

     <provides>executable</provides>

@@ -10,12 +9,17 @@
   <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>

-    <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]

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

-       Movies: Each movie must have its own folder where an 'extrafanart' 
subfolder will be created.</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]

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

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

+    <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]

+       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>

diff --git a/script.extrafanartdownloader/default.py 
b/script.extrafanartdownloader/default.py
index 5837aa7..8ed6ce9 100644
--- a/script.extrafanartdownloader/default.py
+++ b/script.extrafanartdownloader/default.py
@@ -1,10 +1,16 @@
-import urllib, re, os, socket
-import xbmc, xbmcaddon, xbmcvfs, xbmcgui
-from elementtree import ElementTree
+import urllib2
+import re
+import os
+import socket
+import sys
+import xbmc
+import xbmcaddon
+import xbmcvfs
+import xbmcgui
 
 
 ### get addon info
-__addon__ = xbmcaddon.Addon()
+__addon__ = xbmcaddon.Addon('script.extrafanartdownloader')
 __addonid__ = __addon__.getAddonInfo('id')
 __addonname__ = __addon__.getAddonInfo('name')
 __addonversion__ = __addon__.getAddonInfo('version')
@@ -17,76 +23,71 @@ socket.setdefaulttimeout(timeout)
 
 
 ### logging function
-def log(txt):
+def log(txt, severity=xbmc.LOGDEBUG):
     message = 'script.extrafanartdownloader: %s' % txt
-    xbmc.log(msg=message, level=xbmc.LOGDEBUG)
-
-
-class getBackdrops(object):
-
-    def __init__(self):
-        self.tvdbbaseurl = 'http://www.thetvdb.com/banners/'
-        self.tvdbkey = '1A41A145E2DA0053'
-        self.tmdbkey = '4be68d7eab1fbd1b6fd8a3b80a65a95e'
-
-    def tvdb(self, showid):
-        bannerlist = []
-        url = 'http://www.thetvdb.com/api/%s/series/%s/banners.xml' % 
(self.tvdbkey, showid)
-        log('Fetching: %s' % url)
-        tree = self.socket(url)
-        for banner in tree.findall('Banner'):
-            if banner.find('BannerType').text == 'fanart':
-                fanarturl = self.tvdbbaseurl + banner.find('BannerPath').text
-                bannerlist.append(fanarturl)
-        log('Fanart list: %s' % str(bannerlist))
-        return bannerlist
-
-    def tmdb(self, tmdbid):
-        bannerlist = []
-        url = 'http://api.themoviedb.org/2.1/Movie.getImages/en/xml/%s/%s' % 
(self.tmdbkey, tmdbid)
-        log('Fetching: %s' % url)
-        tree = self.socket(url)
-        for backdrop in tree.getiterator('backdrop'):
-            for image in backdrop.getiterator('image'):
-                if image.attrib['size'] == 'original':
-                    fanarturl = image.attrib['url']
-                    bannerlist.append(fanarturl)
-        log('Fanart list: %s' % str(bannerlist))
-        return bannerlist
-
-    def socket(self, url):
-        client = urllib.urlopen(url)
-        data = client.read()
-        client.close()
-        return ElementTree.fromstring(data)
+    xbmc.log(msg=message, level=severity)
 
 
 class Main:
-
-
     def __init__(self):
-        self.initialise()
-        if self.tvfanart == 'true':
-            self.download_tvfanart()
-        else:
-            log('TV fanart disabled, skipping')
-        if self.moviefanart == 'true':
-            self.download_moviefanart()
+        if self.initialise():
+            if not self.mediatype == '':
+                if not self.medianame == '':
+                    self.solo_mode(self.mediatype, self.medianame)
+                else:
+                    if self.mediatype == 'tvshow':
+                        self.Media_listing('TVShows')
+                        self.download_fanart(self.Medialist, self.tv_providers)
+                    elif self.mediatype == 'movie':
+                        self.Media_listing('Movies')
+                        self.download_fanart(self.Medialist, 
self.movie_providers)
+                    elif self.mediatype == 'artist':
+                        log('Music fanart not yet implemented', xbmc.LOGNOTICE)
+            else:
+                if self.tvfanart == 'true':
+                    self.Media_listing('TVShows')
+                    self.download_fanart(self.Medialist, self.tv_providers)
+                else:
+                    log('TV fanart disabled, skipping', xbmc.LOGINFO)
+                if self.moviefanart == 'true':
+                    self.Media_listing('Movies')
+                    self.download_fanart(self.Medialist, self.movie_providers)
+                else:
+                    log('Movie fanart disabled, skipping', xbmc.LOGINFO)
         else:
-            log('Movie fanart disabled, skipping')
+            log('Initialisation error, script aborting', xbmc.LOGERROR)
         self.cleanup()
 
 
     ### load settings and initialise needed directories
     def initialise(self):
-        self.getbackdrops = getBackdrops()
+        self.setup_providers()
         self.fanart_count = 0
+        self.current_fanart = 0
         self.moviefanart = __addon__.getSetting("moviefanart")
         self.tvfanart = __addon__.getSetting("tvfanart")
         self.dialog = xbmcgui.DialogProgress()
         self.dialog.create(__addonname__, __language__(36003))
         addondir = xbmc.translatePath('special://profile/addon_data/%s' % 
__addonid__)
         self.tempdir = os.path.join(addondir, 'temp')
+        self.mediatype = ''
+        self.medianame = ''
+        for item in sys.argv:
+            match = re.search("mediatype=(.*)" , item)
+            if match:
+                self.mediatype = match.group(1)
+                if self.mediatype == 'tvshow' or self.mediatype == 'movie' or 
self.mediatype == 'artist':
+                    pass
+                else:
+                    log('Error: invalid mediatype, must be one of movie, 
tvshow or artist', xbmc.LOGERROR)
+                    return False
+            else:
+                pass
+            match = re.search("medianame=" , item)
+            if match:
+                self.medianame = item.replace( "medianame=" , "" )
+            else:
+                pass
         try:
             if not xbmcvfs.exists(self.tempdir):
                 if not xbmcvfs.exists(addondir):
@@ -95,10 +96,12 @@ class Main:
                 xbmcvfs.mkdir(self.tempdir)
                 log('Created temporary directory: %s' % self.tempdir)
         except:
-            log('Could not create temporary directory: %s' % self.tempdir)
+            log('Could not create temporary directory: %s' % self.tempdir, 
xbmc.LOGERROR)
+            return False
+        return True
 
 
-    ### clean up and 
+    ### clean up and
     def cleanup(self):
         if xbmcvfs.exists(self.tempdir):
             self.dialog.update(100, __language__(36004))
@@ -107,14 +110,14 @@ class Main:
                 tempfile = os.path.join(self.tempdir, x)
                 xbmcvfs.delete(tempfile)
                 if xbmcvfs.exists(tempfile):
-                    log('Error deleting temp file: %s' % tempfile)
+                    log('Error deleting temp file: %s' % tempfile, 
xbmc.LOGERROR)
             xbmcvfs.rmdir(self.tempdir)
             if xbmcvfs.exists(self.tempdir):
-                log('Error deleting temp directory: %s' % self.tempdir)
+                log('Error deleting temp directory: %s' % self.tempdir, 
xbmc.LOGERROR)
             else:
-                log('Deleted temp directory: %s' % self.tempdir)
+                log('Deleted temp directory: %s' % self.tempdir, 
xbmc.LOGNOTICE)
         ### log results and notify user
-        log('Finished: %s extrafanart downloaded' % self.fanart_count)
+        log('Finished: %s extrafanart downloaded' % self.fanart_count, 
xbmc.LOGNOTICE)
         summary_tmp = __language__(36009) + ': %s ' % self.fanart_count
         summary = summary_tmp + __language__(36010)
         self.dialog.close()
@@ -124,91 +127,54 @@ class Main:
     ### download a given image to a given destination
     def downloadimage(self, fanarturl, fanartpath, temppath):
         try:
-            urllib.urlretrieve(fanarturl, temppath)
+            url = fanarturl.replace(" ", "%20")
+            temp_file = open(temppath, "wb")
+            response = urllib2.urlopen(url)
+            temp_file.write(response.read())
+            temp_file.close()
+            response.close()
         except(socket.timeout):
-            log('Download timed out, skipping: %s' % fanarturl)
+            log('Download timed out, skipping: %s' % fanarturl, 
xbmc.LOGWARNING)
             self.failcount = self.failcount + 1
         except:
-            log('Download failed, skipping: %s' % fanarturl)
+            log('Download failed, skipping: %s' % fanarturl, xbmc.LOGWARNING)
             self.failcount = self.failcount + 1
         else:
             ### copy fanart from temp path to library
             xbmcvfs.copy(temppath, fanartpath)
             if not xbmcvfs.exists(fanartpath):
-                log('Error copying temp file to library: %s -> %s' % 
(temppath, fanartpath))
+                log('Error copying temp file to library: %s -> %s' % 
(temppath, fanartpath), xbmc.LOGERROR)
             else:
                 self.failcount = 0
-                log('Downloaded successfully: %s' % fanarturl)
+                log('Downloaded successfully: %s' % fanarturl, xbmc.LOGNOTICE)
                 self.fanart_count = self.fanart_count + 1
 
-
-    ### download all tv show fanart
-    def download_tvfanart(self):
-        self.processeditems = 0
-        self.TV_listing()
-        for currentshow in self.TVlist:
-            ### check if XBMC is shutting down
-            if xbmc.abortRequested == True:
-                log('XBMC shutting down, aborting')
-                break
-            ### check if script has been cancelled by user
-            if self.dialog.iscanceled():
-                self.dialog.close()
+    ### solo mode
+    def solo_mode(self, itemtype, itemname):
+        if itemtype == 'movie':
+            self.Media_listing('Movies')
+        elif itemtype == 'tvshow':
+            self.Media_listing('TVShows')
+        else:
+            log("Error: type must be one of 'movie' or 'tvshow', aborting", 
xbmc.LOGERROR)
+            return False
+        log('Retrieving fanart for: %s' % itemname)
+        for currentitem in self.Medialist:
+            if itemname == currentitem["name"]:
+                if itemtype == 'movie':
+                    self.Medialist = []
+                    self.Medialist.append(currentitem)
+                    self.download_fanart(self.Medialist, self.movie_providers)
+                if itemtype == 'tvshow':
+                    self.Medialist = []
+                    self.Medialist.append(currentitem)
+                    self.download_fanart(self.Medialist, self.tv_providers)
                 break
-            self.failcount = 0
-            self.show_path = currentshow["path"]
-            self.tvdbid = currentshow["id"]
-            self.show_name = currentshow["name"]
-            self.dialog.update(int(float(self.processeditems) / 
float(len(self.TVlist)) * 100), __language__(36005), self.show_name, '')
-            log('Processing show: %s' % self.show_name)
-            log('ID: %s' % self.tvdbid)
-            log('Path: %s' % self.show_path)
-            extrafanart_dir = os.path.join(self.show_path, 'extrafanart')
-            if not xbmcvfs.exists(extrafanart_dir):
-                xbmcvfs.mkdir(extrafanart_dir)
-                log('Created directory: %s' % extrafanart_dir)
-            try:
-                backdrops = self.getbackdrops.tvdb(self.tvdbid)
-            except:
-                log('Error getting data from TVDB, skipping')
-            else:
-                for fanarturl in backdrops:
-                    fanartfile = fanarturl.rsplit('/', 1)[1]
-                    temppath = os.path.join(self.tempdir, fanartfile)
-                    fanartpath = os.path.join(extrafanart_dir, fanartfile)
-                    if not xbmcvfs.exists(fanartpath):
-                        self.dialog.update(int(float(self.processeditems) / 
float(len(backdrops)) * 100), __language__(36006), self.show_name, fanarturl)
-                        self.downloadimage(fanarturl, fanartpath, temppath)
-            self.processeditems = self.processeditems + 1
-
-
-    ### get list of all tvshows and their imdbnumber from library
-    ### copied from script.logo-downloader, thanks to it's authors
-    def TV_listing(self):
-        json_query = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": 
"VideoLibrary.GetTVShows", "params": {"properties": ["file", "imdbnumber"], 
"sort": { "method": "label" } }, "id": 1}')
-        json_response = re.compile( "{(.*?)}", re.DOTALL ).findall(json_query)
-        self.TVlist = []
-        for tvshowitem in json_response:
-            findtvshowname = re.search( '"label":"(.*?)","', tvshowitem )
-            if findtvshowname:
-                tvshowname = ( findtvshowname.group(1) )
-                findpath = re.search( '"file":"(.*?)","', tvshowitem )
-                if findpath:
-                    path = (findpath.group(1))
-                    findimdbnumber = re.search( '"imdbnumber":"(.*?)","', 
tvshowitem )
-                    if findimdbnumber:
-                        imdbnumber = (findimdbnumber.group(1))
-                        TVshow = {}
-                        TVshow["name"] = tvshowname
-                        TVshow["id"] = imdbnumber
-                        TVshow["path"] = path
-                        self.TVlist.append(TVshow)
-
 
-    def download_moviefanart(self):
+    ### download media fanart
+    def download_fanart(self, media_list, providers):
         self.processeditems = 0
-        self.Movie_listing()
-        for currentmovie in self.Movielist:
+        for currentmedia in media_list:
             ### check if XBMC is shutting down
             if xbmc.abortRequested == True:
                 log('XBMC shutting down, aborting')
@@ -219,57 +185,148 @@ class Main:
                 break
             self.failcount = 0
             try:
-                self.movie_path = 
os.path.split(currentmovie["path"])[0].rsplit(' , ', 1)[1]
+                self.media_path = 
os.path.split(currentmedia["path"])[0].rsplit(' , ', 1)[1]
             except:
-                self.movie_path = os.path.split(currentmovie["path"])[0]
-            self.tmdbid = currentmovie["id"]
-            self.movie_name = currentmovie["name"]
-            self.dialog.update(int(float(self.processeditems) / 
float(len(self.Movielist)) * 100), __language__(36007), self.movie_name, '')
-            log('Processing movie: %s' % self.movie_name)
-            log('ID: %s' % self.tmdbid)
-            log('Path: %s' % self.movie_path)
-            extrafanart_dir = os.path.join(self.movie_path, 'extrafanart')
+                self.media_path = os.path.split(currentmedia["path"])[0]
+            self.media_id = currentmedia["id"]
+            self.media_name = currentmedia["name"]
+            self.dialog.update(int(float(self.processeditems) / 
float(len(media_list)) * 100.0), __language__(36005), self.media_name, '')
+            log('Processing media: %s' % self.media_name)
+            log('ID: %s' % self.media_id)
+            log('Path: %s' % self.media_path)
+            extrafanart_dir = os.path.join(self.media_path, 'extrafanart')
             if not xbmcvfs.exists(extrafanart_dir):
                 xbmcvfs.mkdir(extrafanart_dir)
-                log('Created directory: %s' % extrafanart_dir)
-            if self.tmdbid == '':
-                log('No TMDB ID found, skipping')
-            else:
-                try:
-                    backdrops = self.getbackdrops.tmdb(self.tmdbid)
-                except:
-                    log('Error getting data from TMDB, skipping')
+                if xbmcvfs.exists(extrafanart_dir):
+                    log('Created directory: %s' % extrafanart_dir, 
xbmc.LOGINFO)
                 else:
-                    for fanarturl in backdrops:
-                        fanartfilename = fanarturl.split('backdrops', 
1)[1].replace('/', '-').lstrip('-')
-                        temppath = os.path.join(self.tempdir, fanartfilename)
-                        fanartpath = os.path.join(extrafanart_dir, 
fanartfilename)
-                        if not xbmcvfs.exists(fanartpath):
-                            self.dialog.update(int(float(self.processeditems) 
/ float(len(backdrops)) * 100), __language__(36008), self.movie_name, fanarturl)
-                            self.downloadimage(fanarturl, fanartpath, temppath)
+                    log('Error creating directory, skipping: %s' % 
extrafanart_dir, xbmc.LOGERROR)
+                    break
+            if self.media_id == '':
+                log('%s: No ID found, skipping' % self.media_name, 
xbmc.LOGNOTICE)
+            else:
+                for provider in providers:
+                    try:
+                        backdrops = provider.get_image_list(self.media_id)
+                    except:
+                        log('Error getting data from %s, skipping' % 
provider.name, xbmc.LOGERROR)
+                    else:
+                        self.current_fanart = 0
+                        for fanarturl in backdrops:
+                            ### check if script has been cancelled by user
+                            if self.dialog.iscanceled():
+                                self.dialog.close()
+                                break
+                            fanartfile = provider.get_filename(fanarturl)
+                            temppath = os.path.join(self.tempdir, fanartfile)
+                            fanartpath = os.path.join(extrafanart_dir, 
fanartfile)
+                            self.current_fanart = self.current_fanart + 1
+                            if not xbmcvfs.exists(fanartpath):
+                                self.downloadimage(fanarturl, fanartpath, 
temppath)
+                                
self.dialog.update(int(float(self.current_fanart) / float(len(backdrops)) * 
100.0), __language__(36006), self.media_name, fanarturl)
+                            else:
+                                
self.dialog.update(int(float(self.current_fanart) / float(len(backdrops)) * 
100.0), __language__(36006), self.media_name, "")
             self.processeditems = self.processeditems + 1
 
 
-    ### get list of all movies and their imdbnumber from library
-    def Movie_listing(self):
-        json_query = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": 
"VideoLibrary.GetMovies", "params": {"properties": ["file", "imdbnumber"], 
"sort": { "method": "label" } }, "id": 1}')
+    ### get list of all tvshows and movies with their imdbnumber from library
+    ### copied from script.logo-downloader, thanks to it's authors
+    def Media_listing(self, media_type):
+        json_query = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": 
"VideoLibrary.Get%s", "params": {"properties": ["file", "imdbnumber"], "sort": 
{ "method": "label" } }, "id": 1}' % media_type)
         json_response = re.compile( "{(.*?)}", re.DOTALL ).findall(json_query)
-        self.Movielist = []
-        for movieitem in json_response:
-            findmoviename = re.search( '"label":"(.*?)","', movieitem )
-            if findmoviename:
-                moviename = ( findmoviename.group(1) )
-                findpath = re.search( '"file":"(.*?)","', movieitem )
+        self.Medialist = []
+        for mediaitem in json_response:
+            findmedianame = re.search( '"label":"(.*?)","', mediaitem )
+            if findmedianame:
+                medianame = ( findmedianame.group(1) )
+                findpath = re.search( '"file":"(.*?)","', mediaitem )
                 if findpath:
                     path = (findpath.group(1))
-                    findimdbnumber = re.search( '"imdbnumber":"(.*?)","', 
movieitem )
+                    findimdbnumber = re.search( '"imdbnumber":"(.*?)","', 
mediaitem )
                     if findimdbnumber:
                         imdbnumber = (findimdbnumber.group(1))
-                        Movie = {}
-                        Movie["name"] = moviename
-                        Movie["id"] = imdbnumber
-                        Movie["path"] = path
-                        self.Movielist.append(Movie)
+                        Media = {}
+                        Media["name"] = medianame
+                        Media["id"] = imdbnumber
+                        Media["path"] = path
+                        self.Medialist.append(Media)
+
+    def setup_providers(self):
+        self.movie_providers = []
+        self.tv_providers = []
+        self.music_providers = []
+
+        """
+        Setup provider for TheMovieDB.org
+        """
+        tmdb = Provider()
+        tmdb.name = 'TMDB'
+        tmdb.api_key = '4be68d7eab1fbd1b6fd8a3b80a65a95e'
+        tmdb.url = 
"http://api.themoviedb.org/2.1/Movie.imdbLookup/en/xml/%s/%s";
+        tmdb.re_pattern = '<image type="backdrop" url="(.*?)" size="original"'
+        tmdb.get_filename = lambda url: url.split('backdrops', 
1)[1].replace('/', '-').lstrip('-')
+
+        self.movie_providers.append(tmdb)
+
+        """
+        Setup provider for TheTVDB.com
+        """
+        tvdb = Provider()
+        tvdb.name = 'TVDB'
+        tvdb.api_key = '1A41A145E2DA0053'
+        tvdb.url = 'http://www.thetvdb.com/api/%s/series/%s/banners.xml'
+        tvdb.url_prefix = 'http://www.thetvdb.com/banners/'
+        tvdb.re_pattern = 
'<BannerPath>(?P<url>.*?)</BannerPath>\s+<BannerType>fanart</BannerType>'
+
+        self.tv_providers.append(tvdb)
+
+        """
+        Setup provider for fanart.tv - TV API
+        """
+        ftvt = Provider()
+        ftvt.name = 'fanart.tv - TV API'
+        ftvt.url = 'http://fanart.tv/api/fanart.php?id=%s&type=tvthumb'
+        ftvt.re_pattern = ''
+
+        #self.tv_providers.append(ftvt)
+
+        """
+        Setup provider for fanart.tv - Music API
+        """
+        ftvm = Provider()
+        ftvm.name = 'fanart.tv - Music API'
+        ftvm.url = 'http://fanart.tv/api/music.php?id=%s&type=background'
+        ftvm.re_pattern = '<background>(.*?)</background>'
+
+        #self.music_providers.append(ftvm)
+
+"""
+Provider Class
+
+Creates general structure for all fanart providers.  This will allow us to
+very easily add multiple providers for the same media type.
+"""
+class Provider:
+    def __init__(self):
+        self.name = ''
+        self.api_key = ''
+        self.url = ''
+        self.re_pattern = ''
+        self.url_prefix = ''
+        self.get_filename = lambda url: url.rsplit('/', 1)[1]
+
+    def _get_xml(self, url):
+        client = urllib2.urlopen(url)
+        data = client.read()
+        client.close()
+        return data
+
+    def get_image_list(self, media_id):
+        log(self.url % (self.api_key, media_id))
+        image_list = []
+        for i in re.finditer(self.re_pattern, self._get_xml(self.url % 
(self.api_key, media_id))):
+            image_list.append(self.url_prefix + i.group(1))
+        return image_list
 
 
 
diff --git 
a/script.extrafanartdownloader/resources/language/English/strings.xml 
b/script.extrafanartdownloader/resources/language/English/strings.xml
index b20d6e8..0c4af9a 100644
--- a/script.extrafanartdownloader/resources/language/English/strings.xml
+++ b/script.extrafanartdownloader/resources/language/English/strings.xml
@@ -5,10 +5,8 @@
     <string id="36002">Download tv fanart</string>
     <string id="36003">Checking for extrafanart</string>
     <string id="36004">Cleaning up</string>
-    <string id="36005">Checking for TV show extrafanart</string>
-    <string id="36006">Downloading TV show extrafanart</string>
-    <string id="36007">Checking for movie extrafanart</string>
-    <string id="36008">Downloading movie extrafanart</string>
+    <string id="36005">Checking for extrafanart</string>
+    <string id="36006">Downloading extrafanart</string>
     <string id="36009">Finished</string>
     <string id="36010">extrafanart downloaded</string>
 </strings>

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

Summary of changes:
 script.extrafanartdownloader/README                |   53 +++
 script.extrafanartdownloader/addon.xml             |   20 +-
 script.extrafanartdownloader/default.py            |  399 +++++++++++---------
 .../resources/language/English/strings.xml         |    6 +-
 4 files changed, 295 insertions(+), 183 deletions(-)
 create mode 100644 script.extrafanartdownloader/README


hooks/post-receive
-- 
Scripts

------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2d-oct
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to