The branch, eden-pre has been updated
       via  04458e0bf65590f3226f5894ea22b1286b8b0cf8 (commit)
      from  abcdfd13775e93fc2fd8156e71e79c0f00d625b1 (commit)

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

commit 04458e0bf65590f3226f5894ea22b1286b8b0cf8
Author: ronie <[email protected]>
Date:   Sun Oct 9 15:04:58 2011 +0200

    [script.tv.show.next.aired] -v4.0.1
    
    added tv guide

diff --git a/script.tv.show.next.aired/addon.xml 
b/script.tv.show.next.aired/addon.xml
index 31e638a..d734186 100644
--- a/script.tv.show.next.aired/addon.xml
+++ b/script.tv.show.next.aired/addon.xml
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="script.tv.show.next.aired"
        name="TV Show - Next Aired"
-       version="3.0.3"
-       provider-name="Ppic, Frost, ronie">
+       version="4.0.1"
+       provider-name="Ppic, Frost, ronie, `Black">
   <requires>
     <import addon="xbmc.python" version="2.0"/>
   </requires>
   <extension point="xbmc.python.script"
              library="default.py">
-    <provides>video</provides>
+    <provides>executable</provides>
   </extension>
   <extension point="xbmc.addon.metadata">
     <platform>all</platform>
-    <summary lang="en">Grab infos of next TV Shows Aired.</summary>
+    <summary lang="en">Get info for TV Shows Next Aired.</summary>
     <summary lang="fr">Récupère les dates de diffusions de vos 
séries</summary>
-    <description lang="en">Grab infos of next TV Shows Aired. You'll never 
miss them</description>
+    <description lang="en">Get info for TV Shows Next Aired. You'll never miss 
one again.</description>
     <description lang="fr">Ce script interroge votre médiathèque puis vas 
récupérer les infos sur les prochaines diffusions de vos séries.
-    vous n'en manquerez plus aucune </description>
+    vous n'en manquerez plus aucune.</description>
   </extension>
 </addon>
diff --git a/script.tv.show.next.aired/changelog.txt 
b/script.tv.show.next.aired/changelog.txt
index 580801e..d0fa7fe 100644
--- a/script.tv.show.next.aired/changelog.txt
+++ b/script.tv.show.next.aired/changelog.txt
@@ -1,3 +1,10 @@
+v4.0.1
+- added readme for skinners
+
+v4.0.0
+- changed script gui into a tv guide
+- provide infolabels for focussed item in tv-show library
+
 v3.0.3
 - adjusted to latest json-rpc changes
 - fixed tv show title in info dialog
diff --git a/script.tv.show.next.aired/default.py 
b/script.tv.show.next.aired/default.py
index 95ecbdd..3c7dce2 100644
--- a/script.tv.show.next.aired/default.py
+++ b/script.tv.show.next.aired/default.py
@@ -1,14 +1,7 @@
-import urllib
-import os
-import sys
+import os, sys, re, time, socket, urllib
 from traceback import print_exc
-import re
-import socket
-import xbmc
-import xbmcgui
-import xbmcaddon
-import xbmcvfs
-import time
+from datetime import date
+import xbmc, xbmcgui, xbmcaddon, xbmcvfs
 
 __addon__     = xbmcaddon.Addon()
 __addonid__   = __addon__.getAddonInfo('id')
@@ -22,7 +15,9 @@ __useragent__ = "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; 
rv:1.9.0.1) Gecko/
 DATA_PATH = os.path.join( xbmc.translatePath( "special://profile/addon_data/" 
), __addonid__ )
 RESOURCES_PATH = xbmc.translatePath( os.path.join( __cwd__, 'resources' ) )
 sys.path.append( os.path.join( RESOURCES_PATH, "lib" ) )
-if not xbmcvfs.exists(DATA_PATH): xbmcvfs.mkdir(DATA_PATH)
+
+if not xbmcvfs.exists(DATA_PATH):
+    xbmcvfs.mkdir(DATA_PATH)
 
 def log(msg):
     xbmc.log( str( msg ),level=xbmc.LOGDEBUG )
@@ -32,8 +27,7 @@ def footprints():
     log( "### author: %s" % __author__ )
     log( "### version: %s" % __version__ )
 
-def get_html_source( url , save=False):
-    """ fetch the html source """
+def get_html_source(url , save=False):
     class AppURLopener(urllib.FancyURLopener):
         version = __useragent__
     urllib._urlopener = AppURLopener()
@@ -41,7 +35,7 @@ def get_html_source( url , save=False):
     while succeed < 5:
         try:
             urllib.urlcleanup()
-            sock = urllib.urlopen( url )
+            sock = urllib.urlopen(url)
             htmlsource = sock.read()
             if save: file( os.path.join( CACHE_PATH , save ) , "w" ).write( 
htmlsource )
             sock.close()
@@ -55,183 +49,155 @@ def get_html_source( url , save=False):
 
 class NextAired:
     def __init__(self):
+        footprints()
+        self.WINDOW = xbmcgui.Window( 10000 )
+        self.date = date.today()
         self._parse_argv()
+        if self.BACKEND:
+            self.run_daemon()
+        else:
+            self.update_data()
+            if self.SILENT == "True":
+                self._set_alarm()
+            else:
+                self.show_gui()
+
+    def _parse_argv( self ):
+        try:
+            params = dict( arg.split( "=" ) for arg in sys.argv[ 1 ].split( 
"&" ) )
+        except:
+            params = {}
+        log( "### params: %s" % params )
+        self.SILENT = params.get( "silent", "" )
+        self.BACKEND = params.get("backend", False )
+
+    def update_data(self):
         self.nextlist = []
-        testtime = os.path.join( DATA_PATH , "next_aired.db" )
-        if xbmcvfs.exists(testtime):
-            if time.time() - os.path.getmtime(testtime) > 21600: # time in 
second for file peremption 43200=1/2day
-                log( "###db old more than 24h, rescanning..." )
+        dbfile = os.path.join( DATA_PATH , "next_aired.db" )
+        if xbmcvfs.exists(dbfile):
+            if time.time() - os.path.getmtime(dbfile) > 86400:
+                log( "### db old more than 24h, rescanning..." )
                 self.scan_info()
             else : 
-                log( "###db less than 24, fetch local data..." )
+                log( "### db less than 24, fetch local data..." )
                 self.current_show_data = self.get_list("next_aired.db")
-                if self.current_show_data == "[]": self.scan_info()
-        else: 
-            log( "###db doesn't exist, scanning for data..." )
+                if self.current_show_data == "[]":
+                    self.scan_info()
+        else:
+            log( "### db doesn't exist, scanning for data..." )
             self.scan_info()
         if self.current_show_data: 
-            log( "###data available" )
+            log( "### data available" )
             for show in self.current_show_data:
                 if show.get("Next Episode" , False):
                     self.nextlist.append(show)
-    #                 log( "######################" )
-    #                 for i in show.keys():
-    #                     log( "###" + i + ": " + show[i] )
             log( "### next list: %s shows ### %s" % ( len(self.nextlist) , 
self.nextlist ) )
             self.nextlist = sorted( self.nextlist, key=lambda item: str( 
item.get( "RFC3339", "~" ) ).lower(), reverse=False )
             self.check_today_show()
             self.push_data()
-        else: log( "### no current show data..." )
-        if self.PROGRESS:
-            import next_aired_dialog
-            next_aired_dialog.MyDialog(self.nextlist)
-        if self.ALARM: self._set_alarm()
-
-    def _parse_argv( self ):
-        try:
-            # parse sys.argv for params
-            params = dict( arg.split( "=" ) for arg in sys.argv[ 1 ].split( 
"&" ) )
-        except:
-            # no params passed
-            params = {}
-        # set our preferences
-        log( params )
-        self.ALARM = int( params.get( "alarm", "0" ) )
-        self.PROGRESS = params.get( "silent", True ) == True
-
-    def _set_alarm( self ):
-        # only run if user/skinner preference
-        if self.ALARM == "0": return
-        # set the alarms command
-        log( "### Alarm enabled: %s" % self.ALARM )
-        command = "XBMC.RunScript(%s,silent=True&alarm=%d)" % ( os.path.join( 
__cwd__, __file__ ), self.ALARM, )
-        xbmc.executebuiltin( "AlarmClock(NextAired,%s,%d,true)" % ( command, 
self.ALARM, ) )
-
-    def check_today_show(self):
-        self.todayshow = 0
-        self.todaylist = []
-        today = time.strftime('%Y-%m-%d',time.localtime()) 
-        log( today )
-        #log( time.strftime("%Y") )
-        for show in self.nextlist:
-            log( "################" )
-            log( "###%s" % show.get("localname") )
-#             test = timedelta(i.get("RFC3339", "0")) - 
timedelta(time.strftime(strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime())))
-#             log( test )
-            if str(show.get("RFC3339" , "" )[:10]) == str(today): 
-                self.todayshow = self.todayshow + 1
-                self.todaylist.append(show.get("localname"))
-                log( "TODAY" )
-                show["Today"] = "True"
-            log( "###%s" % show.get("Next Episode", "")  )
-            log( "###%s" % show.get("RFC3339", "no rfc") )
-            log( str(show.get("RFC3339", "")[:10]) )
-        log( "###today show: %s - %s" % ( self.todayshow , 
str(self.todaylist).strip("[]") ) )
-
-    def push_data(self):
-        # grab the home window
-        self.WINDOW = xbmcgui.Window( 10000 )
-        # reset Total property for visible condition
-        self.WINDOW.setProperty( "NextAired.Total" , str(len(self.nextlist)) )
-        self.WINDOW.setProperty( "NextAired.TodayTotal" , str(self.todayshow) )
-        self.WINDOW.setProperty( "NextAired.TodayShow" , 
str(self.todaylist).strip("[]") )
-        for count in range( len(self.nextlist) ):
-            # we clear title for visible condition
-            self.WINDOW.clearProperty( "NextAired.%d.Title" % ( count + 1, ) )
-        for count, current_show in enumerate( self.nextlist ): 
-            #log( "###%d %s" % ( count + 1 , current_show["localname"] ) )
-            self.WINDOW.setProperty( "NextAired.%d.Today" % ( count + 1, ), 
current_show.get( "Today" , "False"))
-            self.WINDOW.setProperty( "NextAired.%d.ShowTitle" % ( count + 1, 
), current_show.get( "localname", "" ))
-            try:
-                next = current_show.get( "Next Episode","").split("^")
-                self.WINDOW.setProperty( "NextAired.%d.NextDate" % ( count + 
1, ), next[2] or "")
-                self.WINDOW.setProperty( "NextAired.%d.NextTitle" % ( count + 
1, ), next[1] or "")
-                self.WINDOW.setProperty( "NextAired.%d.NextNumber" % ( count + 
1, ), next[0] or "")
-            except: print_exc()
-            try:
-                latest = current_show.get("Latest Episode","").split("^")
-                self.WINDOW.setProperty( "NextAired.%d.LatestDate" % ( count + 
1, ), latest[2] or "")
-                self.WINDOW.setProperty( "NextAired.%d.LatestTitle" % ( count 
+ 1, ), latest[1] or "")
-                self.WINDOW.setProperty( "NextAired.%d.LatestNumber" % ( count 
+ 1, ), latest[0] or "")
-            except: print_exc()
-            self.WINDOW.setProperty( "NextAired.%d.Airtime" % ( count + 1, ), 
current_show.get("Airtime", "" )) 
-            self.WINDOW.setProperty( "NextAired.%d.Showpath" % ( count + 1, ), 
current_show.get("path", "" ))
-            self.WINDOW.setProperty( "NextAired.%d.Status" % ( count + 1, ), 
current_show.get("Status", "" ))
-            self.WINDOW.setProperty( "NextAired.%d.ep_img" % ( count + 1, ), 
current_show.get("ep_img", "" ))
-            self.WINDOW.setProperty( "NextAired.%d.Network" % ( count + 1, ), 
current_show.get("Network", "" ))
-            self.WINDOW.setProperty( "NextAired.%d.Started" % ( count + 1, ), 
current_show.get("Started", "" ))
-            self.WINDOW.setProperty( "NextAired.%d.Classification" % ( count + 
1, ), current_show.get("Classification", "" ))
-            self.WINDOW.setProperty( "NextAired.%d.Genres" % ( count + 1, ), 
current_show.get("Genres", "" ))
-            self.WINDOW.setProperty( "NextAired.%d.Premiered" % ( count + 1, 
), current_show.get("Premiered", "" ))
-            self.WINDOW.setProperty( "NextAired.%d.Country" % ( count + 1, ), 
current_show.get("Country", "" ))
-            self.WINDOW.setProperty( "NextAired.%d.Runtime" % ( count + 1, ), 
current_show.get("Runtime", "" )) 
-            try:
-                airday, shortime = current_show.get("Airtime", "  at  " 
).split(" at ")
-                self.WINDOW.setProperty( "NextAired.%d.airday" % ( count + 1, 
), airday)
-                self.WINDOW.setProperty( "NextAired.%d.shortime" % ( count + 
1, ), shortime)
-            except: log( "### %s" % current_show.get("Airtime", "  at  " ) )
-            #log( airday, shortime )
-
+        else:
+            log( "### no current show data..." )
 
     def scan_info(self):
-        if self.PROGRESS: 
+        if self.SILENT == "":
             DIALOG_PROGRESS = xbmcgui.DialogProgress()
             DIALOG_PROGRESS.create( __language__(32101) , __language__(32102) )
         socket.setdefaulttimeout(10)
-        self.total_reaquest = 0
-        self.total_next_found = 0
-        self.total_error = 0 
-        self.total_canceled = 0
-        self.total_current = 0
-        self.total_error = 0
         self.count = 0
         self.current_show_data = []
         self.canceled = self.get_list("canceled.db")
-        if not self.listing(): self.close("error listing")
+        if not self.listing():
+            self.close("error listing")
         self.total_show = len(self.TVlist)
-        log( "###canceled list: %s " % self.canceled )
-
+        log( "### canceled list: %s " % self.canceled )
         for show in self.TVlist:
             current_show = {}
-            self.count = self.count +1
-            if self.PROGRESS:
+            self.count += 1
+            if self.SILENT == "":
                 percent = int( float( self.count * 100 ) / self.total_show )
                 DIALOG_PROGRESS.update( percent , __language__(32102) , "%s" % 
show[0] )
                 if DIALOG_PROGRESS.iscanceled():
                     DIALOG_PROGRESS.close()
                     
xbmcgui.Dialog().ok(__language__(32103),__language__(32104))
                     break
-            log( "###%s" % show[0] )
+            log( "### %s" % show[0] )
             current_show["localname"] = show[0]
             current_show["path"] = show[1]
             current_show["thumbnail"] = show[2]
-            if show[0] in self.canceled: log( "### %s canceled/Ended" % 
show[0] )
+            current_show["fanart"] = show[3]
+            if show[0] in self.canceled:
+                log( "### %s canceled/Ended" % show[0] )
             else:
                 self.get_show_info( current_show )
                 log( current_show )
-                if current_show.get("Status") == "Canceled/Ended": 
self.canceled.append(current_show["localname"])
-                else: self.current_show_data.append(current_show)
-
+                if current_show.get("Status") == "Canceled/Ended":
+                    self.canceled.append(current_show["localname"])
+                else:
+                    self.current_show_data.append(current_show)
         self.save_file( self.canceled , "canceled.db")
         self.save_file( self.current_show_data , "next_aired.db")
-        if self.PROGRESS:DIALOG_PROGRESS.close()
-        
+        if self.SILENT == "":
+            DIALOG_PROGRESS.close()
+
+    def listing(self):
+        json_query = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": 
"VideoLibrary.GetTVShows", "params": {"properties": ["file", "thumbnail", 
"fanart"], "sort": { "method": "label" } }, "id": 1}')
+        json_response = re.compile( "{(.*?)}", re.DOTALL ).findall(json_query)
+        log( json_response )
+        self.TVlist = []
+        for tvshowitem in json_response:
+            log( tvshowitem )
+            findtvshowname = re.search( '"label": ?"(.*?)",["\n]', tvshowitem )
+            if findtvshowname:
+                tvshowname = ( findtvshowname.group(1) )
+                findpath = re.search( '"file": ?"(.*?)",["\n]', tvshowitem )
+                if findpath:
+                    path = (findpath.group(1))
+                else:
+                    path = ''
+                findthumbnail = re.search( '"thumbnail": ?"(.*?)",["\n]', 
tvshowitem )
+                if findthumbnail:
+                    thumbnail = (findthumbnail.group(1))
+                else:
+                    thumbnail = ''
+                findfanart = re.search( '"fanart": ?"(.*?)",["\n]', tvshowitem 
)
+                if findfanart:
+                    fanart = (findfanart.group(1))
+                else:
+                    fanart = ""
+                self.TVlist.append( ( tvshowname , path, thumbnail, fanart ) )
+        log( "### list: %s" % self.TVlist )
+        return self.TVlist
+
     def get_show_info( self , current_show ):
         log( "### get info %s" % current_show["localname"] )
         # get info for show with exact name
         log( "### searching for %s" % current_show["localname"] )
-        log( "###search url: 
http://services.tvrage.com/tools/quickinfo.php?show=%s"; % urllib.quote_plus( 
current_show["localname"] ) )  #DEBUG
+        log( "### search url: 
http://services.tvrage.com/tools/quickinfo.php?show=%s"; % urllib.quote_plus( 
current_show["localname"] ) )
         result_info = get_html_source( 
"http://services.tvrage.com/tools/quickinfo.php?show=%s"; % urllib.quote_plus( 
current_show["localname"]))
         log( "### parse informations" )
-        #log( "### %s" % result_info )
         result = re.findall("(?m)(.*)@(.*)", result_info)
         current_show["ep_img"] = current_show["thumbnail"]
         if result:
             # get short tvshow info and next aired episode
             for item in result:
                 current_show[item[0].replace("<pre>" , "")] = item[1]
-                #log( "### %s : %s " % ( item[0].replace("<pre>" , "") , 
item[1] ) ) #DEBUG
 
+    def check_today_show(self):
+        self.todayshow = 0
+        self.todaylist = []
+        log( self.date )
+        for show in self.nextlist:
+            log( "################" )
+            log( "### %s" % show.get("localname") )
+            if show.get("RFC3339" , "" )[:10] == self.date:
+                self.todayshow = self.todayshow + 1
+                self.todaylist.append(show.get("localname"))
+                log( "TODAY" )
+                show["Today"] = "True"
+            log( "### %s" % show.get("Next Episode", "")  )
+            log( "### %s" % show.get("RFC3339", "no rfc") )
+            log( str(show.get("RFC3339", "")[:10]) )
+        log( "### today show: %s - %s" % ( self.todayshow , 
str(self.todaylist).strip("[]") ) )
 
     def get_list(self , listname ):
         path = os.path.join( DATA_PATH , listname )
@@ -239,7 +205,7 @@ class NextAired:
             log( "### Load list: %s" % path )
             return self.load_file(path)
         else:
-            log( "### Load list: no file found! generating %s !" % listname )
+            log( "### Load list: %s not found!" % listname )
             return []
 
     def load_file( self , file_path ):
@@ -253,41 +219,136 @@ class NextAired:
     def save_file( self , txt , filename):
         path = os.path.join( DATA_PATH , filename )
         try:
-            if txt:file( path , "w" ).write( repr( txt ) )
+            if txt:
+                file( path , "w" ).write( repr( txt ) )
         except:
             print_exc()
             log( "### ERROR could not save file %s" % DATA_PATH )
 
-    def listing(self):
-        # json statement for tv shows
-        json_query = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": 
"VideoLibrary.GetTVShows", "params": {"properties": ["file", "thumbnail"], 
"sort": { "method": "label" } }, "id": 1}')
-        json_response = re.compile( "{(.*?)}", re.DOTALL ).findall(json_query)
-        log( json_response )
-        self.TVlist = []
-        for tvshowitem in json_response:
-            log( tvshowitem )
-            findtvshowname = re.search( '"label": ?"(.*?)",["\n]', tvshowitem )
-            if findtvshowname:
-                tvshowname = ( findtvshowname.group(1) )
-                findpath = re.search( '"file": ?"(.*?)",["\n]', tvshowitem )
-                if findpath:
-                    path = (findpath.group(1))
-                else:
-                    path = ''
-                findthumbnail = re.search( '"thumbnail": ?"(.*?)",["\n]', 
tvshowitem )
-                if findthumbnail:
-                    thumbnail = (findthumbnail.group(1))
-                else:
-                    thumbnail = ''
-                self.TVlist.append( ( tvshowname , path, thumbnail ) )
-        log( self.TVlist )
-        return self.TVlist
+    def push_data(self):
+        self.WINDOW.setProperty("NextAired.Total" , str(len(self.nextlist)) )
+        self.WINDOW.setProperty("NextAired.TodayTotal" , str(self.todayshow) )
+        self.WINDOW.setProperty("NextAired.TodayShow" , 
str(self.todaylist).strip("[]") )
+        # DEPRECATED
+        for count in range( len(self.nextlist) ):
+            self.WINDOW.clearProperty("NextAired.%d.ShowTitle" % ( count + 1, 
))
+        for count, current_show in enumerate( self.nextlist ):
+            self.WINDOW.setProperty("NextAired.%d.Today" % ( count + 1, ), 
current_show.get( "Today" , "False"))
+            self.WINDOW.setProperty("NextAired.%d.ShowTitle" % ( count + 1, ), 
current_show.get( "localname", ""))
+            try:
+                next = current_show.get("Next Episode","").split("^")
+                self.WINDOW.setProperty("NextAired.%d.NextDate" % ( count + 1, 
), next[2] or "")
+                self.WINDOW.setProperty("NextAired.%d.NextTitle" % ( count + 
1, ), next[1] or "")
+                self.WINDOW.setProperty("NextAired.%d.NextNumber" % ( count + 
1, ), next[0] or "")
+            except:
+                print_exc()
+            try:
+                latest = current_show.get("Latest Episode","").split("^")
+                self.WINDOW.setProperty("NextAired.%d.LatestDate" % ( count + 
1, ), latest[2] or "")
+                self.WINDOW.setProperty("NextAired.%d.LatestTitle" % ( count + 
1, ), latest[1] or "")
+                self.WINDOW.setProperty("NextAired.%d.LatestNumber" % ( count 
+ 1, ), latest[0] or "")
+            except:
+                print_exc()
+            self.WINDOW.setProperty("NextAired.%d.Airtime" % ( count + 1, ), 
current_show.get("Airtime", "")) 
+            self.WINDOW.setProperty("NextAired.%d.Showpath" % ( count + 1, ), 
current_show.get("path", ""))
+            self.WINDOW.setProperty("NextAired.%d.Status" % ( count + 1, ), 
current_show.get("Status", ""))
+            self.WINDOW.setProperty("NextAired.%d.ep_img" % ( count + 1, ), 
current_show.get("ep_img", ""))
+            self.WINDOW.setProperty("NextAired.%d.Network" % ( count + 1, ), 
current_show.get("Network", ""))
+            self.WINDOW.setProperty("NextAired.%d.Started" % ( count + 1, ), 
current_show.get("Started", ""))
+            self.WINDOW.setProperty("NextAired.%d.Classification" % ( count + 
1, ), current_show.get("Classification", ""))
+            self.WINDOW.setProperty("NextAired.%d.Genres" % ( count + 1, ), 
current_show.get("Genres", ""))
+            self.WINDOW.setProperty("NextAired.%d.Premiered" % ( count + 1, ), 
current_show.get("Premiered", ""))
+            self.WINDOW.setProperty("NextAired.%d.Country" % ( count + 1, ), 
current_show.get("Country", ""))
+            self.WINDOW.setProperty("NextAired.%d.Runtime" % ( count + 1, ), 
current_show.get("Runtime", ""))
+            self.WINDOW.setProperty("NextAired.%d.Fanart" % ( count + 1, ), 
current_show.get("Fanart", ""))
+            try:
+                airday, shortime = current_show.get("Airtime", "  at  " 
).split(" at ")
+                self.WINDOW.setProperty("NextAired.%d.airday" % ( count + 1, 
), airday)
+                self.WINDOW.setProperty("NextAired.%d.shortime" % ( count + 1, 
), shortime)
+            except:
+                log( "### %s" % current_show.get("Airtime", "  at  "))
+
+    def show_gui(self):
+        import next_aired_dialog
+        next_aired_dialog.MyDialog(self.nextlist, self.set_labels)
+
+    def _set_alarm( self ):
+        log( "### Alarm enabled" )
+        command = "XBMC.RunScript(%s,silent=True&alarm=1200)" % ( 
os.path.join( __cwd__, __file__ ) )
+        xbmc.executebuiltin( "AlarmClock(NextAired,%s,1200,true)" % command )
+
+    def run_daemon(self):
+        self._stop = False
+        self.previousitem = ''
+        self.current_show_data = self.get_list("next_aired.db")
+        if self.current_show_data == "[]":
+            self._stop = True
+        while not self._stop:
+            self.selecteditem = xbmc.getInfoLabel("ListItem.TVShowTitle")
+            if self.selecteditem != self.previousitem:
+                self.WINDOW.clearProperty("NextAired.Label")
+                self.previousitem = self.selecteditem
+                for item in self.current_show_data:
+                    if self.selecteditem == item.get("localname", "") and 
item.get("Next Episode" , False):
+                        self.set_labels('windowproperty', item)
+                        break
+            xbmc.sleep(100)
+            if not xbmc.getCondVisibility("Window.IsVisible(10025)"):
+                self.WINDOW.clearProperty("NextAired.Label")
+                self._stop = True
+
+    def set_labels(self, label, item, return_items = False ):
+        if label == "windowproperty":
+            label = xbmcgui.Window( 10000 )
+            prefix = 'NextAired.'
+            label.setProperty(prefix + "Label", item.get("localname", ""))
+            label.setProperty(prefix + "Thumb", item.get("ep_img", ""))
+        else:
+            label = xbmcgui.ListItem()
+            prefix = ''
+            label.setLabel(item.get("localname", ""))
+            label.setThumbnailImage(item.get("ep_img", ""))
+        label.setProperty(prefix + "AirTime", item.get("Airtime", ""))
+        label.setProperty(prefix + "Path", item.get("path", ""))
+        label.setProperty(prefix + "Status", item.get("Status", ""))
+        label.setProperty(prefix + "Network", item.get("Network", ""))
+        label.setProperty(prefix + "Started", item.get("Started", ""))
+        label.setProperty(prefix + "Classification", 
item.get("Classification", ""))
+        label.setProperty(prefix + "Genre", item.get("Genres", ""))
+        label.setProperty(prefix + "Premiered", item.get("Premiered", ""))
+        label.setProperty(prefix + "Country", item.get("Country", ""))
+        label.setProperty(prefix + "Runtime", item.get("Runtime", ""))
+        label.setProperty(prefix + "Fanart", item.get("fanart", ""))
+        if item.get("RFC3339" , "" )[:10] == self.date:
+            label.setProperty(prefix + "Today", "True")
+        else:
+            label.setProperty(prefix + "Today", "False")
+        try:
+            next = item.get("Next Episode","").split("^")
+            label.setProperty(prefix + "NextDate", next[2] or "")
+            label.setProperty(prefix + "NextTitle", next[1] or "")
+            label.setProperty(prefix + "NextNumber", next[0] or "")
+        except:
+            print_exc()
+        try:
+            latest = item.get("Latest Episode","").split("^")
+            label.setProperty(prefix + "LatestDate", latest[2] or "")
+            label.setProperty(prefix + "LatestTitle", latest[1] or "")
+            label.setProperty(prefix + "LatestNumber", latest[0] or "")
+        except:
+            print_exc()
+        try:
+            airday, shorttime = item.get("Airtime", "  at  ").split(" at ")
+            label.setProperty(prefix + "AirDay", airday)
+            label.setProperty(prefix + "ShortTime", shorttime)
+        except:
+            log( "### %s" % item.get("Airtime", "  at  "))
+        if return_items:
+            return label, airday
 
     def close(self , msg ):
-        log( msg )
+        log( "### %s" % msg )
         exit
 
-if ( __name__ == "__main__" ): 
-    footprints()
+if ( __name__ == "__main__" ):
     NextAired()
-
diff --git a/script.tv.show.next.aired/resources/language/English/strings.xml 
b/script.tv.show.next.aired/resources/language/English/strings.xml
index 037ecfe..b6f0360 100644
--- a/script.tv.show.next.aired/resources/language/English/strings.xml
+++ b/script.tv.show.next.aired/resources/language/English/strings.xml
@@ -1,15 +1,16 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <strings>
-       <string id="450">Latest Episode</string>
-       <string id="451">Next Episode</string>
-       <string id="452">Airtime</string>
-       <string id="453">Network</string>
-       <string id="454">URL</string>
+       <string id="450">TV Guide</string>
        <string id="32101">TV Show - Next Aired</string>
        <string id="32102">Getting information...</string>
        <string id="32103">CANCELED</string>
        <string id="32104">Operation canceled by user.</string>
        <string id="45000">Display</string>
-       <string id="45001">View Mode</string>
+       <string id="45001">Thumbnail type</string>
+       <string id="45002">Download banners (Logo Downloader required)</string>
+       <string id="45003">Download logos (Logo Downloader required)</string>
+       <string id="45004">Enable background fanart</string>
+       <string id="45005">Enable 16:9 preview thumbs</string>
+       <string id="45006">Download 16:9 preview thumbs (Logo Downloader 
required)</string>
 </strings>
 
diff --git a/script.tv.show.next.aired/resources/language/Portuguese 
(Brazil)/strings.xml b/script.tv.show.next.aired/resources/language/Portuguese 
(Brazil)/strings.xml
index 3a57191..063a964 100644
--- a/script.tv.show.next.aired/resources/language/Portuguese 
(Brazil)/strings.xml      
+++ b/script.tv.show.next.aired/resources/language/Portuguese 
(Brazil)/strings.xml      
@@ -1,14 +1,8 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <strings>
-       <string id="450">Último Episódio</string>
-       <string id="451">Próximo Episódio</string>
-       <string id="452">Data Exibição</string>
-       <string id="453">Network</string>
-       <string id="454">URL</string>
+       <string id="450">TV Guide</string>
        <string id="32101">TV Show - Next Aired</string>
        <string id="32102">Pegando Informação...</string>
        <string id="32103">CANCELADO</string>
        <string id="32104">Operação cancelada pelo Usuário.</string>
-       <string id="45000">Display</string>
-       <string id="45001">View Mode</string>
 </strings>
diff --git a/script.tv.show.next.aired/resources/lib/next_aired_dialog.py 
b/script.tv.show.next.aired/resources/lib/next_aired_dialog.py
index 2675205..2210c19 100644
--- a/script.tv.show.next.aired/resources/lib/next_aired_dialog.py
+++ b/script.tv.show.next.aired/resources/lib/next_aired_dialog.py
@@ -1,132 +1,86 @@
-# -*- coding: utf-8 -*-
-
+from datetime import date
 from traceback import print_exc
-import xbmc
-import xbmcgui
-import xbmcaddon
+import xbmc, xbmcgui, xbmcaddon
 
 __addon__ = xbmcaddon.Addon()
 __cwd__ = __addon__.getAddonInfo('path')
 
-
-class MainGui( xbmcgui.WindowXMLDialog ):
-    # control id's
-    CONTROL_MAIN_LIST_START  = 50
-    CONTROL_MAIN_LIST_END    = 59
-
-    def __init__( self, *args, **kwargs ):
-        xbmcgui.WindowXMLDialog.__init__( self )
-        xbmc.executebuiltin( "Skin.Reset(AnimeWindowXMLDialogClose)" )
-        xbmc.executebuiltin( "Skin.SetBool(AnimeWindowXMLDialogClose)" )
-        self.next_ep = kwargs.get( "listing" )
+class Gui( xbmcgui.WindowXML ):
+    def __init__(self, *args, **kwargs):
+        xbmcgui.WindowXML.__init__( self )
+        self.nextlist  = kwargs['listing']
+        self.setLabels = kwargs['setLabels']
 
     def onInit(self):
-        try:
-            self.set_container()
-            id = 50 + int( __addon__.getSetting( "view_mode" ) )
-            xbmc.executebuiltin( "Container.SetViewMode(%i)" % id )
-        except:
-            print_exc()
-
-    def set_container(self):
-        try:
-            # reset all container
-            self.clearList()
-            for episode in self.next_ep:
-                #On crée un element de liste, avec son label
-                listitem = xbmcgui.ListItem( "%s" % episode["Show Name"] )
-                for keys in episode:
-                    if keys == "Next Episode":
-                        listitem.setProperty("next_ep_se", "Season %s Episode 
%s" % (episode[keys].split("^")[0].split("x")[0] , 
episode[keys].split("^")[0].split("x")[1]))
-                        listitem.setProperty("next_ep_season", 
episode[keys].split("^")[0].split("x")[0])
-                        listitem.setProperty("next_ep_num", 
episode[keys].split("^")[0].split("x")[1])
-                        listitem.setProperty("next_ep_name", 
episode[keys].split("^")[1])
-                        next_ep_date = episode[keys].split("^")[2].split("/")
-                        if len(next_ep_date) == 3: 
listitem.setProperty("next_ep_date", "%s %s %s" % ( next_ep_date[1] , 
next_ep_date[0] , next_ep_date[2] ) )
-                        elif len(next_ep_date) == 2: 
listitem.setProperty("next_ep_date", "%s %s" % ( next_ep_date[0] , 
next_ep_date[1] ) )
-                        else: listitem.setProperty("next_ep_date", 
next_ep_date[0] )
-                    #else:
-                    listitem.setProperty(keys.replace( "+", "" ), 
episode[keys].replace( "^", ". " ).replace( "|", "/" ))
-
-                    #print "-"*100
-                    #print keys
-                    #print repr( episode[keys] )
-                    #print "-"*100
-                #infos availables:
-                #Status
-                #ep_img
-                #RFC3339
-                #GMT+0 NODST
-                #Network
-                #Classification
-                #Started
-                #Show Name
-                #Show path
-                #Show URL
-                #Genres
-                #Premiered
-                #Airtime
-                #Ended
-                #Show ID
-                #Country
-                #Next Episode
-                #Runtime
-                #dbname
-                #Latest Episode
-
-                #On injecte l'élément liste à la liste xml
-                self.addItem( listitem )
-        except:
-            print_exc()
+        num = int( __addon__.getSetting( "ThumbType" ) )
+        xbmc.executebuiltin( "SetProperty(TVGuide.ThumbType,%i,Home)" % num )
+        if __addon__.getSetting( "PreviewThumbs" ) == 'true':
+            xbmc.executebuiltin( "SetProperty(TVGuide.PreviewThumbs,1,Home)" )
+        else:
+            xbmc.executebuiltin( "ClearProperty(TVGuide.PreviewThumbs,Home)" )
+        if __addon__.getSetting( "BackgroundFanart" ) == 'true':
+            xbmc.executebuiltin( 
"SetProperty(TVGuide.BackgroundFanart,1,Home)" )
+        else:
+            xbmc.executebuiltin( 
"ClearProperty(TVGuide.BackgroundFanart,Home)" )
+        self.settingsOpen = False
+        self.listitems = 
{'Monday':[],'Tuesday':[],'Wednesday':[],'Thursday':[],'Friday':[],'Saturday':[],'Sunday':[]}
+        self.days = 
['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']
+        self.weekday = date.today().weekday()
+        self.dayname = self.days[self.weekday]
+        self.set_properties()
+        self.fill_containers()
+        self.set_focus()
+
+    def set_properties(self):
+        for item in self.nextlist:
+            listitem, airday = self.setLabels('listitem', item, True)
+            airdays = airday.split(', ')
+            for day in airdays:
+                self.listitems[day].append(listitem)
+
+    def fill_containers(self):
+        for count, day in enumerate (self.days):
+            self.getControl( 200 + count ).reset()
+            self.getControl( 200 + count ).addItems( self.listitems[day] )
+
+    def set_focus(self):
+        if self.listitems[self.dayname] == []:
+            dayFound = False
+            for count, day in enumerate (self.days):
+                if self.listitems[day] != []:
+                    self.setFocus ( self.getControl ( 200 + count ) )
+                    dayFound = True
+                    break
+            if dayFound == False:
+                self.setFocus( self.getControl( 9000 ) )
+        else:
+            self.setFocus( self.getControl( 200 + self.weekday ) )
 
     def onClick(self, controlID):
-        """
-            Notice: onClick not onControl
-            Notice: it gives the ID of the control not the control object
-        """
-        try:
-            if controlID == 6:
-                kb = xbmc.Keyboard( "", "Enter your TV Show" )
-                kb.doModal()
-                if kb.isConfirmed() and kb.getText():
-                    user_request = kb.getText()
-                    from scraper import getDetails
-                    self.next_ep = getDetails( user_request )
-                    del getDetails
-                    self.set_container()
-            elif controlID == 8:
-                __addon__.openSettings()
-        except:
-            print_exc()
-
+        if controlID == 8:
+            self.settingsOpen = True
+            __addon__.openSettings()
 
     def onFocus(self, controlID):
         pass
 
-    # Cette def permet de gérer les actions en fonctions de la touche du 
clavier pressée
     def onAction( self, action ):
-        #( ACTION_PARENT_DIR, ACTION_PREVIOUS_MENU, ACTION_CONTEXT_MENU, )
-        if action in ( 9, 10, 92, 216, 247, 257, 275, 61467, 61448, ): 
self._close_dialog()
-
-    def _close_dialog( self ):
-        for id in range( self.CONTROL_MAIN_LIST_START, 
self.CONTROL_MAIN_LIST_END + 1 ):
-            try:
-                if xbmc.getCondVisibility( "Control.IsVisible(%i)" % id ):
-                    __addon__.setSetting( "view_mode", str( id - 50 ) )
-                    break
-            except:
-                pass
-        import time
-        xbmc.executebuiltin( "Skin.Reset(AnimeWindowXMLDialogClose)" )
-        time.sleep( .4 )
-        self.close()
-
-def MyDialog(tv_list):
-    #"MyDialog.xml", __cwd__, current_skin, force_fallback sert a ouvrir le 
xml du script
-    w = MainGui( "DialogNextAired.xml", __cwd__, "DefaultSkin" , 
listing=tv_list )
+        if action in ( 9, 10, 92, 216, 247, 257, 275, 61467, 61448, ):
+            self.close()
+        if action in ( 7, 10, 92, ) and self.settingsOpen:
+            num = int( __addon__.getSetting( "ThumbType" ) )
+            xbmc.executebuiltin( "SetProperty(TVGuide.ThumbType,%i,Home)" % 
num )
+            if __addon__.getSetting( "PreviewThumbs" ) == 'true':
+                xbmc.executebuiltin( 
"SetProperty(TVGuide.PreviewThumbs,1,Home)" )
+            else:
+                xbmc.executebuiltin( 
"ClearProperty(TVGuide.PreviewThumbs,Home)" )
+            if __addon__.getSetting( "BackgroundFanart" ) == 'true':
+                xbmc.executebuiltin( 
"SetProperty(TVGuide.BackgroundFanart,1,Home)" )
+            else:
+                xbmc.executebuiltin( 
"ClearProperty(TVGuide.BackgroundFanart,Home)" )
+            self.settingsOpen = False
+
+def MyDialog(tv_list, setLabels):
+    w = Gui( "script-NextAired-TVGuide.xml", __cwd__, "Default" , 
listing=tv_list, setLabels=setLabels)
     w.doModal()
     del w
-
-def test():
-    tv_list = [{'Status': 'Returning Series', 'ep_img': 'C:\\Program 
Files\\XBMC\\userdata\\Thumbnails\\Video\\3\\3ae2ce22.tbn', 'RFC3339': 
'2010-08-16T22:00:00-4:00', 'GMT+0 NODST': '1282003200', 'Network': 'Showtime', 
'Classification': 'Scripted', 'Started': 'Aug/07/2005', 'Show Name': 'Weeds', 
'Show URL': 'http://www.tvrage.com/Weeds', 'Genres': 'Comedy | Crime | Drama', 
'Premiered': '2005', 'Airtime': 'Monday at 10:00 pm', 'Ended': '', 'Show ID': 
'6554', 'Country': 'USA', 'Next Episode': '06x01^Season 6 
Premiere^Aug/16/2010', 'Runtime': '30', 'dbname': 'Weeds', 'Latest Episode': 
'05x13^All About My Mom^Aug/31/2009'}, {'Status': 'Returning Series', 'ep_img': 
'C:\\Program Files\\XBMC\\userdata\\Thumbnails\\Video\\a\\af34f363.tbn', 
'RFC3339': '2010-06-19T18:50:00+01:00', 'GMT+0 NODST': '1276962600', 'Network': 
'BBC One (United Kingdom)', 'Classification': 'Scripted', 'Started': 
'Mar/26/2005', 'Show Name': 'Doctor Who (2005)', 'Show URL': 
'http://www.tvrage.com/DoctorWho_2005', 'Genres': 'Action | Adventure | 
Sci-Fi', 'Premiered': '2005', 'Airtime': 'Saturday at 07:00 pm', 'Ended': '', 
'Country': 'United Kingdom', 'Show ID': '3332', 'Special Airtime': '06:50 pm', 
'Next Episode': '05x12^The Pandorica Opens (1)^Jun/19/2010', 'Runtime': '50', 
'dbname': 'Doctor Who (2005)', 'Latest Episode': '05x11^The 
Lodger^Jun/12/2010'}, {'Status': 'New Series', 'ep_img': 'C:\\Program 
Files\\XBMC\\userdata\\Thumbnails\\Video\\d\\d2463954.tbn', 'Genres': 'Action | 
Drama', 'GMT+0 NODST': '', 'Network': 'Starz', 'Classification': 'Scripted', 
'Started': 'Jan/22/2010', 'Show Name': 'Spartacus: Blood and Sand', 'Show URL': 
'http://www.tvrage.com/Spartacus-Blood_and_Sand', 'Premiered': '2010', 
'Airtime': 'Friday at 10:00 pm', 'Ended': '', 'Show ID': '21885', 'Country': 
'USA', 'Next Episode': '02x01^Season 2, Episode 1^Jan/2011', 'Runtime': '60', 
'dbname': 'Spartacus Blood and Sand', 'Latest Episode': '01x13^Kill Them 
All^Apr/16/2010'}, {'Status': 'Returning Series', 'ep_img': 'C:\\Program 
Files\\XBMC\\userdata\\Thumbnails\\Video\\8\\877c6a59.tbn', 'RFC3339': 
'2010-09-26T21:00:00-4:00', 'GMT+0 NODST': '1285542000', 'Network': 'Showtime', 
'Classification': 'Scripted', 'Started': 'Oct/01/2006', 'Show Name': 'Dexter', 
'Show URL': 'http://www.tvrage.com/Dexter', 'Genres': 'Crime | Drama', 
'Premiered': '2006', 'Airtime': 'Sunday at 09:00 pm', 'Ended': '', 'Show ID': 
'7926', 'Country': 'USA', 'Next Episode': '05x01^Season 5, Episode 
1^Sep/26/2010', 'Runtime': '60', 'dbname': 'Dexter', 'Latest Episode': 
'04x12^The Getaway^Dec/13/2009'}, {'Status': 'Returning Series', 'ep_img': 
'C:\\Program Files\\XBMC\\userdata\\Thumbnails\\Video\\1\\1b5ead11.tbn', 
'Genres': 'Action | Adventure | Crime | Drama', 'GMT+0 NODST': '', 'Network': 
'CBS', 'Classification': 'Scripted', 'Started': 'Sep/22/2005', 'Show Name': 
'Criminal Minds', 'Show URL': 'http://www.tvrage.com/Criminal_Minds', 
'Premiered': '2005', 'Airtime': 'Wednesday at 09:00 pm', 'Ended': '', 'Show 
ID': '3171', 'Country': 'USA', 'Next Episode': '06x01^Season 6, Episode 
1^Sep/2010', 'Runtime': '60', 'dbname': 'Esprits Criminels', 'Latest Episode': 
'05x23^Our Darkest Hour^May/26/2010'}, {'Status': 'Returning Series', 'ep_img': 
'C:\\Program Files\\XBMC\\userdata\\Thumbnails\\Video\\1\\160b5358.tbn', 
'RFC3339': '2010-09-11T22:00:00-4:00', 'GMT+0 NODST': '1284249600', 'Network': 
'Showtime', 'Classification': 'Scripted', 'Started': 'Aug/13/2007', 'Show 
Name': 'Californication', 'Show URL': 'http://www.tvrage.com/Californication', 
'Genres': 'Comedy | Drama', 'Premiered': '2007', 'Airtime': 'Sunday at 10:00 
pm', 'Ended': '', 'Show ID': '15319', 'Country': 'USA', 'Next Episode': 
'04x01^Season 4, Episode 1^Sep/11/2010', 'Runtime': '30', 'dbname': 
'Californication', 'Latest Episode': '03x12^Mia Culpa^Dec/13/2009'}, {'Status': 
'New Series', 'ep_img': 'C:\\Program 
Files\\XBMC\\userdata\\Thumbnails\\Video\\f\\fb6829f7.tbn', 'RFC3339': 
'2010-06-14T12:00:00+09:00', 'GMT+0 NODST': '1276477200', 'Network': 'TV Tokyo 
(Japan)', 'Classification': 'Animation', 'Started': 'Oct/12/2009', 'Show Name': 
'Fairy Tail', 'Show URL': 'http://www.tvrage.com/shows/id-24288', 'Genres': 
'Anime | Action | Adventure | Drama | Fantasy', 'Premiered': '2009', 'Airtime': 
'Monday', 'Ended': '', 'Show ID': '24288', 'Country': 'Japan', 'Next Episode': 
'01x34^Gerard^Jun/14/2010', 'Runtime': '30', 'dbname': 'Fairy Tail', 'Latest 
Episode': '01x33^Tower of Paradise^Jun/07/2010'}, {'Status': 'Returning 
Series', 'ep_img': 'C:\\Program 
Files\\XBMC\\userdata\\Thumbnails\\Video\\2\\2377d88e.tbn', 'RFC3339': 
'2010-06-17T19:30:00+09:00', 'GMT+0 NODST': '1276763400', 'Network': 'TV Tokyo 
(Japan)', 'Classification': 'Animation', 'Started': 'Feb/15/2007', 'Show Name': 
'Naruto: Shippuuden', 'Show URL': 'http://www.tvrage.com/Naruto_Shippuuden', 
'Genres': 'Anime | Action | Adventure | Comedy | Drama | Fantasy | Mystery', 
'Premiered': '2007', 'Airtime': 'Thursday at 07:30 pm', 'Ended': '', 'Show ID': 
'14748', 'Country': 'Japan', 'Next Episode': '07x22^Nine-Tails Capture 
Complete^Jun/17/2010', 'Runtime': '30', 'dbname': 'Naruto', 'Latest Episode': 
'07x21^Crisis! Sage Mode Disappears^Jun/10/2010'}, {'Status': 'Returning 
Series', 'ep_img': 'C:\\Program 
Files\\XBMC\\userdata\\Thumbnails\\Video\\1\\1b84f8e2.tbn', 'RFC3339': 
'2010-06-15T19:30:00+09:00', 'GMT+0 NODST': '1276590600', 'Network': 'TV Tokyo 
(Japan)', 'Classification': 'Animation', 'Started': 'Oct/05/2004', 'Show Name': 
'Bleach (JP)', 'Show URL': 'http://www.tvrage.com/Bleach_JP', 'Genres': 'Anime 
| Action | Adventure | Fantasy', 'Premiered': '2004', 'Airtime': 'Wednesday at 
07:30 pm', 'Ended': '', 'Show ID': '2825', 'Country': 'Japan', 'Next Episode': 
'14x20^The Approaching Breath of Death, the King Who Rules Over 
Death!^Jun/15/2010', 'Runtime': '30', 'dbname': 'Bleach', 'Latest Episode': 
'14x19^Hitsugaya, the Suicidal Frozen Heavens Hundred Flowers 
Funeral!^Jun/08/2010'}, {'Status': 'Returning Series', 'ep_img': 'C:\\Program 
Files\\XBMC\\userdata\\Thumbnails\\Video\\1\\15b02f06.tbn', 'RFC3339': 
'2010-06-17T19:30:00+09:00', 'GMT+0 NODST': '1276763400', 'Network': 'TV Tokyo 
(Japan)', 'Classification': 'Animation', 'Started': 'Feb/15/2007', 'Show 
Name': 'Naruto: Shippuuden', 'Show URL': 
'http://www.tvrage.com/Naruto_Shippuuden', 'Genres': 'Anime | Action | 
Adventure | Comedy | Drama | Fantasy | Mystery', 'Premiered': '2007', 
'Airtime': 'Thursday at 07:30 pm', 'Ended': '', 'Show ID': '14748', 'Country': 
'Japan', 'Next Episode': '07x22^Nine-Tails Capture Complete^Jun/17/2010', 
'Runtime': '30', 'dbname': 'Naruto Shippuuden', 'Latest Episode': 
'07x21^Crisis! Sage Mode Disappears^Jun/10/2010'}]
-    MyDialog(tv_list)
diff --git a/script.tv.show.next.aired/resources/settings.xml 
b/script.tv.show.next.aired/resources/settings.xml
index 731a2b9..3d95a29 100644
--- a/script.tv.show.next.aired/resources/settings.xml
+++ b/script.tv.show.next.aired/resources/settings.xml
@@ -1,5 +1,10 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <settings>
   <setting type="lsep" label="45000" />
-  <setting id="view_mode" type="enum" values="Banner|Poster|Wide" 
label="45001" default="0" />
+  <setting id="ThumbType" type="enum" label="45001" default="0" 
values="Thumb|Banner|Logo" />
+  <setting id="DownloadBanners" type="action" subsetting="true" label="45002" 
action="RunScript(script.logo-downloader,mode=bulk,clearart=False,logo=False,showthumb=False,poster=False,banner=banner.jpg)"
 visible="gt(-1,0) + lt(-1,2)" />
+  <setting id="DownloadLogos" type="action" subsetting="true" label="45003" 
action="RunScript(script.logo-downloader,mode=bulk,clearart=False,logo=True,showthumb=False,poster=False,banner=False)"
 visible="gt(-2,1) + lt(-2,3)" />
+  <setting id="BackgroundFanart" type="bool" label="45004" default="False" />
+  <setting id="PreviewThumbs" type="bool" label="45005" default="False" />
+  <setting id="DownloadPreviewThumbs" type="action" subsetting="true" 
label="45006" 
action="RunScript(script.logo-downloader,mode=bulk,clearart=False,logo=False,showthumb=landscape.jpg,poster=False,banner=False)"
 visible="eq(-1,true)" />
 </settings>

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

Summary of changes:
 script.tv.show.next.aired/README.txt               |  101 +
 script.tv.show.next.aired/addon.xml                |   12 +-
 script.tv.show.next.aired/changelog.txt            |    7 +
 script.tv.show.next.aired/default.py               |  399 ++--
 .../resources/language/English/strings.xml         |   13 +-
 .../resources/language/German/strings.xml          |   16 +
 .../language/Portuguese (Brazil)/strings.xml       |    8 +-
 .../resources/lib/next_aired_dialog.py             |  186 +-
 script.tv.show.next.aired/resources/settings.xml   |    7 +-
 .../Default/720p/script-NextAired-TVGuide.xml      | 2304 ++++++++++++++++++++
 .../skins/Default/media/TVGuide-Background.jpg     |  Bin 0 -> 578311 bytes
 .../skins/Default/media/TVGuide-Button.png         |  Bin 5605 -> 5605 bytes
 .../skins/Default/media/TVGuide-ContentPanel.png   |  Bin 0 -> 60617 bytes
 .../Default/media/TVGuide-ContentPanelMirror.png   |  Bin 0 -> 17603 bytes
 .../skins/Default/media/TVGuide-Floor.png          |  Bin 2904 -> 2904 bytes
 .../skins/Default/media/TVGuide-GlassOverlay.png   |  Bin 0 -> 4562 bytes
 .../skins/Default/media/TVGuide-Grid-Highlight.png |  Bin 0 -> 19942 bytes
 .../resources/skins/Default/media/TVGuide-Grid.png |  Bin 0 -> 22135 bytes
 .../skins/Default/media/TVGuide-HasSub.png         |  Bin 3533 -> 5191 bytes
 .../media/TVGuide-Header.png}                      |  Bin 5795 -> 5795 bytes
 .../skins/Default/media/TVGuide-HomeIcon-Focus.png |  Bin 3575 -> 4215 bytes
 .../skins/Default/media/TVGuide-HomeIcon.png       |  Bin 2842 -> 3220 bytes
 .../skins/Default/media/TVGuide-Icon.png}          |  Bin 100518 -> 100518 
bytes
 .../skins/Default/media/TVGuide-MediaBladeSub.png  |  Bin 16353 -> 16353 bytes
 .../media/TVGuide-MenuItemFO.png}                  |  Bin 24951 -> 24951 bytes
 .../skins/DefaultSkin/720p/DialogNextAired.xml     |  737 -------
 .../media/NextAired-DialogCloseButton-focus.png    |  Bin 5216 -> 0 bytes
 .../media/NextAired-DialogCloseButton.png          |  Bin 4522 -> 0 bytes
 .../DefaultSkin/media/NextAired-GlassOverlay.png   |  Bin 6428 -> 0 bytes
 .../DefaultSkin/media/NextAired-HomeBlade.png      |  Bin 195285 -> 0 bytes
 .../DefaultSkin/media/NextAired-MediaBladeSub.png  |  Bin 20621 -> 0 bytes
 .../DefaultSkin/media/NextAired-button-focus.png   |  Bin 6231 -> 0 bytes
 .../DefaultSkin/media/NextAired-button-nofocus.png |  Bin 2935 -> 0 bytes
 .../DefaultSkin/media/NextAired-scroll-down-2.png  |  Bin 4804 -> 0 bytes
 .../media/NextAired-scroll-down-focus-2.png        |  Bin 4483 -> 0 bytes
 .../DefaultSkin/media/NextAired-scroll-up-2.png    |  Bin 4779 -> 0 bytes
 .../media/NextAired-scroll-up-focus-2.png          |  Bin 4500 -> 0 bytes
 .../DefaultSkin/media/NextAired-separator.png      |  Bin 2984 -> 0 bytes
 .../resources/skins/DefaultSkin/skin.xml           |   14 -
 39 files changed, 2748 insertions(+), 1056 deletions(-)
 create mode 100644 script.tv.show.next.aired/README.txt
 create mode 100644 
script.tv.show.next.aired/resources/language/German/strings.xml
 create mode 100644 
script.tv.show.next.aired/resources/skins/Default/720p/script-NextAired-TVGuide.xml
 create mode 100644 
script.tv.show.next.aired/resources/skins/Default/media/TVGuide-Background.jpg
 copy script.globalsearch/resources/skins/Default/media/button-focus.png => 
script.tv.show.next.aired/resources/skins/Default/media/TVGuide-Button.png 
(100%)
 create mode 100644 
script.tv.show.next.aired/resources/skins/Default/media/TVGuide-ContentPanel.png
 create mode 100644 
script.tv.show.next.aired/resources/skins/Default/media/TVGuide-ContentPanelMirror.png
 copy 
script.games.rom.collection.browser/resources/skins/Default/media/rcb-floor.png 
=> script.tv.show.next.aired/resources/skins/Default/media/TVGuide-Floor.png 
(100%)
 create mode 100644 
script.tv.show.next.aired/resources/skins/Default/media/TVGuide-GlassOverlay.png
 create mode 100644 
script.tv.show.next.aired/resources/skins/Default/media/TVGuide-Grid-Highlight.png
 create mode 100644 
script.tv.show.next.aired/resources/skins/Default/media/TVGuide-Grid.png
 copy script.cdartmanager/resources/skins/Default/media/blank_artwork.png => 
script.tv.show.next.aired/resources/skins/Default/media/TVGuide-HasSub.png (51%)
 rename 
script.tv.show.next.aired/resources/skins/{DefaultSkin/media/NextAired-header.png
 => Default/media/TVGuide-Header.png} (100%)
 copy script.cdartmanager/resources/skins/Default/media/HomeHasSub.png => 
script.tv.show.next.aired/resources/skins/Default/media/TVGuide-HomeIcon-Focus.png
 (64%)
 copy script.mpdc/resources/skins/Confluence/media/RecentAddedNF.png => 
script.tv.show.next.aired/resources/skins/Default/media/TVGuide-HomeIcon.png 
(84%)
 copy script.tv.show.next.aired/{icon.png => 
resources/skins/Default/media/TVGuide-Icon.png} (100%)
 copy script.xbmc.subtitles/resources/skins/Default/media/MediaBladeSub.png => 
script.tv.show.next.aired/resources/skins/Default/media/TVGuide-MediaBladeSub.png
 (100%)
 rename 
script.tv.show.next.aired/resources/skins/{DefaultSkin/media/NextAired-MenuItemFO.png
 => Default/media/TVGuide-MenuItemFO.png} (100%)
 delete mode 100644 
script.tv.show.next.aired/resources/skins/DefaultSkin/720p/DialogNextAired.xml
 delete mode 100644 
script.tv.show.next.aired/resources/skins/DefaultSkin/media/NextAired-DialogCloseButton-focus.png
 delete mode 100644 
script.tv.show.next.aired/resources/skins/DefaultSkin/media/NextAired-DialogCloseButton.png
 delete mode 100644 
script.tv.show.next.aired/resources/skins/DefaultSkin/media/NextAired-GlassOverlay.png
 delete mode 100644 
script.tv.show.next.aired/resources/skins/DefaultSkin/media/NextAired-HomeBlade.png
 delete mode 100644 
script.tv.show.next.aired/resources/skins/DefaultSkin/media/NextAired-MediaBladeSub.png
 delete mode 100644 
script.tv.show.next.aired/resources/skins/DefaultSkin/media/NextAired-button-focus.png
 delete mode 100644 
script.tv.show.next.aired/resources/skins/DefaultSkin/media/NextAired-button-nofocus.png
 delete mode 100644 
script.tv.show.next.aired/resources/skins/DefaultSkin/media/NextAired-scroll-down-2.png
 delete mode 100644 
script.tv.show.next.aired/resources/skins/DefaultSkin/media/NextAired-scroll-down-focus-2.png
 delete mode 100644 
script.tv.show.next.aired/resources/skins/DefaultSkin/media/NextAired-scroll-up-2.png
 delete mode 100644 
script.tv.show.next.aired/resources/skins/DefaultSkin/media/NextAired-scroll-up-focus-2.png
 delete mode 100644 
script.tv.show.next.aired/resources/skins/DefaultSkin/media/NextAired-separator.png
 delete mode 100644 
script.tv.show.next.aired/resources/skins/DefaultSkin/skin.xml


hooks/post-receive
-- 
Scripts

------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2dcopy2
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to