The branch, gotham has been updated
       via  d3110b0eef43e8ad8be8be157d39852807318f9d (commit)
       via  6429e8e2589837eab64389b6700b26fc4690f394 (commit)
       via  b16ad6aa1ea1a4b07c4d0eb29ad52f1bfe17b7d5 (commit)
       via  256e645bedde853fed34e0dd9efd9ad5ec1639bc (commit)
      from  59e0e434fc43bc98c7f8ff2dbf19b75bdf6ec3af (commit)

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

commit d3110b0eef43e8ad8be8be157d39852807318f9d
Author: Martijn Kaijser <[email protected]>
Date:   Sun Jul 27 18:58:51 2014 +0200

    [service.subtitles.legendastv] 2.2.3

diff --git a/service.subtitles.legendastv/addon.xml 
b/service.subtitles.legendastv/addon.xml
index 519bd9c..3d17b18 100644
--- a/service.subtitles.legendastv/addon.xml
+++ b/service.subtitles.legendastv/addon.xml
@@ -2,7 +2,7 @@
 <addon
    id="service.subtitles.legendastv"
    name="Legendas.TV"
-   version="2.2.2"
+   version="2.2.3"
    provider-name="gfjardim">
   <requires>
     <import addon="xbmc.python" version="2.14.0"/>
diff --git a/service.subtitles.legendastv/changelog.txt 
b/service.subtitles.legendastv/changelog.txt
index b597f3f..c3dd1ad 100644
--- a/service.subtitles.legendastv/changelog.txt
+++ b/service.subtitles.legendastv/changelog.txt
@@ -1,3 +1,6 @@
+2.2.3
+- Change the way pack's are detected
+
 2.2.2
 - Fix a bug with stream sites not parsing a valid filename (thanks to 
Mafarricos)
 
diff --git a/service.subtitles.legendastv/resources/lib/LegendasTV.py 
b/service.subtitles.legendastv/resources/lib/LegendasTV.py
index 73b2a92..ca29ba1 100644
--- a/service.subtitles.legendastv/resources/lib/LegendasTV.py
+++ b/service.subtitles.legendastv/resources/lib/LegendasTV.py
@@ -2,7 +2,6 @@
 # Copyright, 2010, Guilherme Jardim.
 # This program is distributed under the terms of the GNU General Public 
License, version 3.
 # http://www.gnu.org/licenses/gpl.txt
-# Rev. 2.1.3
 
 def module_exists(module_name):
     try:
@@ -31,7 +30,7 @@ else:
 # Service variables
 sub_ext = 'srt aas ssa sub smi'
 global regex_1, regex_2, regex_3
-regex_1 = "<div class=\"f_left\"><p><a href=\"([^\"]*)\">([^<]*)</a></p><p 
class=\"data\">.*?downloads, nota (\d*?),.*?<img .*? title=\"([^\"]*)\" 
/></div>"
+regex_1 = "<div class=\"([^\"]*?)\">\s*?<span class=\"number .*?<div 
class=\"f_left\"><p><a href=\"([^\"]*)\">([^<]*)</a></p><p 
class=\"data\">.*?downloads, nota (\d*?),.*?<img .*? title=\"([^\"]*)\" 
/></div>"
 regex_2 = "class=\"load_more\""
 regex_3 = "<button class=\"icon_arrow\" onclick=\"window.open\(\'([^\']*?)\', 
\'_self\'\)\">DOWNLOAD</button>"
 
@@ -296,11 +295,12 @@ class LegendasTV:
         else:
             for x, content in enumerate(re.findall(regex_1, Response, 
re.IGNORECASE | re.DOTALL), start=1):
                 LanguageName, LanguageFlag, LanguagePreference = "", "", 0
-                download_id = "%s%s" % ("http://minister.legendas.tv";, 
content[0])
-                title = normalizeString(content[1])
-                release = normalizeString(content[1])
-                rating =  content[2]
-                lang = normalizeString(content[3])
+                download_id = "%s%s" % ("http://minister.legendas.tv";, 
content[1])
+                release_type = content[0] if not content[0] == "" else "normal"
+                title = normalizeString(content[2])
+                release = normalizeString(content[2])
+                rating =  content[3]
+                lang = normalizeString(content[4])
                 if re.search("Portugues-BR", lang):   LanguageId = "pb" 
                 elif re.search("Portugues-PT", lang): LanguageId = "pt"
                 elif re.search("Ingles", lang):       LanguageId = "en" 
@@ -328,7 +328,8 @@ class LegendasTV:
                                               "sync": False,
                                               "rating":rating,
                                               "language_flag": LanguageFlag,
-                                              "language_preference": 
int(LanguagePreference) })
+                                              "language_preference": 
int(LanguagePreference),
+                                              "type" : release_type})
 
             self.Log("Message: Retrieved [%s] results for page [%s], 
Movie[%s], Id[%s]." % (x, Page, MainID["title"], MainID["id"]))
                 
@@ -397,9 +398,11 @@ class LegendasTV:
         if TVShow:
             Episodes, Packs = [], [] 
             for DownloadsResult in self.DownloadsResults:
-                if re.search("\(PACK", DownloadsResult["filename"]):
-                    DownloadsResult["filename"] = re.sub("\(PACK[^\)]*?\)", 
"", DownloadsResult["filename"])
-                if re.search("(^|\s|[.])[Ss]%.2d(\.|\s|$)" % int(Season), 
DownloadsResult["filename"]):
+                if DownloadsResult["type"] == "pack":
+                    if re.search("\(PACK", DownloadsResult["filename"]):
+                        DownloadsResult["filename"] = 
re.sub("\(PACK[^\)]*?\)", "", DownloadsResult["filename"])
+                    if re.search("\([Pp]\)", DownloadsResult["filename"]):
+                        DownloadsResult["filename"] = re.sub("\([Pp]\)", "", 
DownloadsResult["filename"])
                     DownloadsResult["filename"] = "(PACK) " + 
DownloadsResult["filename"]
                     Packs.append(DownloadsResult) 
                 elif re.search("[Ss]%.2d[Ee]%.2d" % (int(Season), 
int(Episode)), DownloadsResult["filename"]):
@@ -417,9 +420,9 @@ class LegendasTV:
         # # Log final results
         self.Log(" ")
         self.Log("Included results:")
-        self._log_List_dict(IncludedResults, "filename language_name 
language_preference ID")
+        self._log_List_dict(IncludedResults, "filename language_name 
language_preference type")
         self.Log("Excluded results:") 
-        self._log_List_dict(ExcludedResult, "filename language_name 
language_preference ID")
-        self.Log("Message: The service took %s seconds to complete." % 
(time.time() - startTime))
+        self._log_List_dict(ExcludedResult, "filename language_name 
language_preference type")
+        self.Log("Message: The service took %0.2f seconds to complete." % 
(time.time() - startTime))
         # Return results
         return IncludedResults

http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/scripts;a=commit;h=6429e8e2589837eab64389b6700b26fc4690f394


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

commit b16ad6aa1ea1a4b07c4d0eb29ad52f1bfe17b7d5
Author: Martijn Kaijser <[email protected]>
Date:   Sun Jul 27 18:55:49 2014 +0200

    [script.artistslideshow-helper] 0.3.6

diff --git a/script.artistslideshow-helper/addon.xml 
b/script.artistslideshow-helper/addon.xml
index 6c858f1..dbccbaf 100755
--- a/script.artistslideshow-helper/addon.xml
+++ b/script.artistslideshow-helper/addon.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="script.artistslideshow-helper" name="Artist Slideshow Helper" 
version="0.3.5" provider-name="pkscout">
+<addon id="script.artistslideshow-helper" name="Artist Slideshow Helper" 
version="0.3.6" provider-name="pkscout">
        <requires>
                <import addon="xbmc.python" version="2.14.0"/>
                <import addon="xbmc.addon" version="12.0.0"/>
diff --git a/script.artistslideshow-helper/changelog.txt 
b/script.artistslideshow-helper/changelog.txt
index 911ebb0..8068f52 100644
--- a/script.artistslideshow-helper/changelog.txt
+++ b/script.artistslideshow-helper/changelog.txt
@@ -1,3 +1,8 @@
+v.0.3.6
+- fix for moving files from local file system to remote file system
+- added background progress dialog for artwork migration status
+- fix for crash when using smb file paths
+
 v.0.3.5
 - fix for required xbmc python version
 
diff --git a/script.artistslideshow-helper/default.py 
b/script.artistslideshow-helper/default.py
index d5a9e07..5f09eba 100755
--- a/script.artistslideshow-helper/default.py
+++ b/script.artistslideshow-helper/default.py
@@ -3,7 +3,9 @@
 # *  original Artist Slideshow Helper code by pkscuot
 # *
 
+from __future__ import division
 import xbmc, xbmcaddon, xbmcvfs
+from xbmcgui import DialogProgressBG
 import os, sys
 if sys.version_info >= (2, 7):
     import json as _json
@@ -31,8 +33,6 @@ lw = Logger( preamble=__preamble__, logdebug=__logdebug__ )
 
 class Main:
     def __init__( self ):
-        command = 'XBMC.Notification(%s, %s, %s, %s)' % 
(smartUTF8(__language__(30300)), smartUTF8(__language__(30301)), 5000, 
smartUTF8(__addonicon__))
-        xbmc.executebuiltin(command)
         self._init_vars()
         self._get_settings()
         self._make_dirs()
@@ -59,17 +59,17 @@ class Main:
            hashmap_str = hashmap_str + value + '\t' + key + '\n'
         success, log_line = writeFile( hashmap_str, self.HASHLISTFILE )
         if success:
-            message = __language__(30311)
             lw.log( log_line )
+            message = smartUTF8( __language__(30311) )
         else:
-            message = __language__(30312)
             lw.log( ['unable to write has list file out to disk'] )
-        command = 'XBMC.Notification(%s, %s, %s, %s)' % 
(smartUTF8(__language__(30310)), smartUTF8(message), 5000, 
smartUTF8(__addonicon__))
-        xbmc.executebuiltin(command)
+            message = smartUTF8( __language__(30312) )
 
 
     def _get_artists_hashmap( self ):
         #gets a list of all the artists from XBMC
+        pDialog = DialogProgressBG()
+        pDialog.create( smartUTF8(__language__(32001)), 
smartUTF8(__language__(30301)) )
         hashmap = _ordereddict()
         response = xbmc.executeJSONRPC ( '{"jsonrpc":"2.0", 
"method":"AudioLibrary.GetArtists", "params":{"albumartistsonly":false, 
"sort":{"order":"ascending", "ignorearticle":true, "method":"artist"}},"id": 
1}}' )
         try:
@@ -80,10 +80,15 @@ class Main:
             lw.log( ['unexpected error getting JSON back from XBMC', e] )
             artists_info = []
         if artists_info:
+            total = len( artists_info )
+            count = 1
             for artist_info in artists_info:
                artist_hash = itemHash( artist_info['artist'] )
                 hashmap[artist_hash] = artist_info['artist']
+                pDialog.update(int(100*(count/total)), smartUTF8( 
__language__(32001) ), smartUTF8( artist_info['artist'] ) )
+                count += 1
             hashmap[itemHash( "Various Artists" )] = "Various Artists" 
+        pDialog.close()
         return hashmap
 
 
@@ -137,14 +142,17 @@ class Main:
         test_str = ''
         hashmap = self._get_artists_hashmap()
         try:
-            os.chdir( self.ASCACHEFOLDER )
-            folders = os.listdir( self.ASCACHEFOLDER )
+            folders, throwaway = xbmcvfs.listdir( self.ASCACHEFOLDER )
         except OSError:
             lw.log( ['no directory found: ' + self.ASCACHEFOLDER] )
             return
         except Exception, e:
             lw.log( ['unexpected error while getting directory list', e] )
             return
+        pDialog = DialogProgressBG()
+        pDialog.create( smartUTF8(__language__(32003)), 
smartUTF8(__language__(30301)) )
+        total = len( folders )
+        count = 1
         for folder in folders:
             try:
                 artist_name = hashmap[folder]
@@ -155,14 +163,14 @@ class Main:
                 lw.log( ['unexpected error while finding matching artist for ' 
+ folder, e] )
                 artist_name = ''
             if artist_name and not (artist_name.find('/') != -1):
+                pDialog.update(int(100*(count/total)), smartUTF8( 
__language__(32003) ), smartUTF8( artist_name ) )
                 old_folder = os.path.join( self.ASCACHEFOLDER, folder )
                 new_folder = os.path.join( self.MIGRATEFOLDER, artist_name, 
'extrafanart' )
                 if self.MIGRATETYPE == 'copy' or self.MIGRATETYPE == 'move':
                     exists, loglines = checkPath( new_folder )
                     lw.log( loglines )
                 try:
-                    os.chdir( old_folder )
-                    files = os.listdir( old_folder )
+                    throwaway, files = xbmcvfs.listdir( old_folder )
                 except OSError:
                     lw.log( ['no directory found: ' + old_folder] )
                     return
@@ -174,22 +182,25 @@ class Main:
                     old_file = os.path.join(old_folder, file)
                     new_file = os.path.join(new_folder, file)
                     if self.MIGRATETYPE == 'move':
-                        xbmcvfs.rename( old_file, new_file  )
+                        xbmcvfs.copy( old_file, new_file  )
+                        xbmcvfs.delete( old_file )
                     elif self.MIGRATETYPE == 'copy':                
                         xbmcvfs.copy( old_file, new_file )
                     else:
                         test_str = test_str + old_file + ' to ' + new_file + 
'\n'
                 if self.MIGRATETYPE == 'move':
                     xbmcvfs.rmdir ( old_folder )
+                count += 1
         if self.MIGRATETYPE == 'test':
             success, loglines = writeFile( test_str, os.path.join( 
self.MIGRATEFOLDER, '_migrationtest.txt' ) )
             lw.log( loglines )
-        command = 'XBMC.Notification(%s, %s, %s, %s)' % 
(smartUTF8(__language__(30330)), smartUTF8(__language__(30331)), 5000, 
smartUTF8(__addonicon__))
-        xbmc.executebuiltin( command )
+        pDialog.close()
 
 
 if ( __name__ == "__main__" ):
     lw.log( ['script version %s started' % __addonversion__], xbmc.LOGNOTICE )
     lw.log( ['debug logging set to %s' % __logdebug__], xbmc.LOGNOTICE )
     Main()
+    command = 'XBMC.Notification(%s, %s, %s, %s)' % 
(smartUTF8(__language__(30330)), smartUTF8(__language__(30331)), 3000, 
smartUTF8(__addonicon__))
+    xbmc.executebuiltin( command )
 lw.log( ['script stopped'], xbmc.LOGNOTICE )
diff --git a/script.artistslideshow-helper/resources/common/fileops.py 
b/script.artistslideshow-helper/resources/common/fileops.py
index 69131e0..e408b40 100644
--- a/script.artistslideshow-helper/resources/common/fileops.py
+++ b/script.artistslideshow-helper/resources/common/fileops.py
@@ -1,12 +1,18 @@
-# v.0.3.2
+# v.0.3.3
 
-import os
 try:
-    import xbmcvfs.mkdirs as _mkdirs
-    import xbmcvfs.exists as _exists
-    import xbmcvfs.delete as _delete
-    import xbmcvfs.File as _file
+    import xbmcvfs
+    isXBMC = True
 except:
+    import os
+    isXBMC= False
+
+if isXBMC:
+    _mkdirs = xbmcvfs.mkdirs
+    _exists = xbmcvfs.exists
+    _delete = xbmcvfs.delete
+    _file = xbmcvfs.File
+else:
     _mkdirs = os.makedirs
     _exists = os.path.exists
     _delete = os.remove

http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/scripts;a=commit;h=256e645bedde853fed34e0dd9efd9ad5ec1639bc

commit 256e645bedde853fed34e0dd9efd9ad5ec1639bc
Author: Martijn Kaijser <[email protected]>
Date:   Sun Jul 27 18:55:08 2014 +0200

    [script.artistslideshow] 1.6.8

diff --git a/script.artistslideshow/addon.xml b/script.artistslideshow/addon.xml
index fa4d542..8572677 100755
--- 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.6.7" 
provider-name="ronie|pkscout">
+<addon id="script.artistslideshow" name="Artist Slideshow" version="1.6.8" 
provider-name="ronie|pkscout">
        <requires>
                <import addon="xbmc.python" version="2.14.0"/>
                <import addon="xbmc.addon" version="12.0.0"/>
diff --git a/script.artistslideshow/changelog.txt 
b/script.artistslideshow/changelog.txt
index 0b49b0e..1c77067 100755
--- a/script.artistslideshow/changelog.txt
+++ b/script.artistslideshow/changelog.txt
@@ -1,3 +1,8 @@
+v.1.6.8
+- fix for crash when using smb path
+- cleaned up startup process to better deal with script being started twice
+- added new window property Artistslideshow.ArtworkReady (true if artwork 
available)
+
 v.1.6.7
 - fix for required xbmc python version
 
diff --git a/script.artistslideshow/default.py 
b/script.artistslideshow/default.py
index 85f14ca..9a2153b 100755
--- a/script.artistslideshow/default.py
+++ b/script.artistslideshow/default.py
@@ -1,7 +1,7 @@
 # *  Credits:
 # *
 # *  original Artist Slideshow code by ronie
-# *  updates and additions since v1.3.0 by pkscuot
+# *  updates and additions since v1.3.0 by pkscout
 # *
 # *  divingmule for script.image.lastfm.slideshow
 # *  grajen3 for script.ImageCacher
@@ -101,13 +101,14 @@ LANGUAGES = (
 class Main:
     def __init__( self ):
         self._parse_argv()
-        self._get_settings()
-        self._init_vars()
-        self._make_dirs()
-        self._upgrade()
+        self._init_window()
         if self._get_infolabel( self.ARTISTSLIDESHOWRUNNING ) == "True":
             lw.log( ['script already running'] )
         else:
+            self._get_settings()
+            self._init_vars()
+            self._make_dirs()
+            self._upgrade()
             self.LastCacheTrim = 0
             self._set_property("ArtistSlideshowRunning", "True")
             if( xbmc.Player().isPlayingAudio() == False and 
self._get_infolabel( self.EXTERNALCALL ) == '' ):
@@ -140,6 +141,10 @@ class Main:
                 else:
                     self._clear_properties()
                     break
+            try:
+                slideshow._set_property("ArtistSlideshow.CleanupComplete", 
"True")
+            except Exception, e:
+                lw.log( ['unexpected error while setting property.', e] )
 
 
     def _clean_dir( self, dir_path ):
@@ -616,7 +621,7 @@ class Main:
         if self.LocalImagesFound:
             lw.log( ['local images found'] )
             if self.ARTISTNUM == 1:
-                self._set_property("ArtistSlideshow", self.CacheDir)
+               self._set_artwork_skininfo( self.CacheDir )
                 if self.ARTISTINFO == "true":
                     self._get_artistinfo()
             if self.TOTALARTISTS > 1:
@@ -838,30 +843,28 @@ class Main:
             lw.log( ['set fanart folder to %s' % self.FANARTFOLDER] )
         else:
             self.FANARTFOLDER = 'extrafanart'
-        if __addon__.getSetting( "transparent" ) == 'true':
-            self._set_property("ArtistSlideshowTransparent", 'true')
-            self.InitDir = xbmc.translatePath('%s/resources/transparent' % 
__addonpath__ ).decode('utf-8')
-        else:
-            self._set_property("ArtistSlideshowTransparent", '')
-            self.InitDir = xbmc.translatePath('%s/resources/black' % 
__addonpath__ ).decode('utf-8')
 
 
     def _init_vars( self ):
         self.DATAROOT = xbmc.translatePath('special://profile/addon_data/%s' % 
__addonname__ ).decode('utf-8')
         self.CHECKFILE = os.path.join( self.DATAROOT, 'migrationcheck.nfo' )
-        self.WINDOW = xbmcgui.Window( int(self.WINDOWID) )
-        self.SKININFO = {}
         self._set_property( "ArtistSlideshow.CleanupComplete" )
+        self._set_property( "ArtistSlideshow.ArtworkReady" )
+        self.SKININFO = {}
         for item in self.FIELDLIST:
             if self.PASSEDFIELDS[item]:
                 self.SKININFO[item[0:-5]] = "Window(%s).Property(%s)" % ( 
self.WINDOWID, self.PASSEDFIELDS[item] )
             else:
                 self.SKININFO[item[0:-5]] = ''
-        self.ARTISTSLIDESHOW = "Window(%s).Property(%s)" % ( self.WINDOWID, 
"ArtistSlideshow" )
-        self.ARTISTSLIDESHOWRUNNING = "Window(%s).Property(%s)" % ( 
self.WINDOWID, "ArtistSlideshowRunning" )
-        self.EXTERNALCALL = "Window(%s).Property(%s)" % ( self.WINDOWID, 
"ArtistSlideshow.ExternalCall" )
         self.EXTERNALCALLSTATUS = self._get_infolabel( self.EXTERNALCALL )
         lw.log( ['external call is set to ' + self._get_infolabel( 
self.EXTERNALCALL )] )
+        if __addon__.getSetting( "transparent" ) == 'true':
+            self._set_property("ArtistSlideshowTransparent", 'true')
+            self.InitDir = xbmc.translatePath('%s/resources/transparent' % 
__addonpath__ ).decode('utf-8')
+        else:
+            self._set_property("ArtistSlideshowTransparent", '')
+            self.InitDir = xbmc.translatePath('%s/resources/black' % 
__addonpath__ ).decode('utf-8')
+        self._set_property("ArtistSlideshow", self.InitDir)
         self.NAME = ''
         self.ALLARTISTS = []
         self.MBID = ''
@@ -877,7 +880,6 @@ class Main:
         self.MINREFRESH = 9.9
         self.TransitionDir = 
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._set_property("ArtistSlideshow", self.InitDir)
         LastfmApiKey = 'afe7e856e4f4089fc90f841980ea1ada'
         fanarttvApiKey = '7a93c84fe1c9999e6f0fec206a66b0f5'
         theaudiodbApiKey = '193621276b2d731671156g'
@@ -895,6 +897,13 @@ class Main:
         self.HtbackdropsDownloadURL = 'http://htbackdrops.org/api/' + 
HtbackdropsApiKey + '/download/'
 
 
+    def _init_window( self ):
+        self.WINDOW = xbmcgui.Window( int(self.WINDOWID) )
+        self.ARTISTSLIDESHOW = "Window(%s).Property(%s)" % ( self.WINDOWID, 
"ArtistSlideshow" )
+        self.ARTISTSLIDESHOWRUNNING = "Window(%s).Property(%s)" % ( 
self.WINDOWID, "ArtistSlideshowRunning" )
+        self.EXTERNALCALL = "Window(%s).Property(%s)" % ( self.WINDOWID, 
"ArtistSlideshow.ExternalCall" )
+
+
     def _make_dirs( self ):
         exists, loglines = checkPath( self.InitDir )
         lw.log( loglines )
@@ -921,7 +930,7 @@ class Main:
                 self._wait( self.MINREFRESH - (wait_elapsed + 2) )  #not sure 
why there needs to be a manual adjustment here
             if not self._playback_stopped_or_changed():
                 lw.log( ['switching slideshow to merge directory'] )
-                self._set_property("ArtistSlideshow", self.MergeDir)
+                self._set_artwork_skininfo( self.MergeDir )
 
 
     def _migrate_info_files( self ):
@@ -1037,10 +1046,10 @@ class Main:
 
     def _refresh_image_directory( self ):
         if( self._get_infolabel( self.ARTISTSLIDESHOW ).decode('utf-8') == 
self.TransitionDir):
-            self._set_property("ArtistSlideshow", self.CacheDir)
+            self._set_artwork_skininfo( self.CacheDir )
             lw.log( ['switching slideshow to ' + self.CacheDir] )
         else:
-            self._set_property("ArtistSlideshow", self.TransitionDir)
+            self._set_artwork_skininfo( self.TransitionDir )
             lw.log( ['switching slideshow to ' + self.TransitionDir] )
         self.LASTARTISTREFRESH = time.time()
         lw.log( ['Last slideshow refresh time is ' + 
str(self.LASTARTISTREFRESH)] )
@@ -1077,6 +1086,11 @@ class Main:
         lw.log( ['finished renaming .tbn files with correct extension'] )
     
 
+    def _set_artwork_skininfo( self, dir ):
+        self._set_property("ArtistSlideshow", dir)
+        self._set_property("ArtistSlideshow.ArtworkReady", "true")
+    
+
     def _set_cachedir( self, theartist ):
         self.CacheDir = self._set_thedir( theartist, "ArtistSlideshow" )
 
@@ -1144,7 +1158,7 @@ class Main:
             cached_image_info = True
             self.LASTARTISTREFRESH = time.time()
             if self.ARTISTNUM == 1:
-                self._set_property("ArtistSlideshow", self.CacheDir)
+                self._set_artwork_skininfo( self.CacheDir )
                 if self.ARTISTINFO == "true":
                     self._get_artistinfo()
         else:
@@ -1199,7 +1213,7 @@ class Main:
                 lw.log( loglines )
             if self.ImageDownloaded:
                 if( self._playback_stopped_or_changed() and self.ARTISTNUM == 
1 ):
-                    self._set_property("ArtistSlideshow", self.CacheDir)
+                    self._set_artwork_skininfo( self.CacheDir )
                     self.LASTARTISTREFRESH = time.time()
                     self._clean_dir( self.TransitionDir )
                     return
@@ -1218,7 +1232,7 @@ class Main:
             lw.log( ['finished downloading images'] )
             self.DownloadedAllImages = True
             if( self._playback_stopped_or_changed() ):
-                self._set_property("ArtistSlideshow", self.CacheDir)
+                self._set_artwork_skininfo( self.CacheDir )
                 self.LASTARTISTREFRESH = time.time()
                 self._clean_dir( self.TransitionDir )
                 return
@@ -1292,12 +1306,13 @@ class Main:
             if self.USEOVERRIDE == 'true':
                 lw.log( ['using override directory for images'] )
                 self._set_property("ArtistSlideshow", self.OVERRIDEPATH)
+                self._set_artwork_skininfo( self.OVERRIDEPATH )
                 if(self.ARTISTNUM == 1):
                     self._get_artistinfo()
             elif self.PRIORITY == '1' and self.LOCALARTISTPATH:
                 lw.log( ['looking for local artwork'] )
                 self._get_local_images()
-                if(not self.LocalImagesFound):
+                if not self.LocalImagesFound:
                     lw.log( ['no local artist artwork found, start download'] )
                     self._start_download()
             elif self.PRIORITY == '2' and self.LOCALARTISTPATH:
@@ -1317,6 +1332,7 @@ class Main:
                 lw.log( ['fallbackdir = ' + self.FALLBACKPATH] )
                 self.UsingFallback = True
                 self._set_property("ArtistSlideshow", self.FALLBACKPATH)
+                self._set_artwork_skininfo( self.FALLBACKPATH )
 
 
     def _update_check_file( self, version, message ):
@@ -1342,8 +1358,9 @@ class Main:
         while( waited < wait_time ):
             time.sleep(0.1)
             waited = waited + 0.1
-            if( self._playback_stopped_or_changed() ):
-                self._set_property("ArtistSlideshow", self.InitDir)
+            if self._playback_stopped_or_changed():
+                self._set_property( "ArtistSlideshow", self.InitDir )
+                self._set_property( "ArtistSlideshow.ArtworkReady" )
                 self.Abort = True
                 return
 
@@ -1352,8 +1369,4 @@ if ( __name__ == "__main__" ):
     lw.log( ['script version %s started' % __addonversion__], xbmc.LOGNOTICE )
     lw.log( ['debug logging set to %s' % __logdebug__], xbmc.LOGNOTICE )
     slideshow = Main()
-    try:
-        slideshow._set_property("ArtistSlideshow.CleanupComplete", "True")
-    except Exception, e:
-        lw.log( ['unexpected error while setting property.', e] )
 lw.log( ['script stopped'], xbmc.LOGNOTICE )
diff --git a/script.artistslideshow/resources/common/fileops.py 
b/script.artistslideshow/resources/common/fileops.py
index 69131e0..e408b40 100644
--- a/script.artistslideshow/resources/common/fileops.py
+++ b/script.artistslideshow/resources/common/fileops.py
@@ -1,12 +1,18 @@
-# v.0.3.2
+# v.0.3.3
 
-import os
 try:
-    import xbmcvfs.mkdirs as _mkdirs
-    import xbmcvfs.exists as _exists
-    import xbmcvfs.delete as _delete
-    import xbmcvfs.File as _file
+    import xbmcvfs
+    isXBMC = True
 except:
+    import os
+    isXBMC= False
+
+if isXBMC:
+    _mkdirs = xbmcvfs.mkdirs
+    _exists = xbmcvfs.exists
+    _delete = xbmcvfs.delete
+    _file = xbmcvfs.File
+else:
     _mkdirs = os.makedirs
     _exists = os.path.exists
     _delete = os.remove

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

Summary of changes:
 script.artistslideshow-helper/addon.xml            |    2 +-
 script.artistslideshow-helper/changelog.txt        |    5 +
 script.artistslideshow-helper/default.py           |   37 +-
 .../resources/common/fileops.py                    |   18 +-
 script.artistslideshow/addon.xml                   |    2 +-
 script.artistslideshow/changelog.txt               |    5 +
 script.artistslideshow/default.py                  |   75 ++-
 script.artistslideshow/resources/common/fileops.py |   18 +-
 script.speedfaninfo/CHANGELOG.txt                  |   84 +++
 script.speedfaninfo/COPYING.txt                    |  621 ++++++++++++++++++++
 script.speedfaninfo/LICENSE.txt                    |   11 +
 script.speedfaninfo/README.txt                     |    5 +
 script.speedfaninfo/addon.xml                      |   77 +++
 script.speedfaninfo/default.py                     |  318 ++++++++++
 script.speedfaninfo/icon.png                       |  Bin 0 -> 10900 bytes
 .../resources/__init__.py                          |    0
 .../resources/common}/__init__.py                  |    0
 script.speedfaninfo/resources/common/fileops.py    |   96 +++
 .../resources/common/fix_utf8.py                   |    0
 .../resources/common/ordereddict.py                |    0
 .../resources/common/transforms.py                 |    0
 .../resources/common/url.py                        |    0
 .../resources/common/xlogger.py                    |    0
 .../resources/language/Afrikaans/strings.po        |   57 ++
 .../resources/language/Albanian/strings.po         |   25 +
 .../resources/language/Amharic/strings.po          |   21 +
 .../resources/language/Arabic/strings.po           |   25 +
 .../resources/language/Basque/strings.po           |   25 +
 .../resources/language/Belarusian/strings.po       |   57 ++
 .../resources/language/Bosnian/strings.po          |   25 +
 .../resources/language/Bulgarian/strings.po        |   93 +++
 .../resources/language/Burmese/strings.po          |   21 +
 .../resources/language/Catalan/strings.po          |   57 ++
 .../resources/language/Chinese (Simple)/strings.po |   93 +++
 .../language/Chinese (Traditional)/strings.po      |   25 +
 .../resources/language/Croatian/strings.po         |   93 +++
 .../resources/language/Czech/strings.po            |   25 +
 .../resources/language/Danish/strings.po           |   93 +++
 .../resources/language/Dutch/strings.po            |   93 +++
 .../language/English (Australia)/strings.po        |   21 +
 .../language/English (New Zealand)/strings.po      |   93 +++
 .../resources/language/English (US)/strings.po     |   93 +++
 .../resources/language/English/strings.po          |   99 ++++
 .../resources/language/Esperanto/strings.po        |   21 +
 .../resources/language/Estonian/strings.po         |   57 ++
 .../resources/language/Faroese/strings.po          |   21 +
 .../resources/language/Finnish/strings.po          |   25 +
 .../resources/language/French (Canada)/strings.po  |   93 +++
 .../resources/language/French/strings.po           |   89 +++
 .../resources/language/Galician/strings.po         |   93 +++
 .../resources/language/Georgian/strings.po         |   21 +
 .../resources/language/German/strings.po           |   93 +++
 .../resources/language/Greek/strings.po            |   93 +++
 .../resources/language/Hebrew/strings.po           |   57 ++
 .../language/Hindi (Devanagiri)/strings.po         |   25 +
 .../resources/language/Hungarian/strings.po        |   93 +++
 .../resources/language/Icelandic/strings.po        |   25 +
 .../resources/language/Indonesian/strings.po       |   57 ++
 .../resources/language/Italian/strings.po          |   93 +++
 .../resources/language/Japanese/strings.po         |   25 +
 .../resources/language/Korean/strings.po           |   25 +
 .../resources/language/Latvian/strings.po          |   21 +
 .../resources/language/Lithuanian/strings.po       |   25 +
 .../resources/language/Macedonian/strings.po       |   25 +
 .../resources/language/Malay/strings.po            |   21 +
 .../resources/language/Malayalam/strings.po        |   21 +
 .../resources/language/Maltese/strings.po          |   21 +
 .../resources/language/Norwegian/strings.po        |   25 +
 .../resources/language/Persian (Iran)/strings.po   |   25 +
 .../resources/language/Persian/strings.po          |   21 +
 .../resources/language/Polish/strings.po           |   93 +++
 .../language/Portuguese (Brazil)/strings.po        |   93 +++
 .../resources/language/Portuguese/strings.po       |   93 +++
 .../resources/language/Romanian/strings.po         |   25 +
 .../resources/language/Russian/strings.po          |   93 +++
 .../language/Serbian (Cyrillic)/strings.po         |   25 +
 .../resources/language/Serbian/strings.po          |   25 +
 .../resources/language/Slovak/strings.po           |   57 ++
 .../resources/language/Slovenian/strings.po        |   25 +
 .../language/Spanish (Argentina)/strings.po        |   25 +
 .../resources/language/Spanish (Mexico)/strings.po |   45 ++
 .../resources/language/Spanish/strings.po          |   93 +++
 .../resources/language/Swedish/strings.po          |   93 +++
 .../resources/language/Tamil (India)/strings.po    |   25 +
 .../resources/language/Thai/strings.po             |   25 +
 .../resources/language/Turkish/strings.po          |   25 +
 .../resources/language/Ukrainian/strings.po        |   25 +
 .../resources/language/Uzbek/strings.po            |   21 +
 .../language/Vietnamese (Viet Nam)/strings.po      |   21 +
 .../resources/language/Vietnamese/strings.po       |   21 +
 .../resources/language/Welsh/strings.po            |   21 +
 script.speedfaninfo/resources/settings.xml         |   20 +
 .../skins/Default/720p/speedfaninfo-compact.xml    |  185 ++++++
 .../skins/Default/720p/speedfaninfo-main.xml       |  255 ++++++++
 .../skins/Default/media/speedfan-icon.png          |  Bin 0 -> 1604 bytes
 .../skins/Default/media/speedfan-list-focus.png    |  Bin 3047 -> 3047 bytes
 .../skins/Default/media/speedfan-list-nofocus.png  |  Bin 2822 -> 2822 bytes
 .../skins/Default/media/speedfan-overlay.png       |  Bin 0 -> 5699 bytes
 .../Default/media/speedfan-panel-compact-10.png    |  Bin 0 -> 3984 bytes
 .../Default/media/speedfan-panel-compact-100.png   |  Bin 0 -> 3983 bytes
 .../Default/media/speedfan-panel-compact-20.png    |  Bin 0 -> 3984 bytes
 .../Default/media/speedfan-panel-compact-30.png    |  Bin 0 -> 3984 bytes
 .../Default/media/speedfan-panel-compact-40.png    |  Bin 0 -> 3984 bytes
 .../Default/media/speedfan-panel-compact-50.png    |  Bin 0 -> 3984 bytes
 .../Default/media/speedfan-panel-compact-60.png    |  Bin 0 -> 3984 bytes
 .../Default/media/speedfan-panel-compact-70.png    |  Bin 0 -> 3984 bytes
 .../Default/media/speedfan-panel-compact-80.png    |  Bin 0 -> 3984 bytes
 .../Default/media/speedfan-panel-compact-90.png    |  Bin 0 -> 3984 bytes
 .../skins/Default/media/speedfan-panel.png         |  Bin 0 -> 9979 bytes
 .../skins/Default/media/speedfan-scroll_back.png   |  Bin 0 -> 3332 bytes
 .../skins/Default/media/speedfan-scroll_mid.png    |  Bin 0 -> 3417 bytes
 .../skins/Default/media/speedfan-title.png         |  Bin 0 -> 5077 bytes
 .../resources/skins/Default/skin.xml               |   13 +
 service.subtitles.legendastv/addon.xml             |    2 +-
 service.subtitles.legendastv/changelog.txt         |    3 +
 .../resources/lib/LegendasTV.py                    |   31 +-
 116 files changed, 5124 insertions(+), 73 deletions(-)
 create mode 100644 script.speedfaninfo/CHANGELOG.txt
 create mode 100644 script.speedfaninfo/COPYING.txt
 create mode 100644 script.speedfaninfo/LICENSE.txt
 create mode 100644 script.speedfaninfo/README.txt
 create mode 100644 script.speedfaninfo/addon.xml
 create mode 100644 script.speedfaninfo/default.py
 create mode 100644 script.speedfaninfo/icon.png
 copy {script.ace.extrapack => script.speedfaninfo}/resources/__init__.py (100%)
 copy {script.ace.extrapack/resources => 
script.speedfaninfo/resources/common}/__init__.py (100%)
 create mode 100644 script.speedfaninfo/resources/common/fileops.py
 copy {script.artistslideshow-helper => 
script.speedfaninfo}/resources/common/fix_utf8.py (100%)
 copy {script.artistslideshow-helper => 
script.speedfaninfo}/resources/common/ordereddict.py (100%)
 copy {script.artistslideshow-helper => 
script.speedfaninfo}/resources/common/transforms.py (100%)
 mode change 100755 => 100644
 copy {script.artistslideshow-helper => 
script.speedfaninfo}/resources/common/url.py (100%)
 mode change 100755 => 100644
 copy {script.artistslideshow-helper => 
script.speedfaninfo}/resources/common/xlogger.py (100%)
 mode change 100755 => 100644
 create mode 100644 script.speedfaninfo/resources/language/Afrikaans/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Albanian/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Amharic/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Arabic/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Basque/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Belarusian/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Bosnian/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Bulgarian/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Burmese/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Catalan/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Chinese 
(Simple)/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Chinese 
(Traditional)/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Croatian/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Czech/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Danish/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Dutch/strings.po
 create mode 100644 script.speedfaninfo/resources/language/English 
(Australia)/strings.po
 create mode 100644 script.speedfaninfo/resources/language/English (New 
Zealand)/strings.po
 create mode 100644 script.speedfaninfo/resources/language/English 
(US)/strings.po
 create mode 100644 script.speedfaninfo/resources/language/English/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Esperanto/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Estonian/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Faroese/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Finnish/strings.po
 create mode 100644 script.speedfaninfo/resources/language/French 
(Canada)/strings.po
 create mode 100644 script.speedfaninfo/resources/language/French/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Galician/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Georgian/strings.po
 create mode 100644 script.speedfaninfo/resources/language/German/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Greek/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Hebrew/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Hindi 
(Devanagiri)/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Hungarian/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Icelandic/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Indonesian/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Italian/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Japanese/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Korean/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Latvian/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Lithuanian/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Macedonian/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Malay/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Malayalam/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Maltese/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Norwegian/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Persian 
(Iran)/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Persian/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Polish/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Portuguese 
(Brazil)/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Portuguese/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Romanian/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Russian/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Serbian 
(Cyrillic)/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Serbian/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Slovak/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Slovenian/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Spanish 
(Argentina)/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Spanish 
(Mexico)/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Spanish/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Swedish/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Tamil 
(India)/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Thai/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Turkish/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Ukrainian/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Uzbek/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Vietnamese (Viet 
Nam)/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Vietnamese/strings.po
 create mode 100644 script.speedfaninfo/resources/language/Welsh/strings.po
 create mode 100644 script.speedfaninfo/resources/settings.xml
 create mode 100644 
script.speedfaninfo/resources/skins/Default/720p/speedfaninfo-compact.xml
 create mode 100644 
script.speedfaninfo/resources/skins/Default/720p/speedfaninfo-main.xml
 create mode 100644 
script.speedfaninfo/resources/skins/Default/media/speedfan-icon.png
 copy 
script.cdartmanager/resources/skins/Default/media/cdman-default-list-focus.png 
=> script.speedfaninfo/resources/skins/Default/media/speedfan-list-focus.png 
(100%)
 copy 
script.cdartmanager/resources/skins/Default/media/default-list-nofocus.png => 
script.speedfaninfo/resources/skins/Default/media/speedfan-list-nofocus.png 
(100%)
 create mode 100644 
script.speedfaninfo/resources/skins/Default/media/speedfan-overlay.png
 create mode 100644 
script.speedfaninfo/resources/skins/Default/media/speedfan-panel-compact-10.png
 create mode 100644 
script.speedfaninfo/resources/skins/Default/media/speedfan-panel-compact-100.png
 create mode 100644 
script.speedfaninfo/resources/skins/Default/media/speedfan-panel-compact-20.png
 create mode 100644 
script.speedfaninfo/resources/skins/Default/media/speedfan-panel-compact-30.png
 create mode 100644 
script.speedfaninfo/resources/skins/Default/media/speedfan-panel-compact-40.png
 create mode 100644 
script.speedfaninfo/resources/skins/Default/media/speedfan-panel-compact-50.png
 create mode 100644 
script.speedfaninfo/resources/skins/Default/media/speedfan-panel-compact-60.png
 create mode 100644 
script.speedfaninfo/resources/skins/Default/media/speedfan-panel-compact-70.png
 create mode 100644 
script.speedfaninfo/resources/skins/Default/media/speedfan-panel-compact-80.png
 create mode 100644 
script.speedfaninfo/resources/skins/Default/media/speedfan-panel-compact-90.png
 create mode 100644 
script.speedfaninfo/resources/skins/Default/media/speedfan-panel.png
 create mode 100644 
script.speedfaninfo/resources/skins/Default/media/speedfan-scroll_back.png
 create mode 100644 
script.speedfaninfo/resources/skins/Default/media/speedfan-scroll_mid.png
 create mode 100644 
script.speedfaninfo/resources/skins/Default/media/speedfan-title.png
 create mode 100644 script.speedfaninfo/resources/skins/Default/skin.xml


hooks/post-receive
-- 
Scripts

------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to