The branch, eden has been updated
via 5c28dd15f52556ab309d7455471b9e9184ab1c58 (commit)
from f9286cbf79f7caf6eea11fb3ca506ac1c62a6d67 (commit)
- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/scripts;a=commit;h=5c28dd15f52556ab309d7455471b9e9184ab1c58
commit 5c28dd15f52556ab309d7455471b9e9184ab1c58
Author: Martijn Kaijser <[email protected]>
Date: Fri Aug 24 21:58:45 2012 +0200
[script.artistslideshow] -v1.4.4
diff --git a/script.artistslideshow/addon.xml b/script.artistslideshow/addon.xml
index 55bd58d..0b7a9da 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.4.2"
provider-name="ronie/kyleejohnson (pkscuot)">
+<addon id="script.artistslideshow" name="Artist Slideshow" version="1.4.4"
provider-name="ronie/kyleejohnson (pkscuot)">
<requires>
<import addon="xbmc.python" version="2.0"/>
<import addon="script.module.elementtree" version="1.2.7"/>
diff --git a/script.artistslideshow/changelog.txt
b/script.artistslideshow/changelog.txt
index 3167524..9916198 100644
--- a/script.artistslideshow/changelog.txt
+++ b/script.artistslideshow/changelog.txt
@@ -1,3 +1,11 @@
+v.1.4.4
+- fix for non-ascii characters in windows user name
+- fix for non-ascii characters in artist name
+- download notifications disabled by default with option to enable them
+
+v.1.4.3
+unreleased beta
+
v.1.4.2
- updated featured artist parsing to support radio streams
- updated featured artist parsing to support calls from external scripts
diff --git a/script.artistslideshow/default.py
b/script.artistslideshow/default.py
index c564c19..5dd1b4d 100644
--- a/script.artistslideshow/default.py
+++ b/script.artistslideshow/default.py
@@ -17,7 +17,7 @@ __addon__ = xbmcaddon.Addon()
__addonname__ = __addon__.getAddonInfo('id')
__addonversion__ = __addon__.getAddonInfo('version')
__addonpath__ = __addon__.getAddonInfo('path')
-__addonicon__ = xbmc.translatePath('%s/icon.png' % __addonpath__ )
+__addonicon__ = xbmc.translatePath('%s/icon.png' % __addonpath__
).decode("utf-8")
__language__ = __addon__.getLocalizedString
socket.setdefaulttimeout(10)
@@ -74,7 +74,7 @@ LANGUAGES = (
("Brazilian" , "pb", "32" ) )
def log(txt):
- message = 'script.artistslideshow: %s' % txt
+ message = 'script.artistslideshow: %s' % txt.encode("utf-8")
xbmc.log(msg=message, level=xbmc.LOGDEBUG)
def checkDir(path):
@@ -95,14 +95,12 @@ def cleanText(text):
text = re.sub('User-contributed text is available under the Creative
Commons By-SA License and may also be available under the GNU FDL.','',text)
return text.strip()
-def download(src, dst, dst2, display_dialog):
+def download(src, dst, dst2):
if (not xbmc.abortRequested):
- tmpname = xbmc.translatePath('special://profile/addon_data/%s/temp/%s'
% ( __addonname__ , xbmc.getCacheThumbName(src) ))
+ tmpname = xbmc.translatePath('special://profile/addon_data/%s/temp/%s'
% ( __addonname__ , xbmc.getCacheThumbName(src) )).decode("utf-8")
if xbmcvfs.exists(tmpname):
xbmcvfs.delete(tmpname)
global __last_time__
- # __last_time__ = 0
- # urllib.urlretrieve( src, tmpname, lambda nb, bs, fs: reporthook(nb,
bs, fs, display_dialog) )
urllib.urlretrieve( src, tmpname )
if os.path.getsize(tmpname) > 999:
log( 'copying file to transition directory' )
@@ -112,11 +110,6 @@ def download(src, dst, dst2, display_dialog):
else:
xbmcvfs.delete(tmpname)
-def reporthook( numblocks, blocksize, filesize, display_dialog ):
- if time.time() - __last_time__ > 3 and display_dialog:
- xbmc.executebuiltin('XBMC.Notification("' +
__language__(30300).encode("utf8") + '", "' +
__language__(30301).encode("utf8") + '", 20000, ' + __addonicon__ + ')')
- global __last_time__
- __last_time__ = time.time()
class Main:
def __init__( self ):
@@ -173,7 +166,7 @@ class Main:
self.TOTALARTISTS = len(artists)
self.MergedImagesFound = False
for artist in artists:
- log('current artist is %s' % artist)
+ log('current artist is %s' % artist.decode("utf-8"))
self.ARTISTNUM += 1
self.NAME = artist
if(self.PRIORITY == '1' and not self.LOCALARTISTPATH == ''):
@@ -245,7 +238,8 @@ class Main:
self.maxcachesize = int(__addon__.getSetting( "max_cache_size" ))
* 1000000
except:
self.maxcachesize = 1024 * 1000000
- if ( len ( __addon__.getSetting( "progress_path" ) ) > 0 ) and (
__addon__.getSetting( "show_progress" ) == "true" ):
+ self.NOTIFICATIONTYPE = __addon__.getSetting( "show_progress" )
+ if self.NOTIFICATIONTYPE == "2":
self.PROGRESSPATH = __addon__.getSetting( "progress_path" )
log('set progress path to %s' % self.PROGRESSPATH)
else:
@@ -280,9 +274,9 @@ class Main:
self.ImageDownloaded = False
self.DownloadedAllImages = False
self.UsingFallback = False
- self.BlankDir =
xbmc.translatePath('special://profile/addon_data/%s/transition' % __addonname__
)
- self.MergeDir =
xbmc.translatePath('special://profile/addon_data/%s/merge' % __addonname__ )
- self.InitDir = xbmc.translatePath('%s/resources/black' % __addonpath__
)
+ self.BlankDir =
xbmc.translatePath('special://profile/addon_data/%s/transition' % __addonname__
).decode("utf-8")
+ self.MergeDir =
xbmc.translatePath('special://profile/addon_data/%s/merge' % __addonname__
).decode("utf-8")
+ self.InitDir = xbmc.translatePath('%s/resources/black' % __addonpath__
).decode("utf-8")
LastfmApiKey = 'fbd57a1baddb983d1848a939665310f6'
HtbackdropsApiKey = '96d681ea0dcb07ad9d27a347e64b652a'
self.LastfmURL =
'http://ws.audioscrobbler.com/2.0/?autocorrect=1&api_key=' + LastfmApiKey
@@ -291,10 +285,10 @@ class Main:
def _make_dirs( self ):
- checkDir(xbmc.translatePath('special://profile/addon_data/%s' %
__addonname__ ))
- checkDir(xbmc.translatePath('special://profile/addon_data/%s/temp' %
__addonname__ ))
-
checkDir(xbmc.translatePath('special://profile/addon_data/%s/ArtistSlideshow' %
__addonname__ ))
-
checkDir(xbmc.translatePath('special://profile/addon_data/%s/transition' %
__addonname__ ))
+ checkDir(xbmc.translatePath('special://profile/addon_data/%s' %
__addonname__ ).decode("utf-8"))
+ checkDir(xbmc.translatePath('special://profile/addon_data/%s/temp' %
__addonname__ ).decode("utf-8"))
+
checkDir(xbmc.translatePath('special://profile/addon_data/%s/ArtistSlideshow' %
__addonname__ ).decode("utf-8"))
+
checkDir(xbmc.translatePath('special://profile/addon_data/%s/transition' %
__addonname__ ).decode("utf-8"))
def _start_download( self ):
@@ -303,8 +297,7 @@ class Main:
self.DownloadedAllImages = False
self.ImageDownloaded = False
self.FirstImage = True
- show_progress = True
- display_dialog = False
+ cached_image_info = False
min_refresh = 9.9
if len(self.NAME) == 0:
log('no artist name provided')
@@ -314,7 +307,7 @@ class Main:
#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, ))
+ self.CacheDir =
xbmc.translatePath('special://profile/addon_data/%s/ArtistSlideshow/%s/' % (
__addonname__ , CacheName, )).decode("utf-8")
checkDir(self.CacheDir)
log('cachedir = %s' % self.CacheDir)
@@ -325,6 +318,7 @@ class Main:
if self.CachedImagesFound:
log('cached images found')
+ cached_image_info = True
last_time = time.time()
if self.ARTISTNUM == 1:
self.WINDOW.setProperty("ArtistSlideshow", self.CacheDir)
@@ -338,22 +332,22 @@ class Main:
if xbmcvfs.exists( os.path.join( self.CacheDir, filename )
):
if time.time() - os.path.getmtime(filename) < 1209600:
log('cached %s found' % filename)
- show_progress = False
+ cached_image_info = True
else:
log('outdated %s found' % filename)
- show_progress = True
- if show_progress:
- if len ( self.PROGRESSPATH ) > 0:
+ cached_image_info = False
+ if self.NOTIFICATIONTYPE == "1":
+ self.WINDOW.setProperty("ArtistSlideshow", self.InitDir)
+ if not cached_image_info:
+ xbmc.executebuiltin('XBMC.Notification("' +
__language__(30300).encode("utf8") + '", "' +
__language__(30301).encode("utf8") + '", 5000, ' + __addonicon__ + ')')
+ elif self.NOTIFICATIONTYPE == "2":
+ if not cached_image_info:
self.WINDOW.setProperty("ArtistSlideshow",
self.PROGRESSPATH)
else:
- self.WINDOW.setProperty("ArtistSlideshow",
self.InitDir)
- display_dialog = True
+ self.WINDOW.setProperty("ArtistSlideshow",
self.InitDir)
else:
self.WINDOW.setProperty("ArtistSlideshow", self.InitDir)
- if display_dialog:
- xbmc.executebuiltin('XBMC.Notification("' +
__language__(30300).encode("utf8") + '", "' +
__language__(30301).encode("utf8") + '", 5000, ' + __addonicon__ + ')')
-
if self.LASTFM == "true":
lastfmlist = self._get_images('lastfm')
else:
@@ -375,7 +369,7 @@ class Main:
path2 = getCacheThumbName(url, self.BlankDir)
if not xbmcvfs.exists(path):
try:
- download(url, path, path2, display_dialog)
+ download(url, path, path2)
except:
log ('site unreachable')
else:
@@ -413,15 +407,15 @@ class Main:
if( not self._playback_stopped_or_changed() ):
if self.ARTISTNUM == 1:
self._refresh_image_directory()
+ if self.NOTIFICATIONTYPE == "1" and not cached_image_info:
+ xbmc.executebuiltin('XBMC.Notification("' +
__language__(30304).encode("utf8") + '", "' +
__language__(30305).encode("utf8") + '", 5000, ' + __addonicon__ + ')')
if self.TOTALARTISTS > 1:
self._merge_images()
- if( xbmc.getInfoLabel( self.ARTISTSLIDESHOW ) == self.BlankDir and
self.ARTISTNUM == 1):
+ if( xbmc.getInfoLabel( self.ARTISTSLIDESHOW ).decode("utf-8") ==
self.BlankDir and self.ARTISTNUM == 1):
self._wait( min_refresh )
if( not self._playback_stopped_or_changed() ):
self._refresh_image_directory()
self._clean_dir( self.BlankDir )
- if display_dialog:
- xbmc.executebuiltin('XBMC.Notification("' +
__language__(30304).encode("utf8") + '", "' +
__language__(30305).encode("utf8") + '", 5000, ' + __addonicon__ + ')')
if not self.ImageDownloaded:
log('no images downloaded')
@@ -430,7 +424,7 @@ class Main:
if self.ARTISTNUM == 1:
log('clearing ArtistSlideshow property')
self.WINDOW.setProperty("ArtistSlideshow", self.InitDir)
- if display_dialog:
+ if self.NOTIFICATIONTYPE == "1" and not cached_image_info:
xbmc.executebuiltin('XBMC.Notification("' +
__language__(30302).encode("utf8") + '", "' +
__language__(30303).encode("utf8") + '", 10000, ' + __addonicon__ + ')')
if( self.ARTISTINFO == "true" and not
self._playback_stopped_or_changed() ):
self._get_artistinfo()
@@ -460,7 +454,7 @@ class Main:
def _refresh_image_directory( self ):
- if( xbmc.getInfoLabel( self.ARTISTSLIDESHOW ) == self.BlankDir):
+ if( xbmc.getInfoLabel( self.ARTISTSLIDESHOW ).decode("utf-8") ==
self.BlankDir):
self.WINDOW.setProperty("ArtistSlideshow", self.CacheDir)
log( 'switching slideshow to ' + self.CacheDir )
else:
@@ -477,7 +471,7 @@ class Main:
featured_artist =
xbmc.Player().getMusicInfoTag().getTitle().replace('ft.','feat.').split('feat.')
elif( not xbmc.getInfoLabel( self.SKINARTIST ) == '' ):
artist = xbmc.getInfoLabel( self.SKINARTIST )
- log('current song title from skin is %s' % xbmc.getInfoLabel(
self.SKINTITLE ))
+ log('current song title from skin is %s' % xbmc.getInfoLabel(
self.SKINTITLE ).decode("utf-8"))
featured_artist = xbmc.getInfoLabel( self.SKINTITLE
).replace('ft.','feat.').split('feat.')
else:
artist = ''
@@ -499,7 +493,7 @@ class Main:
if len(self.NAME) == 0:
log('no artist name provided')
return
- self.CacheDir = self.LOCALARTISTPATH + self.NAME + '/' +
self.FANARTFOLDER
+ self.CacheDir = os.path.join( self.LOCALARTISTPATH, self.NAME,
self.FANARTFOLDER ).decode("utf-8")
log('cachedir = %s' % self.CacheDir)
try:
files = os.listdir(self.CacheDir)
@@ -535,7 +529,7 @@ class Main:
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__ )
+ cache_root = xbmc.translatePath(
'special://profile/addon_data/%s/ArtistSlideshow/' % __addonname__
).decode("utf-8")
os.chdir( cache_root )
folders = os.listdir( cache_root )
folders.sort( key=lambda x: os.path.getmtime(x), reverse=True )
@@ -566,10 +560,10 @@ class Main:
if site == "lastfm":
self.info = 'artist.getImages'
self.url = self.LastfmURL + '&method=artist.getImages&artist=' +
self.NAME.replace('&','%26').replace(' ','+')
- log( 'asking for images from: %s' %self.url )
+ log( 'asking for images from: %s' %self.url.decode("utf-8") )
elif site == "htbackdrops":
self.url = self.HtbackdropsQueryURL + '&keywords=' +
self.NAME.replace('&','%26').replace(' ','+') + '&dmin_w=' + str( self.minwidth
) + '&dmin_h=' + str( self.minheight )
- log( 'asking for images from: %s' %self.url )
+ log( 'asking for images from: %s' %self.url.decode("utf-8") )
images = self._get_data(site, 'images')
return images
@@ -607,7 +601,7 @@ class Main:
try:
xmldata = xmltree.parse(filename).getroot()
except:
- log('invalid local xml file for %s' % item)
+ log('invalid or missing local xml file for %s' % item)
return data
if item == "bio":
for element in xmldata.getiterator():
diff --git a/script.artistslideshow/resources/language/English/strings.xml
b/script.artistslideshow/resources/language/English/strings.xml
index bc8876d..b9deae2 100644
--- a/script.artistslideshow/resources/language/English/strings.xml
+++ b/script.artistslideshow/resources/language/English/strings.xml
@@ -72,7 +72,10 @@
<string id="32200">Advanced</string>
<string id="32201">Limit size of download cache</string>
<string id="32202"> Maximum cache size (in megabytes)</string>
- <string id="32203">Display progress images during first download</string>
- <string id="32204"> Progress images folder</string>
+ <string id="32203">Download notification type</string>
+ <string id="32204"> Custom notification images folder</string>
<string id="32205">Alternate name for local fanart folder</string>
+ <string id="32206">None</string>
+ <string id="32207">Text notifications</string>
+ <string id="32208">Custom images</string>
</strings>
diff --git a/script.artistslideshow/resources/language/French/strings.xml
b/script.artistslideshow/resources/language/French/strings.xml
index 3a7e8f0..a87348c 100644
--- a/script.artistslideshow/resources/language/French/strings.xml
+++ b/script.artistslideshow/resources/language/French/strings.xml
@@ -72,7 +72,10 @@
<string id="32200">Avancé</string>
<string id="32201">Limiter la taille du cache de téléchargement</string>
<string id="32202">Taille maximale du cache (en mégaoctets)</string>
- <string id="32203">Afficher progress images durant le premier
téléchargement</string>
- <string id="32204">Dossier Progress images</string>
+ <string id="32203">Type de notification durant le téléchargement</string>
+ <string id="32204">Dossier pour les images personnalisées de
notification</string>
<string id="32205">Nom alternatif pour le dossier des fanart
locaux</string>
+ <string id="32206">Aucune</string>
+ <string id="32207">Notifications texte</string>
+ <string id="32208">Images personnalisées</string>
</strings>
\ No newline at end of file
diff --git a/script.artistslideshow/resources/language/Portuguese
(Brazil)/strings.xml b/script.artistslideshow/resources/language/Portuguese
(Brazil)/strings.xml
index 66d54b4..0c30edf 100644
--- a/script.artistslideshow/resources/language/Portuguese (Brazil)/strings.xml
+++ b/script.artistslideshow/resources/language/Portuguese (Brazil)/strings.xml
@@ -46,33 +46,36 @@
<string id="30246">Vietnamese</string>
<string id="30247">Farsi</string>
<!-- Dialog Text -->
- <string id="30300">Downloading</string>
- <string id="30301">Downloading imagens do artista</string>
- <string id="30302">Nenhum Download efetuado</string>
+ <string id="30300">Tranferindo</string>
+ <string id="30301">Transferindo imagens do artista</string>
+ <string id="30302">Nenhuma Transferência efetuada</string>
<string id="30303">Não localizei imagens para este artista</string>
- <string id="30304">Download finalizado</string>
- <string id="30305">Foram efetuados downloads de todas as imagens</string>
+ <string id="30304">Transferência finalizada</string>
+ <string id="30305">Foram efetuadas transferências de todas as
imagens</string>
<!-- Settings -->
- <string id="32000">Download</string>
- <string id="32001">Download imagens do last.fm</string>
- <string id="32002">Download imagens do htbackdrops.com</string>
+ <string id="32000">Transferência</string>
+ <string id="32001">Transferência de imagens do last.fm</string>
+ <string id="32002">Transferência de imagens do htbackdrops.com</string>
<string id="32003">Largura mÃnima da imagem</string>
<string id="32004">Altura mÃnima da imagem</string>
- <string id="32005">Download de informações adicionais dos
artistas</string>
+ <string id="32005">Transferência de informações adicionais dos
artistas</string>
<string id="32006"> Linguagem Preferida para informações dos
artistas</string>
- <string id="32007">Download somente de imagens 16:9</string>
+ <string id="32007">Transferência somente de imagens 16:9</string>
<string id="32100">Slideshow</string>
<string id="32101">Pasta Artistas Locais</string>
<string id="32102"> Imagem Prioritária</string>
- <string id="32103">Pasta reserva slideshow</string>
- <string id="32104">Substituir pasta do slideshow</string>
+ <string id="32103">Pasta reserva para o slideshow</string>
+ <string id="32104">Pasta preferencial para o slideshow</string>
<string id="32901">Usar imagens remotas primeiro</string>
<string id="32902">Usar imagens locais primeiro</string>
<string id="32903">Usar imagens locais e remotas (ambas)</string>
<string id="32200">Avançado</string>
- <string id="32201">Tamanho Limite do cache para download</string>
+ <string id="32201">Tamanho Limite do cache para transferência</string>
<string id="32202"> Tamanho do cache máximo (em megabytes)</string>
- <string id="32203">Exibir imagens de progresso durante a primeira
transferência</string>
- <string id="32204"> Pasta de imagens Progresso</string>
- <string id="32205">Nome alternativo para a pasta fanart locais</string>
+ <string id="32203">Transferência pelo tipo de notificação</string>
+ <string id="32204"> Pasta de imagens para notificação
customizada</string>
+ <string id="32205">Nome alternativo para a pasta local de
fanarts</string>
+ <string id="32206">Nenhum</string>
+ <string id="32207">Notificações de Texto</string>
+ <string id="32208">Imagens Customizadas</string>
</strings>
diff --git a/script.artistslideshow/resources/settings.xml
b/script.artistslideshow/resources/settings.xml
index d48b2bc..0d790ee 100644
--- a/script.artistslideshow/resources/settings.xml
+++ b/script.artistslideshow/resources/settings.xml
@@ -18,8 +18,8 @@
<category label="32200">
<setting id="restrict_cache" type="bool" label="32201" default="false"
/>
<setting id="max_cache_size" label="32202" type="labelenum"
values="128|256|512|768|1024|2048|3072|4096" enable="eq(-1,true)"
default="1024" />
- <setting id="show_progress" type="bool" label="32203" default="false"
/>
- <setting id="progress_path" type="folder" label="32204" default="" />
+ <setting id="show_progress" type="enum" label="32203"
lvalues="32206|32207|32208" default="0" />
+ <setting id="progress_path" type="folder" label="32204" default=""
enable="eq(-1,2)"/>
<setting id="fanart_folder" type="text" label="32205"
default="" />
</category>
</settings>
-----------------------------------------------------------------------
Summary of changes:
script.artistslideshow/addon.xml | 2 +-
script.artistslideshow/changelog.txt | 8 ++
script.artistslideshow/default.py | 82 +++++++++-----------
.../resources/language/English/strings.xml | 7 +-
.../resources/language/French/strings.xml | 7 +-
.../language/Portuguese (Brazil)/strings.xml | 35 +++++----
script.artistslideshow/resources/settings.xml | 4 +-
7 files changed, 78 insertions(+), 67 deletions(-)
hooks/post-receive
--
Scripts
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons