The branch, eden has been updated
via c8b3d8e9b769a4983b53b59fc605f1e3631a04e8 (commit)
from 6b3867a3e5bb34f76363d535a5711f9f4245d471 (commit)
- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/scripts;a=commit;h=c8b3d8e9b769a4983b53b59fc605f1e3631a04e8
commit c8b3d8e9b769a4983b53b59fc605f1e3631a04e8
Author: ronie <[email protected]>
Date: Tue Feb 28 21:01:14 2012 +0100
[script.artistslideshow] -v1.2.0
added ability to use local or remote images
diff --git a/script.artistslideshow/README.txt
b/script.artistslideshow/README.txt
index c793e7b..aad07f3 100644
--- a/script.artistslideshow/README.txt
+++ b/script.artistslideshow/README.txt
@@ -1,6 +1,57 @@
-
-How to use this addon in your skin:
-
+-----How to use this addon:
+
+You must have a compatible skin (or update your skin using the instructions
below).
+
+There are three groupings of settings: Download, Slideshow, and Advanced.
+
+Download
+-Download images from last.fm (default true)
+ (self expanitory)
+-Download images from htbackdrops.com (default false)
+ (self expanitory)
+-Minimal image width and height: (default 0,0)
+ any images smaller than the set dimensions will not be downloaded.
+-Download only 16:9 images: (default false)
+ will discard any images that aren't really, really close to a 16:9 aspect
ratio.
+-Download additional artist info: (default false)
+ includes information like the artist's bio and artists similar to the one to
which you are
+ listening. includes option to select download language. skin must support
this extra
+ information, or nothing will be displayed.
+
+Slideshow
+-Local artist folder: (default none)
+ path to a directory that has artist images. Images must be organized in
artist/extrafanart/
+-Fallback slideshow folder: (default none)
+ path to a directory of images that should be used if no local or remote
images can be found.
+-Priority: (default remote first)
+ three options: remote first, local first, both
+ remote first will try and download images from remote sites. if none found
will use local
+ images. if none found will use fallback slideshow
+ local first will use local images. if none found will try and download
remote images. if none
+ found will use fallback slideshow
+ both will check for local images first. if they exist the downloaded images
will be placed in
+ the same directory as the local images. if not remote images will be stored
in normal cache dir.
+-Override slideshow folder: (default none)
+ path to a directory of images that should be used intead of artist artwork.
With this set no
+ artwork will ever be downloaded.
+-Refresh slideshow before all downloads complete: (default false)
+ by default the add-on shows the first image downloaded and then doesn't show
anymore until the
+ all the downloads are done. if set to true, the slideshow will refresh after
every x seconds
+ instead of after all the images are downloaded.
+-Minimum time between refresh: (default 20)
+ if the above setting is enabled, this allows the user to change the period of
time between
+ refreshes of the image directory during downloads
+
+Advanced
+-Limit size of download cache: (default false)
+ if enabled, the download cache will be trimmed (oldest first) to keep the
size below the specified
+ minimum
+-Maximum cache size (in megabytes): (default 256)
+ if Limit size of download cache is set to true, this allows the user to
specify the maximum size
+ of the cache
+
+
+-----How to use this addon in your skin:
In MusicVisualisation.xml:
@@ -29,7 +80,6 @@ In MusicVisualisation.xml:
<randomize>true</randomize>
<animation effect="fade" start="0" end="100"
time="300">Visible</animation>
<animation effect="fade" start="100" end="0"
time="300">Hidden</animation>
-
<visible>IsEmpty(Window(Visualisation).Property(ArtistSlideshowRefresh))</visible>
</control>
@@ -40,26 +90,25 @@ this will keep the script running all the time.
The script provides these properties to the skin:
-- Window(Visualisation).Property(ArtistSlideshow)
-This is the path to the directory containing the downloaded images for the
currently playing artist
-
-- Window(Visualisation).Property(ArtistSlideshowRefresh)
-This can be used to fade out/fade in the slideshow when the path is refreshed.
-The path will refresh after all images for a certain artist have been
downloaded.
-This is needed since xbmc will not automatically pick up any new images after
the multiimage control has been loaded.
+Window(Visualisation).Property(ArtistSlideshow)
+ This is the path to the directory containing the downloaded images for the
currently playing
+ artist
-- Window(Visualisation).Property(ArtistSlideshowRunning)
-This one is used internally by the script to check if it is already running.
-There's no need to use this property in your skin.
+Window(Visualisation).Property(ArtistSlideshowRefresh)
+ DEPRECIATED. No longer needed as of version 1.2
+ There is no harm if you leave it in the skin, but you should remove it when
you have a chance.
-- Window(Visualisation).Property(ArtistSlideshow.ArtistBiography)
-Artist biography from last.fm
+Window(Visualisation).Property(ArtistSlideshowRunning)
+ This one is used internally by the script to check if it is already running.
+ There's no need to use this property in your skin.
-- Window(Visualisation).Property(ArtistSlideshow.%d.SimilarName)
-- Window(Visualisation).Property(ArtistSlideshow.%d.SimilarThumb)
-Similar artists
+Window(Visualisation).Property(ArtistSlideshow.ArtistBiography)
+ Artist biography from last.fm
-- Window(Visualisation).Property(ArtistSlideshow.%d.AlbumName)
-- Window(Visualisation).Property(ArtistSlideshow.%d.AlbumThumb)
-Albums by the artist
+Window(Visualisation).Property(ArtistSlideshow.%d.SimilarName)
+Window(Visualisation).Property(ArtistSlideshow.%d.SimilarThumb)
+ Similar artists
+Window(Visualisation).Property(ArtistSlideshow.%d.AlbumName)
+Window(Visualisation).Property(ArtistSlideshow.%d.AlbumThumb)
+ Albums by the artist
\ No newline at end of file
diff --git a/script.artistslideshow/addon.xml b/script.artistslideshow/addon.xml
index 97232fc..1097af9 100644
--- a/script.artistslideshow/addon.xml
+++ b/script.artistslideshow/addon.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="script.artistslideshow" name="Artist Slideshow" version="1.1.5"
provider-name="ronie">
+<addon id="script.artistslideshow" name="Artist Slideshow" version="1.2.0"
provider-name="ronie/kyleejohnson (pkscuot)">
<requires>
<import addon="xbmc.python" version="2.0"/>
<import addon="script.module.elementtree" version="1.2.7"/>
@@ -9,7 +9,7 @@
</extension>
<extension point="xbmc.addon.metadata">
<summary>Download images and additional info of the currently
playing artist</summary>
- <description>Addon to download images and additional
information from Last.FM and htbackdrops.com of the currently playing artist.
The images and info can be used by the skin to create a slideshow for the
artist being listened to.</description>
+ <description>Addon to download images and additional
information from Last.FM and htbackdrops.com of the currently playing artist.
The images, along with local artists' images, and info can be used by the skin
to create a slideshow for the artist being listened to.</description>
<platform>all</platform>
</extension>
</addon>
diff --git a/script.artistslideshow/changelog.txt
b/script.artistslideshow/changelog.txt
index 24f2016..273ae7a 100644
--- a/script.artistslideshow/changelog.txt
+++ b/script.artistslideshow/changelog.txt
@@ -1,3 +1,13 @@
+v1.2.0
+- added ability to use local or remote images
+- added priority image control to use local first, remote first, or both
+- added option to restrict downloads to 16:9 images
+- added option to have slideshow refresh after every image download or after x
seconds
+- added option for override folder that will be showed instead of artists
images
+- updated logic to refresh images after all are downloaded
+- fixed potential script crash if remote sites unavailable
+- experimental support for limiting size of cache folder
+
v1.1.5
- blank window property a little longer
diff --git a/script.artistslideshow/default.py
b/script.artistslideshow/default.py
index f0568e0..5e87d4c 100644
--- a/script.artistslideshow/default.py
+++ b/script.artistslideshow/default.py
@@ -9,13 +9,14 @@
# * Last.fm: http://www.last.fm/
# * htbackdrops: http://www.htbackdrops.com/
-import urllib, re, os, sys, time, unicodedata, socket
+import urllib, re, os, sys, time, unicodedata, socket, shutil
import xbmc, xbmcgui, xbmcaddon, xbmcvfs
from elementtree import ElementTree as xmltree
__addon__ = xbmcaddon.Addon()
__addonname__ = __addon__.getAddonInfo('id')
__addonversion__ = __addon__.getAddonInfo('version')
+__addonpath__ = __addon__.getAddonInfo('path')
socket.setdefaulttimeout(10)
@@ -112,27 +113,33 @@ class Main:
if xbmc.getInfoLabel( "Window(12006).Property(ArtistSlideshowRunning)"
) == "True":
log('script already running')
else:
+ self.LastCacheTrim = 0
self.WINDOW.setProperty("ArtistSlideshowRunning", "True")
if xbmc.Player().isPlayingAudio() == False:
log('no music playing')
if self.DAEMON == "False":
self.WINDOW.clearProperty("ArtistSlideshowRunning")
+ elif(not self.OVERRIDEPATH == ''):
+ self.WINDOW.setProperty("ArtistSlideshow", self.OVERRIDEPATH)
else:
log('first song started')
time.sleep(0.2) # it may take some time for xbmc to read tag
info after playback started
- self._start_download()
- while (not xbmc.abortRequested):
+ self._use_correct_artwork()
+ self._trim_cache()
+ while (not xbmc.abortRequested and self.OVERRIDEPATH == ''):
time.sleep(0.5)
if xbmc.getInfoLabel(
"Window(12006).Property(ArtistSlideshowRunning)" ) == "True":
if xbmc.Player().isPlayingAudio() == True:
currentname =
xbmc.Player().getMusicInfoTag().getArtist()
if self.NAME != currentname:
- log('new artist playing, start download')
self._clear_properties()
- self._start_download()
- elif not self.DownloadedAllImages:
- log('same artist playing, continue download')
- self._start_download()
+ self.UsingFallback = False
+ self._use_correct_artwork()
+ self._trim_cache()
+ elif(not (self.DownloadedAllImages or
self.UsingFallback)):
+ if(not (self.LocalImagesFound and self.PRIORITY ==
'1')):
+ log('same artist playing, continue download')
+ self._use_correct_artwork()
else:
time.sleep(1) # doublecheck if playback really stopped
if xbmc.Player().isPlayingAudio() == False:
@@ -142,7 +149,34 @@ class Main:
self._clear_properties()
break
-
+
+ def _use_correct_artwork( self ):
+ if(self.PRIORITY == '1' and not self.LOCALARTISTPATH == ''):
+ log('looking for local artwork')
+ self._get_local_images()
+ if(not self.LocalImagesFound):
+ log('no local artist artwork found, start download')
+ self._start_download()
+ elif(self.PRIORITY == '2' and not self.LOCALARTISTPATH == ''):
+ log('looking for local artwork')
+ self._get_local_images()
+ log('start download')
+ self._start_download()
+ else:
+ log('start download')
+ self._start_download()
+ if(not (self.CachedImagesFound or self.ImageDownloaded)):
+ log('no remote artist artwork found, looking for local
artwork')
+ self._get_local_images()
+
+ if(not (self.LocalImagesFound or self.CachedImagesFound or
self.ImageDownloaded)):
+ if (not self.FALLBACKPATH == ''):
+ log('no images found for artist, using fallback slideshow')
+ log('fallbackdir = ' +self.FALLBACKPATH)
+ self.UsingFallback = True
+ self.WINDOW.setProperty("ArtistSlideshow", self.FALLBACKPATH)
+
+
def _parse_argv( self ):
try:
params = dict( arg.split( "=" ) for arg in sys.argv[ 1 ].split(
"&" ) )
@@ -154,6 +188,8 @@ class Main:
def _get_settings( self ):
+ self.LASTFM = __addon__.getSetting( "lastfm" )
+ self.HTBACKDROPS = __addon__.getSetting( "htbackdrops" )
try:
self.minwidth = int(__addon__.getSetting( "minwidth" ))
except:
@@ -162,8 +198,7 @@ class Main:
self.minheight = int(__addon__.getSetting( "minheight" ))
except:
self.minheight = 0
- self.LASTFM = __addon__.getSetting( "lastfm" )
- self.HTBACKDROPS = __addon__.getSetting( "htbackdrops" )
+ self.HDASPECTONLY = __addon__.getSetting( "hd_aspect_only" )
self.ARTISTINFO = __addon__.getSetting( "artistinfo" )
self.LANGUAGE = __addon__.getSetting( "language" )
for language in LANGUAGES:
@@ -171,10 +206,31 @@ class Main:
self.LANGUAGE = language[1]
log('language = %s' % self.LANGUAGE)
break
+ self.LOCALARTISTPATH = __addon__.getSetting( "local_artist_path" )
+ self.PRIORITY = __addon__.getSetting( "priority" )
+ self.FALLBACKPATH = __addon__.getSetting( "fallback_path" )
+ self.OVERRIDEPATH = __addon__.getSetting( "slideshow_path" )
+ self.REFRESHEVERYIMAGE = __addon__.getSetting( "refresh_every_image" )
+ try:
+ self.minrefresh = int(__addon__.getSetting( "min_refresh" ))
+ except:
+ self.minrefresh = 20
+ self.RESTRICTCACHE = __addon__.getSetting( "restrict_cache" )
+ try:
+ self.maxcachesize = int(__addon__.getSetting( "max_cache_size" ))
* 1000000
+ except:
+ self.maxcachesize = 1024 * 1000000
+
def _init_vars( self ):
self.WINDOW = xbmcgui.Window( 12006 )
self.NAME = ''
+ self.LocalImagesFound = False
+ self.CachedImagesFound = False
+ self.ImageDownloaded = False
+ self.DownloadedAllImages = False
+ self.UsingFallback = False
+ self.BlankDir = xbmc.translatePath('%s/resources/blank/' % (
__addonpath__ ))
LastfmApiKey = 'fbd57a1baddb983d1848a939665310f6'
HtbackdropsApiKey = '96d681ea0dcb07ad9d27a347e64b652a'
self.LastfmURL =
'http://ws.audioscrobbler.com/2.0/?autocorrect=1&api_key=' + LastfmApiKey
@@ -193,15 +249,42 @@ class Main:
self.DownloadedFirstImage = False
self.DownloadedAllImages = False
self.ImageDownloaded = False
- self.NAME = xbmc.Player().getMusicInfoTag().getArtist()
+ try:
+ self.NAME = xbmc.Player().getMusicInfoTag().getArtist()
+ except:
+ return
if len(self.NAME) == 0:
log('no artist name provided')
return
- CacheName = xbmc.getCacheThumbName(self.NAME).replace('.tbn', '')
- self.CacheDir =
xbmc.translatePath('special://profile/addon_data/%s/ArtistSlideshow/%s/' % (
__addonname__ , CacheName, ))
- checkDir(self.CacheDir)
+ if(self.PRIORITY == '2' and self.LocalImagesFound):
+ pass
+ #self.CacheDir was successfully set in _get_local_images
+ else:
+ CacheName = xbmc.getCacheThumbName(self.NAME).replace('.tbn', '')
+ self.CacheDir =
xbmc.translatePath('special://profile/addon_data/%s/ArtistSlideshow/%s/' % (
__addonname__ , CacheName, ))
+ checkDir(self.CacheDir)
log('cachedir = %s' % self.CacheDir)
- files = os.listdir(self.CacheDir)
+
+ success = False
+ attempts = 0
+ while( not success ):
+ if( self._playback_stopped_or_changed() ):
+ return
+ try:
+ files = os.listdir(self.CacheDir)
+ except OSError as (errno, strerror):
+ if( errno == 2 or errno == 3):
+ checkDir( self.CacheDir )
+ else:
+ log( 'error: %s %s' % (errno, strerror) )
+ time.sleep(10)
+ success = False
+ attempts = attmepts + 1
+ if( attempts > 3 ):
+ return
+ else:
+ success = True
+
for file in files:
if file.endswith('tbn'):
self.CachedImagesFound = True
@@ -225,46 +308,133 @@ class Main:
lastfmlist.extend(htbackdropslist)
log('downloading images')
for url in lastfmlist:
- if xbmc.Player().isPlayingAudio() == True:
- currentname = xbmc.Player().getMusicInfoTag().getArtist()
- if self.NAME != currentname:
- return
- else:
+ if( self._playback_stopped_or_changed() ):
return
-
path = getCacheThumbName(url, self.CacheDir)
if not xbmcvfs.exists(path):
- download(url, path)
- log('downloaded %s to %s' % (url, path) )
- self.ImageDownloaded=True
+ try:
+ download(url, path)
+ except:
+ log ('site unreachable')
+ else:
+ log('downloaded %s to %s' % (url, path) )
+ self.ImageDownloaded=True
if self.ImageDownloaded:
if not self.DownloadedFirstImage:
log('downloaded first image')
self.DownloadedFirstImage = True
+ last_time = 0
if not self.CachedImagesFound:
self.WINDOW.setProperty("ArtistSlideshow",
self.CacheDir)
if self.ARTISTINFO == "true":
self._get_artistinfo()
-
+ elif(self.REFRESHEVERYIMAGE == 'true' and (time.time() -
last_time > self.minrefresh)):
+ self._refresh_image_directory()
+ last_time = time.time()
+
if self.ImageDownloaded:
log('finished downloading images')
self.DownloadedAllImages = True
- self.WINDOW.setProperty("ArtistSlideshowRefresh", "True")
- time.sleep(0.3)
- self.WINDOW.clearProperty("ArtistSlideshow")
- time.sleep(1)
- self.WINDOW.setProperty("ArtistSlideshow", self.CacheDir)
- self.WINDOW.clearProperty("ArtistSlideshowRefresh")
+ self._refresh_image_directory()
if not self.ImageDownloaded:
log('no images downloaded')
self.DownloadedAllImages = True
if not self.CachedImagesFound:
+ log('clearing ArtistSlideshow property')
self.WINDOW.clearProperty("ArtistSlideshow")
if self.ARTISTINFO == "true":
self._get_artistinfo()
+ def _refresh_image_directory( self ):
+ self.WINDOW.setProperty("ArtistSlideshow", self.BlankDir)
+ time.sleep(2)
+ self.WINDOW.setProperty("ArtistSlideshow", self.CacheDir)
+
+
+ def _playback_stopped_or_changed( self ):
+ if xbmc.Player().isPlayingAudio() == True:
+ currentname = xbmc.Player().getMusicInfoTag().getArtist()
+ if self.NAME != currentname:
+ return True
+ else:
+ return True
+
+
+ def _get_local_images( self ):
+ self.LocalImagesFound = False
+ try:
+ self.NAME = xbmc.Player().getMusicInfoTag().getArtist()
+ except:
+ return
+ if len(self.NAME) == 0:
+ log('no artist name provided')
+ return
+ self.CacheDir = self.LOCALARTISTPATH + self.NAME + '/extrafanart'
+ log('cachedir = %s' % self.CacheDir)
+ try:
+ files = os.listdir(self.CacheDir)
+ except OSError:
+ files = []
+ for file in files:
+ if(file.endswith('tbn') or file.endswith('jpg') or
file.endswith('jpeg') or file.endswith('gif') or file.endswith('png')):
+ self.LocalImagesFound = True
+
+ if self.LocalImagesFound:
+ log('local images found')
+ self.WINDOW.setProperty("ArtistSlideshow", self.CacheDir)
+ if self.ARTISTINFO == "true":
+ self._get_artistinfo()
+
+
+ def _trim_cache( self ):
+ if( self.RESTRICTCACHE == 'true' and not self.PRIORITY == '2' ):
+ now = time.time()
+ cache_trim_delay = 0 #delay time is in seconds
+ if( now - self.LastCacheTrim > cache_trim_delay ):
+ log(' trimming the cache down to %s bytes' % self.maxcachesize
)
+ cache_root = xbmc.translatePath(
'special://profile/addon_data/%s/ArtistSlideshow/' % __addonname__ )
+ os.chdir( cache_root )
+ folders = os.listdir( cache_root )
+
+ success = False
+ while( not success ):
+ if( self._playback_stopped_or_changed() ):
+ return
+ try:
+ folders.sort( key=lambda x: os.path.getmtime(x),
reverse=True )
+ except OSerror:
+ time.sleep(10)
+ success = False
+ else:
+ success = True
+
+ cache_size = 0
+ first_folder = True
+ for folder in folders:
+ cache_size = cache_size + self._get_folder_size(
cache_root + folder )
+ log( 'looking at folder %s cache size is now %s' %
(folder, cache_size) )
+ if( cache_size > self.maxcachesize and not first_folder ):
+ log( 'attempting to delete folder %s' % folder )
+ try:
+ shutil.rmtree( cache_root + folder, True )
+ log( '%s successfully deleted' % folder )
+ except:
+ log( '%s was not deleted due to an error' % folder
)
+ first_folder = False
+ self.LastCacheTrim = now
+
+
+ def _get_folder_size( self, start_path ):
+ total_size = 0
+ for dirpath, dirnames, filenames in os.walk( start_path ):
+ for f in filenames:
+ fp = os.path.join( dirpath, f )
+ total_size += os.path.getsize( fp )
+ return total_size
+
+
def _get_images( self, site ):
if site == "lastfm":
self.info = 'artist.getImages'
@@ -332,7 +502,12 @@ class Main:
width = element.attrib.get('width')
height = element.attrib.get('height')
if ( int(width) >= self.minwidth ) and (
int(height) >= self.minheight ):
- data.append(element.text)
+ if(self.HDASPECTONLY == 'true'):
+ aspect_ratio = int(width)/int(height)
+ if(aspect_ratio > 1.770 and aspect_ratio <
1.787):
+ data.append(element.text)
+ else:
+ data.append(element.text)
elif site == "htbackdrops":
if element.tag == "id":
data.append(self.HtbackdropsDownloadURL + str(
element.text ) + '/fullsize')
@@ -387,7 +562,6 @@ class Main:
def _clear_properties( self ):
if not xbmc.getInfoLabel(
"Window(12006).Property(ArtistSlideshowRunning)" ) == "True":
self.WINDOW.clearProperty("ArtistSlideshow")
- self.WINDOW.clearProperty("ArtistSlideshowRefresh")
self.WINDOW.clearProperty( "ArtistSlideshow.ArtistBiography" )
for count in range( 50 ):
self.WINDOW.clearProperty( "ArtistSlideshow.%d.SimilarName" % (
count ) )
diff --git a/script.artistslideshow/resources/language/English/strings.xml
b/script.artistslideshow/resources/language/English/strings.xml
index e4a8ffa..8ebe5d5 100644
--- a/script.artistslideshow/resources/language/English/strings.xml
+++ b/script.artistslideshow/resources/language/English/strings.xml
@@ -46,11 +46,25 @@
<string id="30246">Vietnamese</string>
<string id="30247">Farsi</string>
<!-- Settings -->
- <string id="32000">General</string>
+ <string id="32000">Download</string>
<string id="32001">Download images from last.fm</string>
<string id="32002">Download images from htbackdrops.com</string>
<string id="32003">Minimal image width</string>
<string id="32004">Minimal image height</string>
<string id="32005">Download additional artist information</string>
- <string id="32006">Preferred language for artist information</string>
+ <string id="32006"> Preferred language for artist information</string>
+ <string id="32007">Download only 16:9 images</string>
+ <string id="32100">Slideshow</string>
+ <string id="32101">Local artist folder</string>
+ <string id="32102"> Image Priority</string>
+ <string id="32103">Fallback slideshow folder</string>
+ <string id="32104">Override slideshow folder</string>
+ <string id="32105">Refresh slideshow before all downloads complete</string>
+ <string id="32106"> Minimum time between refresh (in seconds)</string>
+ <string id="32901">Use remote images first</string>
+ <string id="32902">Use local images first</string>
+ <string id="32903">Use both local and remote images</string>
+ <string id="32200">Advanced</string>
+ <string id="32201">Limit size of download cache</string>
+ <string id="32202"> Maximum cache size (in megabytes)</string>
</strings>
diff --git a/script.artistslideshow/resources/settings.xml
b/script.artistslideshow/resources/settings.xml
index 476f0c5..a9d9f96 100644
--- a/script.artistslideshow/resources/settings.xml
+++ b/script.artistslideshow/resources/settings.xml
@@ -1,11 +1,25 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<settings>
- <category label="30100">
+ <category label="32000">
<setting id="lastfm" type="bool" label="32001" default="true"/>
<setting id="htbackdrops" type="bool" label="32002" default="false"/>
<setting id="minwidth" type="text" label="32003" default="0"/>
<setting id="minheight" type="text" label="32004" default="0"/>
+ <setting id="hd_aspect_only" type="bool" label="32007"
default="false"/>
<setting id="artistinfo" type="bool" label="32005" default="false"/>
<setting id="language" type="enum" label="32006" enable="eq(-1,true)"
default="11"
lvalues="30201|30202|30203|30204|30205|30206|30207|30208|30209|30210|30211|30212|30213|30247|30214|30215|30216|30217|30218|30219|30220|30221|30222|30224|30225|30226|30227|30228|30229|30230|30232|30233|30234|30235|30236|30237|30238|30239|30240|30242|30243|30244|30245|30246"/>
</category>
+ <category label="32100">
+ <setting id="local_artist_path" type="folder" label="32101"
default=""/>
+ <setting id="priority" type="enum" label="32102"
lvalues="32901|32902|32903" default="0"/>
+ <setting id="fallback_path" type="folder" label="32103" default=""/>
+ <setting id="slideshow_path" type="folder" label="32104" default=""/>
+ <setting type="sep" />
+ <setting id="refresh_every_image" type="bool" label="32105"
default="false"/>
+ <setting id="min_refresh" type="text" label="32106"
enable="eq(-1,true)" default="20" />
+ </category>
+ <category label="32200">
+ <setting id="restrict_cache" type="bool" label="32201" default="false"
/>
+ <setting id="max_cache_size" label="32202" type="labelenum"
values="256|512|768|1024|2048|3072|4096" enable="eq(-1,true)" default="1024" />
+ </category>
</settings>
-----------------------------------------------------------------------
Summary of changes:
script.artistslideshow/README.txt | 93 ++++++--
script.artistslideshow/addon.xml | 4 +-
script.artistslideshow/changelog.txt | 10 +
script.artistslideshow/default.py | 242 +++++++++++++++++---
.../resources/blank/black-16x9.jpg | Bin 0 -> 3196 bytes
.../resources/language/English/strings.xml | 18 ++-
script.artistslideshow/resources/settings.xml | 16 ++-
7 files changed, 322 insertions(+), 61 deletions(-)
create mode 100644 script.artistslideshow/resources/blank/black-16x9.jpg
hooks/post-receive
--
Scripts
------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons