The branch, frodo has been updated
       via  71f0c06b7ee43201d6c96a7b4909f2085ba4291c (commit)
      from  4a6dbaceab6ef7826cd34a1148dbae41ab7f6914 (commit)

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

commit 71f0c06b7ee43201d6c96a7b4909f2085ba4291c
Author: Martijn Kaijser <[email protected]>
Date:   Mon Jul 28 19:05:08 2014 +0200

    [script.tv.show.next.aired] 6.0.11

diff --git a/script.tv.show.next.aired/README.txt 
b/script.tv.show.next.aired/README.txt
index 3c1a6fe..f57d62d 100644
--- a/script.tv.show.next.aired/README.txt
+++ b/script.tv.show.next.aired/README.txt
@@ -2,11 +2,15 @@
 How to use this addon in your skin:
 
 I) Startup.xml:
-Beginning with 6.0.8 there is no longer any need to run the next-aired script 
in the skin's Startup.xml.  Skins that have the old call should start to remove 
this soon (allowing 6.0.8 to propagate first).
+Beginning with 6.0.10 there is no longer any need to run the next-aired script
+in the skin's Startup.xml.  Skins that have the old call should start to remove
+this soon (allowing 6.0.10 to propagate first).
 
-The script now uses an xbmc.service to start up the background updater that 
will scan your library and fetch next-aired info for your shows.
+The script now uses an xbmc.service to start up the background updater that
+will scan your library and fetch next-aired info for your shows.
 
-For shows that are airing today, the script will set the window properties 
listed below.
+For shows that are airing today, the script will set the window properties
+listed below.
 
 Window(Home).Property(NextAired.%d.*):
 Label               (tv show name)
@@ -71,14 +75,15 @@ Running one of these commands in your skin will provide you 
with per-show inform
 
     RunScript(script.tv.show.next.aired,tvshowtitle=The TVShowTitle Show Name)
 
-The first tells the script to run in the background and provide next aired 
info for the focussed listitem.
-The second should be run once for every show-name change.
+The first tells the script to run in the background and provide next aired info
+for the focussed listitem (it exits when "Window.IsVisible(10025)" is no longer
+true).  The second should be run once for every show-name change.  Both provide
+info back to the skin via Window(Home).Property(NextAired.FOO) values (see
+above for a list of all the FOO values that are set).
 
-The infolabels listed above are available, using this format:
-
-Window(Home).Property(NextAired.*)
-
-Use !IsEmpty(Window(Home).Property(NextAired.NextDate)) as a visible condition!
+You can use !IsEmpty(Window(Home).Property(NextAired.NextDate)) as a visibility
+condition -- if that is empty, then no other NextAired data will be around for
+the current show.
 
 example code:
 <control type="group">
@@ -99,7 +104,7 @@ example code:
        </control>
 </control>
 
-Beginning with Next-Aired 6.0.8 the backend option can be specified as 2
+Beginning with Next-Aired 6.0.10 the backend option can be specified as 2
 space-separated numbers to specify how many ListItems should be checked and
 turned into corresponding NextAired properties.  For example, if you specify
 "backend=-2 3" then the ListItem(-2).TVShowTitle, ListItem(-1).TVShowTitle,
@@ -138,7 +143,8 @@ the user has selected the traditional, Monday-week guide:
 
 If the user chooses to include more than 7 upcoming days (including today), 
then
 episodes from the next week are included after this week's episodes for each
-day.
+day.  You can color them differently using the SecondWeek property (the
+example skin uses 2 different background colors).
 
 A list of required IDs in script-NextAired-TVGuide2.xml, which is used if
 the user has selected the new, Today-week guide:
@@ -226,18 +232,21 @@ Indicator for background fanart setting (1=enabled, empty 
if disabled):
 Indicator for 16:9-thumbs setting (1=enabled, empty if disabled):
     Window(home).Property(TVGuide.PreviewThumbs)
 
-All other IDs and properties in the default script window are optional and not 
required by the script.
+All other IDs and properties in the default script window are optional and not
+required by the script.
 
 
 IV) To force an update of the nextaired database ahead of its next scheduled 
time:
 RunScript(script.tv.show.next.aired,force=True)
 
-To force an update as well as reset all the existing data (forcing a fresh 
scan of everything) use the reset option:
+To force an update as well as reset all the existing data (forcing a fresh scan
+of everything) use the reset option:
 RunScript(script.tv.show.next.aired,reset=True)
 
 The force update and reset options are also available in the addon settings.
 
-V) To force the update of a single show (re-reading all its data), it can be 
added via a button like this one:
+V) To force the update of a single show (re-reading all its data), it can be
+added via a button like this one:
 
 <control type="button" id="550">
 <label>$LOCALIZE[24069] $LOCALIZE[4]</label>
diff --git a/script.tv.show.next.aired/addon.xml 
b/script.tv.show.next.aired/addon.xml
index 330efc1..9b1de32 100644
--- a/script.tv.show.next.aired/addon.xml
+++ b/script.tv.show.next.aired/addon.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="script.tv.show.next.aired" name="TV Show - Next Aired" 
version="6.0.10" provider-name="Ppic|Frost|ronie|`Black|phil65|WayneD">
+<addon id="script.tv.show.next.aired" name="TV Show - Next Aired" 
version="6.0.11" provider-name="Ppic|Frost|ronie|`Black|phil65|WayneD">
        <requires>
                <import addon="xbmc.python" version="2.1.0"/>
                <import addon="script.module.simplejson" version="2.0.10"/>
@@ -14,6 +14,8 @@
                <summary lang="de">Erhalten Sie Infos über die nächsten 
Ausstrahlungstermine Ihrer Serien.</summary>
                <summary lang="el">Λήψη πληροφοριών για 
την Επόμενη Προβολή των Τηλ. Σειρών</summary>
                <summary lang="en">Get info for TV Shows Next Aired.</summary>
+               <summary lang="en_NZ">Get info for TV Shows Next 
Aired.</summary>
+               <summary lang="en_US">Get info for TV Shows Next 
Aired.</summary>
                <summary lang="es">Obtener información de las siguientes 
emisiones de series.</summary>
                <summary lang="es_MX">Obtener información de las siguientes 
emisiones de series.</summary>
                <summary lang="fr">Récupère les dates de diffusions de vos 
séries</summary>
@@ -24,8 +26,10 @@
                <summary lang="hu">Információ a sorozatok következő 
vetítési idejéről.</summary>
                <summary lang="it">Ottieni info per le Serie TV trasmesse 
prossimamente</summary>
                <summary lang="ko">TV 쇼 방송 일정을 가ì 
¸ì˜µë‹ˆë‹¤.</summary>
+               <summary lang="lt">Gauti TV laidos kitos transliacijos 
informaciją.</summary>
                <summary lang="nl">Ophalen info voor komende TV shows.</summary>
-               <summary lang="pl">Otrzymaj informacje Następnie Granych 
Programach Telewizyjnych</summary>
+               <summary lang="no">Hent informasjon om kommende 
TV-programmer.</summary>
+               <summary lang="pl">Informacje o Premierach Programów 
Telewizyjnych.</summary>
                <summary lang="pt">Obter info para Próximas Exibições de 
Séries TV.</summary>
                <summary lang="pt_BR">Saiba sobre próximas exibições de 
séries de TV.</summary>
                <summary lang="ro">Află despre emisiuni care urmează să fie 
difuzate</summary>
@@ -38,6 +42,8 @@
                <description lang="de">TV Show Next Aired liefert 
Termin-Informationen über die anstehenden Episoden der Serien aus der 
Datenbank. Dazu gibt es eine Wochenansicht mit allen in der nächsten Woche 
laufenden Episoden sowie (bei vorhandenem Skin Support) die direkte Integration 
der Informationen in die Ansichten des jeweiligen Skins. Sie werden nie wieder 
eine Folge verpassen.</description>
                <description lang="el">Λήψη πληροφοριών για 
την Επόμενη Προβολή των Τηλ. Σειρών. Δε θα 
ξαναχάσετε επεισόδιο ποτέ.</description>
                <description lang="en">Get info for TV Shows Next Aired. You'll 
never miss one again.</description>
+               <description lang="en_NZ">Get info for TV Shows Next Aired. 
You'll never miss one again.</description>
+               <description lang="en_US">Get info for TV Shows Next Aired. 
You'll never miss one again.</description>
                <description lang="es">Obtener información de las siguientes 
emisiones de series. Nunca te perderás una de nuevo.</description>
                <description lang="es_MX">Obtener información de las 
siguientes emisiones de series. Nunca te perderás una de nuevo.</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>
@@ -48,8 +54,10 @@
                <description lang="hu">Információ a sorozatok következő 
vetítési idejéről. Soha nem marad le mégegyszer semmiről.</description>
                <description lang="it">Ottieni info per le Serie TV trasmesse 
prossimamente. Non ne perderai più una.</description>
                <description lang="ko">TV 쇼 방송 일정을 가져옵니다. 
놓치는 일은 절대 없을 것입니다.</description>
+               <description lang="lt">Gauti TV laidos kitos transliacijos 
informaciją. Jūs niekada daugiau jos nepraleisite.</description>
                <description lang="nl">Ophalen info voor komende TV shows. Je 
zult ze nooit meer missen.</description>
-               <description lang="pl">Otrzymaj informacje Następnie Granych 
Programach Telewizyjnych. Nigdy już żadnego nie przegapisz.</description>
+               <description lang="no">FÃ¥ informasjon om neste TV-sending. Du 
vil aldri gå glipp av en episode igjen.</description>
+               <description lang="pl">Informacje o Premierach Programów 
Telewizyjnych. Nigdy już żadnego nie przegapisz.</description>
                <description lang="pt">Obter info para Próximas Exibições de 
Séries TV. Nunca mais vai perder uma.</description>
                <description lang="pt_BR">Saiba sobre próximas exibições de 
séries de TV. Você nunca perderá um episódio.</description>
                <description lang="ro">Află despre emisiuni care urmează să 
fie difuzate. Nu vei mai rata nici una.</description>
diff --git a/script.tv.show.next.aired/cal-server 
b/script.tv.show.next.aired/cal-server
index 9bf1a73..11a80ce 100644
--- a/script.tv.show.next.aired/cal-server
+++ b/script.tv.show.next.aired/cal-server
@@ -10,7 +10,8 @@
 #                   the NAMEs together.  Use '*" for the default profile (aka 
"").
 # /notprofile/NAME  Exclude all NAME profile(s) (repeatable).  Gives 
intersection.
 # /yesterday        Include yesterday's show's in the output.
-# /days/NUM         Output NUM days (counting today forward).  Defaults to 15.
+# /days=NUM         Output NUM days (counting today forward).  Defaults to 15.
+# /noempty          Skip the days without shows (e.g. /days=365/noempty).
 #
 # The script creates the cal-server.conf file on first run.  The user can feel
 # free to edit the colors therein, omit shows by adding the line: "omit": true,
@@ -46,6 +47,10 @@ COLORS = """
     white/Orchid PaleGoldenRod white/RoyalBlue ForestGreen white/SaddleBrown
     white/DarkSalmon Turquoise Yellow Thistle white/Violet Wheat Plum
     white/Pink white/DarkRed LawnGreen white/DarkGreen white/Red
+    white/MidnightBlue Aqua Aquamarine CadetBlue white/Brown DarkGray
+    white/DarkOliveGreen HotPink LightBlue LightCoral LightGreen
+    LightPink MediumOrchid MediumSpringGreen MediumSeaGreen Tan
+    white/Tomato
     """
 
 def main(argv):
@@ -94,17 +99,25 @@ class MyHandler(BaseHTTPRequestHandler):
                 want_profiles.append(profile)
 
         day_cnt = 15
-        days_regex = re.compile(r"/days/(\d+)")
+        days_regex = re.compile(r"/days[/=](\d+)")
         m = days_regex.search(req)
         if m:
             req = days_regex.sub('', req, 1)
             day_cnt = int(m.group(1))
 
-        if req == '/yesterday/':
+        want_yesterday = False
+        yest_regex = re.compile(r"/yesterday/")
+        if yest_regex.search(req):
+            req = yest_regex.sub('/', req)
             want_yesterday = True
-        elif req == '/':
-            want_yesterday = False
-        else:
+
+        want_empty_days = True
+        empty_regex = re.compile(r"/noempty/")
+        if empty_regex.search(req):
+            req = empty_regex.sub('/', req)
+            want_empty_days = False
+
+        if req != '/':
             s.send_response(404)
             s.send_header("Content-type", "text/plain")
             s.end_headers()
@@ -113,7 +126,9 @@ class MyHandler(BaseHTTPRequestHandler):
         data = read_repr(DATA_FILE)[0]
         opts = read_json(CONF_FILE)
         if opts is None:
-            opts = { 'colors': COLORS.split(), 'shows': {}, 'default_profile': 
'' }
+            colors = COLORS.split()
+            colors += [ c + ',DarkOrange' for c in colors ]
+            opts = { 'colors': colors, 'shows': {}, 'default_profile': '' }
             opts_changed = True
         else:
             opts_changed = False
@@ -145,6 +160,7 @@ class MyHandler(BaseHTTPRequestHandler):
                     want = False
                     break
             if want:
+                show['url'] = 'http://thetvdb.com/?tab=series&id=%s' % tid
                 for ep in show['episodes']:
                     if 'bump_mins' in show_opts:
                         ep['aired'] = re.sub(
@@ -164,6 +180,13 @@ class MyHandler(BaseHTTPRequestHandler):
 <title>cal-server</title>
 
 <style>
+a {
+    color: inherit;
+    text-decoration: none;
+}
+a:hover {
+    text-decoration: underline;
+}
 table, td {
     border: 2px solid black;
     border-collapse: collapse;
@@ -206,9 +229,10 @@ setTimeout(function(){window.location.reload(true)}, 
60000);
 <table><tr>
         """)
 
-        if not day_hash[day_list[0]]:
-            day_list.pop(0)
         for d in day_list:
+            if not want_empty_days and not day_hash[d]:
+                day_hash[d] = None
+                continue
             s.wfile.write('<th>')
             if d < today_str:
                 s.wfile.write('Yesterday')
@@ -224,6 +248,8 @@ setTimeout(function(){window.location.reload(true)}, 60000);
             empty = True
             row = "</tr><tr>\n"
             for d in day_list:
+                if day_hash[d] is None:
+                    continue
                 if len(day_hash[d]):
                     ep, show = day_hash[d].pop(0)
                     show_name = show['Show Name']
@@ -235,20 +261,40 @@ setTimeout(function(){window.location.reload(true)}, 
60000);
                     if 'colors' in show_opts:
                         colors = show_opts['colors'].split('/')
                     else:
-                        colors = (opts['colors'].pop(0) if len(opts['colors']) 
else 'white').split('/')
+                        # Give a few shows complex sample colors, just to show 
what's possible.
+                        if re.match(r"doctor who", lc_show_name):
+                            colors = [ 'white', 
'MidnightBlue,#666666,MidnightBlue,MidnightBlue,MidnightBlue' ]
+                        elif re.match(r"duck dynasty", lc_show_name):
+                            colors = [ 'white', 
'DarkGoldenRod,DarkGreen,DarkGoldenRod,DarkGreen,DarkGoldenRod' ]
+                        elif re.match(r"beware the batman", lc_show_name):
+                            colors = [ 'white', 'to top 
right,#333355,Black,#333355,#333355,#333355,Black,#333355' ]
+                        elif re.match(r"masterchef", lc_show_name):
+                            colors = [ 'white', '45deg,#606dbc,#606dbc 
10px,#465298 10px,#465298 20px' ]
+                        elif re.match(r"the colbert report", lc_show_name):
+                            colors = [ 'white', 
'135deg,ForestGreen,ForestGreen 3px,CornflowerBlue 3px,CornflowerBlue 6px' ]
+                        elif re.match(r"the daily show", lc_show_name):
+                            colors = [ 'Yellow', 
'45deg,CornflowerBlue,CornflowerBlue 3px,ForestGreen 3px, ForestGreen 6px' ]
+                        else:
+                            colors = (opts['colors'].pop(0) if 
len(opts['colors']) else 'white').split('/')
                         if len(colors) < 2:
                             colors.insert(0, 'black')
                         show_opts['colors'] = '/'.join(colors)
                         opts_changed = True
                     fgcolor, bgcolor = colors
-                    name_html = show_opts.get('alt', show_name)
+                    if bgcolor.find(',') < 0:
+                        bgstyle = 'background-color: %s' % bgcolor
+                    else:
+                        bgstyle = 'background: repeating-linear-gradient(%s)' 
% bgcolor
+                    name_html = '<a href="%s">%s</a>' % (show['url'], 
show_opts.get('alt', show_name))
                     name_html = re.sub(r"\s+\(([A-Z][A-Z]|\d\d\d\d)\)", r" 
<small><small>(\1)</small></small>", name_html)
                     runtime = ep.get('Runtime', show['Runtime'])
-                    row += "<td style='color: %s; background-color: %s'>" % 
(fgcolor, bgcolor)
-                    row += div('show', name_html);
+                    show_title = '%s (%s)' % (show['Network'], show['Country'])
+                    time_title = show['Airtime']
+                    row += "<td style='color: %s; %s'>" % (fgcolor, bgstyle)
+                    row += div('show', name_html, show_title)
                     row += div('nums', '%02dx%02d' % (ep['sn'], ep['en']))
                     row += div('title', ep['name'])
-                    row += div('runtime', "(<a title='%s'>%s&nbsp;mins</a>)" % 
(bgcolor, runtime))
+                    row += div('runtime', "(%s&nbsp;mins)" % runtime, 
time_title)
                     empty = False
                 else:
                     row += '<td>'
@@ -293,8 +339,13 @@ def write_json(data, filename):
     with open(filename, 'w') as fh:
         fh.write(data)
 
-def div(class_name, txt):
-    return "<div class='%s'>%s</div>\n" % (class_name, txt)
+def div(class_name, txt, title=None):
+    attr_str = ''
+    if class_name is not None:
+        attr_str += ' class="%s"' % class_name
+    if title is not None:
+        attr_str += ' title="%s"' % title
+    return "<div%s>%s</div>\n" % (attr_str, txt)
 
 if __name__ == '__main__':
     main(sys.argv)
diff --git a/script.tv.show.next.aired/changelog.txt 
b/script.tv.show.next.aired/changelog.txt
index 52f03bd..8f0730d 100644
--- a/script.tv.show.next.aired/changelog.txt
+++ b/script.tv.show.next.aired/changelog.txt
@@ -1,3 +1,9 @@
+-6.0.11 (2014-07-27)
+- When fixing up missing artwork, we now also make use of thetvdb paths in the 
show data.
+- Added advanced options ExtraShows and OmitShows to the settings.
+- Some more tweaks to the adjunct data-viewing script, cal-server.
+- Updated language files from Transifex.
+
 -6.0.10 (2014-05-02)
 - Tweak service handling to avoid running the service on anything prior to 
12.3.
 
@@ -15,6 +21,7 @@
 - Fix a crash issue with the "nice dates" when the long-date string contains 
unicode characters.
 - Due to a potential conflict in property names, the *-TVGuide2.xml day-name 
properties (NextAired.Today, NextAired.Yesterday, NextAired.Tomorrow) are now 
deprecated.  Use NextAired.TodayText, NextAired.YesterdayText, 
NextAired.TomorrowText instead.
 - To avoid any backend conflict with the property "NextAired.Today", there is 
now a property of "NextAired.AirsToday" that a skin should query going forward 
(the older value will still be supported for quite some time, but the newer 
value is safer).
+- Added an adjunct python script that can be used to view the next-aired data 
more fully: it starts up a web server on port 9999 and can output a variety of 
day lengths, profile combos, etc.
 - Updated language files from Transifex.
 
 -6.0.7 (2014-03-25)
diff --git a/script.tv.show.next.aired/default.py 
b/script.tv.show.next.aired/default.py
index e79e91a..aa5f4df 100644
--- a/script.tv.show.next.aired/default.py
+++ b/script.tv.show.next.aired/default.py
@@ -192,6 +192,7 @@ class NextAired:
         self.FORCEUPDATE = self.params.get("force", False)
         self.RESET = self.params.get("reset", False)
         self.STOP = self.params.get("stop", False)
+        self.ONCE = self.params.get("once", False)
 
     def _footprints(self):
         def_level = 2 if self.TVSHOWTITLE else 1
@@ -298,6 +299,8 @@ class NextAired:
                     self.failure_cnt += 1
                     next_chk = self.now + FAILURE_PAUSE * 
min(self.failure_cnt, 24)
                 self.nextlist = [] # Discard the in-memory data until the next 
update
+                if self.ONCE:
+                    break
             else:
                 xbmc.sleep(1000)
         self.close("abort requested -- stopping background processing")
@@ -497,6 +500,23 @@ class NextAired:
                 show['eps_changed'] = (1, 0)
 
         TVlist = self.listing()
+
+        for tid in re.split(r"\D+", __addon__.getSetting("ExtraShows")):
+            if tid != '':
+                prior_data = show_dict.get(int(tid), None)
+                if prior_data:
+                    name = prior_data['localname']
+                else:
+                    name = '/%s/' % tid
+                # This fake data in the art hash ensures that we trust the tid 
value.
+                fake_art = {'ExtraShow': 'http://thetvdb.com/fake/%s-fake.jpg' 
% tid}
+                TVlist.append((name, name, fake_art, '', '', tid, ''))
+
+        omitShow = {}
+        for tid in re.split(r"\D+", __addon__.getSetting("OmitShows")):
+            if tid != '':
+                omitShow[int(tid)] = 1;
+
         total_show = len(TVlist)
         if total_show == 0:
             if locked_for_update:
@@ -570,6 +590,20 @@ class NextAired:
                 current_show['profiles'] = prior_data['profiles']
                 self.age_episodes(prior_data)
 
+            if self.max_fetch_failures > 0:
+                tid = self.check_show_info(tvdb, tid, current_show, prior_data)
+            else:
+                tid = -tid
+            if tid < 0:
+                if not prior_data:
+                    continue
+                for item in prior_data:
+                    if item not in current_show:
+                        current_show[item] = prior_data[item]
+                tid = -tid
+            elif prior_data and 'tvrage' in prior_data:
+                current_show['tvrage'] = prior_data['tvrage']
+
             for art_type in USEFUL_ART:
                 xart = art.get(art_type, None)
                 fudged_flag = 'fudged.' + art_type
@@ -578,6 +612,8 @@ class NextAired:
                         xart = prior_data['art'][art_type]
                     elif art_rescan_type != art_type:
                         continue
+                    elif 'x_art' in current_show and art_type in 
current_show['x_art']:
+                        xart = current_show['x_art'][art_type]
                     else:
                         scan_ndx = 'last_%s_scan' % art_type
                         last_scan = prior_data['art'].get(scan_ndx, 0) if 
prior_data else 0
@@ -603,20 +639,9 @@ class NextAired:
                         pass
                     current_show['art'][fudged_flag] = True
                 current_show['art'][art_type] = xart
+            if 'x_art' in current_show:
+                del current_show['x_art']
 
-            if self.max_fetch_failures > 0:
-                tid = self.check_show_info(tvdb, tid, current_show, prior_data)
-            else:
-                tid = -tid
-            if tid < 0:
-                if not prior_data:
-                    continue
-                for item in prior_data:
-                    if item not in current_show:
-                        current_show[item] = prior_data[item]
-                tid = -tid
-            elif prior_data and 'tvrage' in prior_data:
-                current_show['tvrage'] = prior_data['tvrage']
             current_show['profiles'][self.profile_name] = 1
             log("### %s" % current_show)
             show_dict[tid] = current_show
@@ -635,6 +660,8 @@ class NextAired:
                     if not show['profiles']:
                         remove_list.append(tid)
                     continue
+                if omitShow.get(tid, False):
+                    continue
                 if show['ep_ndx'] or (WantYesterday and len(show['episodes']) 
> 1):
                     self.nextlist.append(show)
             for tid in remove_list:
@@ -855,13 +882,6 @@ class NextAired:
             if result:
                 show = result[0]
                 episodes = result[1]
-                if id_cache_dir is not None:
-                    cache_file = os.path.join(id_cache_dir, '%s.json' % tid)
-                    try:
-                        with open(cache_file, 'w') as fh:
-                            fh.write(json.dumps(result, sort_keys=True, 
indent=2, separators=(', ', ': ')))
-                    except:
-                        pass
             else:
                 show = None
         else: # earliest_id == 0 when only the series-info changed
@@ -883,6 +903,17 @@ class NextAired:
                 log("### no result and no prior data", level=1)
             return -tid
 
+        if id_cache_dir is not None:
+            for name, var in (('show', show), ('eps', episodes)):
+                if var is None:
+                    continue
+                cache_file = os.path.join(id_cache_dir, '%s-%s.json' % (tid, 
name))
+                try:
+                    with open(cache_file, 'w') as fh:
+                        fh.write(json.dumps(var, sort_keys=True, indent=2, 
separators=(', ', ': ')))
+                except:
+                    pass
+
         network = normalize(show, 'Network', 'Unknown')
         country = self.country_dict.get(network, 'Unknown')
         tzone = CountryLookup.get_country_timezone(country)
@@ -910,6 +941,8 @@ class NextAired:
             early_aired = '1900-01-01T00:00:00+0000'
 
         current_show['Show Name'] = normalize(show, 'SeriesName')
+        if current_show['localname'][:1] == '/':
+            name = current_show['localname'] = current_show['Show Name']
         first_aired = show.get('FirstAired', None)
         if first_aired:
             first_aired = TheTVDB.convert_date(first_aired)
@@ -924,6 +957,10 @@ class NextAired:
         current_show['Network'] = network
         current_show['Airtime'] = hh_mm
         current_show['Runtime'] = maybe_int(show, 'Runtime', '')
+        current_show['x_art'] = {}
+        for art_type in ('banner', 'fanart', 'poster'):
+            if art_type in show and show[art_type] != '':
+                current_show['x_art'][art_type] = 
'http://thetvdb.com/banners/%s' % show[art_type]
 
         can_re = re.compile(r"canceled|ended", re.IGNORECASE)
         if can_re.search(current_show['Status']):
@@ -1472,7 +1509,7 @@ class tvdb_updater:
             return # Ignore shows we don't care about
         when = int(attrs['time'])
         if episode_id == 0:
-            if when <= show['last_updated']:
+            if when <= show['last_updated'] or when <= 
show.get('show_changed', 0):
                 return
             log("### Found series change (series: %d, time: %d) for %s" % 
(series_id, when, show['localname']), level=2)
             show['show_changed'] = when
@@ -1480,10 +1517,10 @@ class tvdb_updater:
                 if 'eps_changed' not in show:
                     show['eps_changed'] = (1, 0)
         else:
-            if when <= show['eps_last_updated']:
+            earliest_id, latest_time = show.get('eps_changed', (episode_id, 0))
+            if when <= show['eps_last_updated'] or when <= latest_time:
                 return
             log("### Found episode change (series: %d, ep: %d, time=%d) for 
%s" % (series_id, episode_id, when, show['localname']), level=2)
-            earliest_id, latest_time = show.get('eps_changed', (episode_id, 
when))
             if episode_id < earliest_id:
                 earliest_id = episode_id
             if when > latest_time:
diff --git a/script.tv.show.next.aired/resources/language/Bulgarian/strings.po 
b/script.tv.show.next.aired/resources/language/Bulgarian/strings.po
index db7d2ce..4a72fd4 100644
--- a/script.tv.show.next.aired/resources/language/Bulgarian/strings.po
+++ b/script.tv.show.next.aired/resources/language/Bulgarian/strings.po
@@ -116,6 +116,10 @@ msgctxt "#32104"
 msgid "Operation cancelled by user."
 msgstr "Действието е прекъснато от 
потребитля."
 
+msgctxt "#32106"
+msgid "The update failed (we'll retry again later)."
+msgstr "Обновяването се провали (по-късно 
предстои втори опит)."
+
 msgctxt "#32201"
 msgid "Returning Series"
 msgstr "Завръщащ се сериал"
diff --git a/script.tv.show.next.aired/resources/language/Croatian/strings.po 
b/script.tv.show.next.aired/resources/language/Croatian/strings.po
index 8f3e253..9663941 100644
--- a/script.tv.show.next.aired/resources/language/Croatian/strings.po
+++ b/script.tv.show.next.aired/resources/language/Croatian/strings.po
@@ -52,14 +52,54 @@ msgctxt "#32006"
 msgid "Download 16:9 preview thumbs (Artwork Downloader required)"
 msgstr "Preuzmi 16:9 preglede minijatura (Potreban je preuzimatelj slika omota 
'Artwork Downloader')"
 
+msgctxt "#32007"
+msgid "Update the TV information now"
+msgstr "Ažuriraj TV informacije odmah"
+
+msgctxt "#32008"
+msgid "Download TV information:"
+msgstr "Preuzmi TV informacije:"
+
+msgctxt "#32009"
+msgid "In the background every [N] hours"
+msgstr "U pozadini svakih [N] sati"
+
+msgctxt "#32010"
+msgid "On entering the guide if data is over [N] hours old"
+msgstr "Pri ulazu u vodič ako su podaci stariji od [N] sati"
+
 msgctxt "#32011"
 msgid "Download posters (Artwork Downloader required)"
 msgstr "Preuzmi poster (Potreban je preuzimatelj slika omota 'Artwork 
Downloader')"
 
+msgctxt "#32012"
+msgid "**Reset all data** and update the TV information now"
+msgstr "**Vrati na početno sve podatke** i ažuriraj TV informacije odmah"
+
 msgctxt "#32013"
 msgid "Show All TV Shows for home screen (needs skin Support)"
 msgstr "Prikaži sve TV serije za početni zaslon (potrebna je podrška 
presvlake)"
 
+msgctxt "#32014"
+msgid "Use day-of-week and month names in dates instead of just numbers (for a 
skin that needs help)"
+msgstr "Koristi nazive dana u tjednu i mjesecu umjesto samo brojeva (za 
presvlake koje trebaju pomoć)"
+
+msgctxt "#32015"
+msgid "Number of next-aired days to include in the TV Guide"
+msgstr "Broj emitiranja sljedećih dana koji će biti uključeni u TV vodič"
+
+msgctxt "#32016"
+msgid "Start the TV Guide week based on Today instead of Monday"
+msgstr "Pokreni tjedni TV vodič danas umjesto ponedjeljkom"
+
+msgctxt "#32017"
+msgid "Include Yesterday in the Today-style TV Guide"
+msgstr "Uključi jučerašnji TV raspored u današnji TV vodič"
+
+msgctxt "#32018"
+msgid "Yesterday"
+msgstr "Jučer"
+
 msgctxt "#32019"
 msgid "TV Guide"
 msgstr "TV vodič"
@@ -80,6 +120,14 @@ msgctxt "#32104"
 msgid "Operation cancelled by user."
 msgstr "Radnju je prekinuo korisnik."
 
+msgctxt "#32105"
+msgid "ABORTED due to fetch failures"
+msgstr "PREKINUTO uslijed pogreške dohvaćanja"
+
+msgctxt "#32106"
+msgid "The update failed (we'll retry again later)."
+msgstr "Neuspjelo ažuriranje (pokušat ćemo ponovno kasnije)."
+
 msgctxt "#32201"
 msgid "Returning Series"
 msgstr "Povratak serije"
diff --git a/script.tv.show.next.aired/resources/language/English (New 
Zealand)/strings.po b/script.tv.show.next.aired/resources/language/English (New 
Zealand)/strings.po
index c0591a3..264e21d 100644
--- a/script.tv.show.next.aired/resources/language/English (New 
Zealand)/strings.po     
+++ b/script.tv.show.next.aired/resources/language/English (New 
Zealand)/strings.po     
@@ -16,10 +16,162 @@ msgstr ""
 "Language: en_NZ\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
+msgctxt "Addon Summary"
+msgid "Get info for TV Shows Next Aired."
+msgstr "Get info for TV Shows Next Aired."
+
+msgctxt "Addon Description"
+msgid "Get info for TV Shows Next Aired. You'll never miss one again."
+msgstr "Get info for TV Shows Next Aired. You'll never miss one again."
+
+msgctxt "#32000"
+msgid "Display"
+msgstr "Display"
+
+msgctxt "#32001"
+msgid "Thumbnail type"
+msgstr "Thumbnail type"
+
+msgctxt "#32002"
+msgid "Download banners (Artwork Downloader required)"
+msgstr "Download banners (Artwork Downloader required)"
+
+msgctxt "#32003"
+msgid "Download logos (Artwork Downloader required)"
+msgstr "Download logos (Artwork Downloader required)"
+
+msgctxt "#32004"
+msgid "Enable background fanart"
+msgstr "Enable background fanart"
+
+msgctxt "#32005"
+msgid "Enable 16:9 preview thumbs"
+msgstr "Enable 16:9 preview thumbs"
+
+msgctxt "#32006"
+msgid "Download 16:9 preview thumbs (Artwork Downloader required)"
+msgstr "Download 16:9 preview thumbs (Artwork Downloader required)"
+
+msgctxt "#32007"
+msgid "Update the TV information now"
+msgstr "Update the TV information now"
+
+msgctxt "#32008"
+msgid "Download TV information:"
+msgstr "Download TV information:"
+
+msgctxt "#32009"
+msgid "In the background every [N] hours"
+msgstr "In the background every [N] hours"
+
+msgctxt "#32010"
+msgid "On entering the guide if data is over [N] hours old"
+msgstr "On entering the guide if data is over [N] hours old"
+
+msgctxt "#32011"
+msgid "Download posters (Artwork Downloader required)"
+msgstr "Download posters (Artwork Downloader required)"
+
+msgctxt "#32012"
+msgid "**Reset all data** and update the TV information now"
+msgstr "**Reset all data** and update the TV information now"
+
+msgctxt "#32013"
+msgid "Show All TV Shows for home screen (needs skin Support)"
+msgstr "Show All TV Shows for home screen (needs skin Support)"
+
+msgctxt "#32014"
+msgid "Use day-of-week and month names in dates instead of just numbers (for a 
skin that needs help)"
+msgstr "Use day-of-week and month names in dates instead of just numbers (for 
a skin that needs help)"
+
+msgctxt "#32015"
+msgid "Number of next-aired days to include in the TV Guide"
+msgstr "Number of next-aired days to include in the TV Guide"
+
+msgctxt "#32016"
+msgid "Start the TV Guide week based on Today instead of Monday"
+msgstr "Start the TV Guide week based on Today instead of Monday"
+
+msgctxt "#32017"
+msgid "Include Yesterday in the Today-style TV Guide"
+msgstr "Include Yesterday in the Today-style TV Guide"
+
+msgctxt "#32018"
+msgid "Yesterday"
+msgstr "Yesterday"
+
 msgctxt "#32019"
 msgid "TV Guide"
 msgstr "TV Guide"
 
+msgctxt "#32101"
+msgid "TV Show - Next Aired"
+msgstr "TV Show - Next Aired"
+
+msgctxt "#32102"
+msgid "Getting information..."
+msgstr "Getting information..."
+
+msgctxt "#32103"
+msgid "CANCELLED"
+msgstr "CANCELLED"
+
+msgctxt "#32104"
+msgid "Operation cancelled by user."
+msgstr "Operation cancelled by user."
+
+msgctxt "#32105"
+msgid "ABORTED due to fetch failures"
+msgstr "ABORTED due to fetch failures"
+
+msgctxt "#32106"
+msgid "The update failed (we'll retry again later)."
+msgstr "The update failed (we'll retry again later)."
+
+msgctxt "#32201"
+msgid "Returning Series"
+msgstr "Returning Series"
+
+msgctxt "#32202"
+msgid "Cancelled/Ended"
+msgstr "Cancelled/Ended"
+
+msgctxt "#32203"
+msgid "TBD/On The Bubble"
+msgstr "TBD/On The Bubble"
+
+msgctxt "#32204"
+msgid "In Development"
+msgstr "In Development"
+
+msgctxt "#32205"
+msgid "New Series"
+msgstr "New Series"
+
+msgctxt "#32206"
+msgid "Never Aired"
+msgstr "Never Aired"
+
+msgctxt "#32207"
+msgid "Final Season"
+msgstr "Final Season"
+
+msgctxt "#32208"
+msgid "On Hiatus"
+msgstr "On Hiatus"
+
+msgctxt "#32209"
+msgid "Pilot Ordered"
+msgstr "Pilot Ordered"
+
+msgctxt "#32210"
+msgid "Pilot Rejected"
+msgstr "Pilot Rejected"
+
 msgctxt "#32211"
 msgid "Cancelled"
 msgstr "Cancelled"
+
+msgctxt "#32212"
+msgid "Ended"
+msgstr "Ended"
diff --git a/script.tv.show.next.aired/resources/language/English/strings.po 
b/script.tv.show.next.aired/resources/language/English/strings.po
index 8517e0d..7c67b71 100644
--- a/script.tv.show.next.aired/resources/language/English/strings.po
+++ b/script.tv.show.next.aired/resources/language/English/strings.po
@@ -104,7 +104,19 @@ msgctxt "#32019"
 msgid "TV Guide"
 msgstr ""
 
-#empty strings from id 32020 to 32100
+msgctxt "#32020"
+msgid "Advanced Options:"
+msgstr ""
+
+msgctxt "#32021"
+msgid "Extra shows (TVDB ID numbers)"
+msgstr ""
+
+msgctxt "#32022"
+msgid "Omit shows (TVDB ID numbers)"
+msgstr ""
+
+#empty strings from id 32023 to 32100
 
 msgctxt "#32101"
 msgid "TV Show - Next Aired"
diff --git a/script.tv.show.next.aired/resources/language/French/strings.po 
b/script.tv.show.next.aired/resources/language/French/strings.po
index 13c396b..457c8bf 100644
--- a/script.tv.show.next.aired/resources/language/French/strings.po
+++ b/script.tv.show.next.aired/resources/language/French/strings.po
@@ -52,14 +52,54 @@ msgctxt "#32006"
 msgid "Download 16:9 preview thumbs (Artwork Downloader required)"
 msgstr "Télécharger les vignettes d'aperçus 16:9 (Artwork Downloader 
requis)"
 
+msgctxt "#32007"
+msgid "Update the TV information now"
+msgstr "Mettre à jour les dates de sortie maintenant"
+
+msgctxt "#32008"
+msgid "Download TV information:"
+msgstr "Mettre à jour les dates de sorties"
+
+msgctxt "#32009"
+msgid "In the background every [N] hours"
+msgstr "Exécuter en fond toutes les [N] heures"
+
+msgctxt "#32010"
+msgid "On entering the guide if data is over [N] hours old"
+msgstr "En entrant dans le guide si celui-ci n'a pas été mis à jour depuis 
[N] heures"
+
 msgctxt "#32011"
 msgid "Download posters (Artwork Downloader required)"
 msgstr "Télécharger les posters (Artwork Downloader requis)"
 
+msgctxt "#32012"
+msgid "**Reset all data** and update the TV information now"
+msgstr "**Réinitialiser toutes les données** et mettre à jour les dates de 
sorties"
+
 msgctxt "#32013"
 msgid "Show All TV Shows for home screen (needs skin Support)"
 msgstr "Montrer toutes les séries TV sur l'écran d'acceuil (thème 
compatible requis)"
 
+msgctxt "#32014"
+msgid "Use day-of-week and month names in dates instead of just numbers (for a 
skin that needs help)"
+msgstr "Utiliser les jours de la semaine et le nom des mois au lieu de 
chiffres (si le skin le supporte)"
+
+msgctxt "#32015"
+msgid "Number of next-aired days to include in the TV Guide"
+msgstr "Nombre de jours à afficher dans le guide"
+
+msgctxt "#32016"
+msgid "Start the TV Guide week based on Today instead of Monday"
+msgstr "Commencer le guide à \"aujourd'hui\" au lieu de \"Lundi\""
+
+msgctxt "#32017"
+msgid "Include Yesterday in the Today-style TV Guide"
+msgstr "Inclure \"Hier\" dans le guide TV"
+
+msgctxt "#32018"
+msgid "Yesterday"
+msgstr "Hier"
+
 msgctxt "#32019"
 msgid "TV Guide"
 msgstr "Guide TV"
@@ -80,6 +120,18 @@ msgctxt "#32104"
 msgid "Operation cancelled by user."
 msgstr "Opération annulée par l'utilisateur."
 
+msgctxt "#32105"
+msgid "ABORTED due to fetch failures"
+msgstr "ANNULÉ suite à un échec de récupération des données"
+
+msgctxt "#32106"
+msgid "The update failed (we'll retry again later)."
+msgstr "La mise à jour a échoué (nouvel essai plus tard)."
+
+msgctxt "#32201"
+msgid "Returning Series"
+msgstr "En diffusion"
+
 msgctxt "#32202"
 msgid "Cancelled/Ended"
 msgstr "Annulé/terminé"
@@ -104,6 +156,10 @@ msgctxt "#32207"
 msgid "Final Season"
 msgstr "Dernière saison"
 
+msgctxt "#32208"
+msgid "On Hiatus"
+msgstr "En pause"
+
 msgctxt "#32209"
 msgid "Pilot Ordered"
 msgstr "Pilote commandé"
diff --git a/script.tv.show.next.aired/resources/language/Galician/strings.po 
b/script.tv.show.next.aired/resources/language/Galician/strings.po
index 5935e7a..f7f35b5 100644
--- a/script.tv.show.next.aired/resources/language/Galician/strings.po
+++ b/script.tv.show.next.aired/resources/language/Galician/strings.po
@@ -64,6 +64,10 @@ msgctxt "#32009"
 msgid "In the background every [N] hours"
 msgstr "En segundo plano cada [N] horas"
 
+msgctxt "#32010"
+msgid "On entering the guide if data is over [N] hours old"
+msgstr "Ao entrar na guía, se os datos teñen máis de [N] horas"
+
 msgctxt "#32011"
 msgid "Download posters (Artwork Downloader required)"
 msgstr "Descargar pósters (Requírese un Descargador de Ilustracións)"
@@ -76,6 +80,18 @@ msgctxt "#32013"
 msgid "Show All TV Shows for home screen (needs skin Support)"
 msgstr "Amosar todas Series de TV na pantalla de inicio (precisa de tema 
compatíbel)"
 
+msgctxt "#32014"
+msgid "Use day-of-week and month names in dates instead of just numbers (for a 
skin that needs help)"
+msgstr "Usar o nome do día da semana e mes nas datas, no canto dos números 
(se o tema o precisa)"
+
+msgctxt "#32015"
+msgid "Number of next-aired days to include in the TV Guide"
+msgstr "Número de días das próximas emisións a incluír na Guía de TV"
+
+msgctxt "#32016"
+msgid "Start the TV Guide week based on Today instead of Monday"
+msgstr "Iniciar a Guía de TV semanal Hoxe no canto do Luns"
+
 msgctxt "#32017"
 msgid "Include Yesterday in the Today-style TV Guide"
 msgstr "Incluír Onte na Guía estilo Hoxe"
@@ -104,6 +120,14 @@ msgctxt "#32104"
 msgid "Operation cancelled by user."
 msgstr "Operación cancelada polo usuario."
 
+msgctxt "#32105"
+msgid "ABORTED due to fetch failures"
+msgstr "CANCELADO debido aos fallos na descarga"
+
+msgctxt "#32106"
+msgid "The update failed (we'll retry again later)."
+msgstr "Fallou a actualización (volveremos tentalo máis tarde)."
+
 msgctxt "#32201"
 msgid "Returning Series"
 msgstr "Series en Reposición"
diff --git a/script.tv.show.next.aired/resources/language/German/strings.po 
b/script.tv.show.next.aired/resources/language/German/strings.po
index 7e9654f..4cb76e3 100644
--- a/script.tv.show.next.aired/resources/language/German/strings.po
+++ b/script.tv.show.next.aired/resources/language/German/strings.po
@@ -92,6 +92,10 @@ msgctxt "#32016"
 msgid "Start the TV Guide week based on Today instead of Monday"
 msgstr "Beginne die TV Guide Woche heute anstatt Montag"
 
+msgctxt "#32017"
+msgid "Include Yesterday in the Today-style TV Guide"
+msgstr "\"Gestern\" im \"Heute\"-TV-Guide anzeigen."
+
 msgctxt "#32018"
 msgid "Yesterday"
 msgstr "Gestern"
@@ -116,6 +120,14 @@ msgctxt "#32104"
 msgid "Operation cancelled by user."
 msgstr "Operation vom Benutzer abgebrochen."
 
+msgctxt "#32105"
+msgid "ABORTED due to fetch failures"
+msgstr "ABGEBROCHEN wegen Abruffehlern"
+
+msgctxt "#32106"
+msgid "The update failed (we'll retry again later)."
+msgstr "Das Update ist fehlgeschlagen (wir probieren es später noch einmal)."
+
 msgctxt "#32201"
 msgid "Returning Series"
 msgstr "Wiederkehrende Serie"
diff --git a/script.tv.show.next.aired/resources/language/Korean/strings.po 
b/script.tv.show.next.aired/resources/language/Korean/strings.po
index 9d38054..0a07a2f 100644
--- a/script.tv.show.next.aired/resources/language/Korean/strings.po
+++ b/script.tv.show.next.aired/resources/language/Korean/strings.po
@@ -34,11 +34,11 @@ msgstr "썸네일 종류"
 
 msgctxt "#32002"
 msgid "Download banners (Artwork Downloader required)"
-msgstr "배너 다운로드 (Artwork Downloader 추가기능 필요)"
+msgstr "배너 다운로드 (Artwork Downloader 애드온 필요)"
 
 msgctxt "#32003"
 msgid "Download logos (Artwork Downloader required)"
-msgstr "로고 다운로드 (Artwork Downloader 추가기능 필요)"
+msgstr "로고 다운로드 (Artwork Downloader 애드온 필요)"
 
 msgctxt "#32004"
 msgid "Enable background fanart"
@@ -50,7 +50,7 @@ msgstr "16:9 썸네일 사용"
 
 msgctxt "#32006"
 msgid "Download 16:9 preview thumbs (Artwork Downloader required)"
-msgstr "16:9 썸네일 다운로드 (Artwork Downloader 추가기능 필요)"
+msgstr "16:9 썸네일 다운로드 (Artwork Downloader 애드온 필요)"
 
 msgctxt "#32007"
 msgid "Update the TV information now"
@@ -70,7 +70,7 @@ msgstr "데이터가 [N] 시간보다 오래된 경우에는 
시작할 때"
 
 msgctxt "#32011"
 msgid "Download posters (Artwork Downloader required)"
-msgstr "포스터 다운로드 (Artwork Downloader 추가기능 필요)"
+msgstr "포스터 다운로드 (Artwork Downloader 애드온 필요)"
 
 msgctxt "#32012"
 msgid "**Reset all data** and update the TV information now"
diff --git a/script.tv.show.next.aired/resources/language/Lithuanian/strings.po 
b/script.tv.show.next.aired/resources/language/Lithuanian/strings.po
index 2bef178..8b7c7b6 100644
--- a/script.tv.show.next.aired/resources/language/Lithuanian/strings.po
+++ b/script.tv.show.next.aired/resources/language/Lithuanian/strings.po
@@ -16,14 +16,162 @@ msgstr ""
 "Language: lt\n"
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && 
(n%100<10 || n%100>=20) ? 1 : 2);\n"
 
+msgctxt "Addon Summary"
+msgid "Get info for TV Shows Next Aired."
+msgstr "Gauti TV laidos kitos transliacijos informaciją."
+
+msgctxt "Addon Description"
+msgid "Get info for TV Shows Next Aired. You'll never miss one again."
+msgstr "Gauti TV laidos kitos transliacijos informaciją. Jūs niekada daugiau 
jos nepraleisite."
+
 msgctxt "#32000"
 msgid "Display"
 msgstr "Ekranas"
 
+msgctxt "#32001"
+msgid "Thumbnail type"
+msgstr "Miniatiūros tipas"
+
+msgctxt "#32002"
+msgid "Download banners (Artwork Downloader required)"
+msgstr "Atsiųsti banerius (reikalingas Artwork Downloader)"
+
+msgctxt "#32003"
+msgid "Download logos (Artwork Downloader required)"
+msgstr "Atsiųsti logotipus (reikalingas Artwork Downloader)"
+
+msgctxt "#32004"
+msgid "Enable background fanart"
+msgstr "Įjungti fono Fanart"
+
+msgctxt "#32005"
+msgid "Enable 16:9 preview thumbs"
+msgstr "Įjungti 16:9 peržiūros miniatiūras"
+
+msgctxt "#32006"
+msgid "Download 16:9 preview thumbs (Artwork Downloader required)"
+msgstr "Atsiųsti 16:9 peržiūros miniatiūras (reikalingas Artwork 
Downloader)"
+
+msgctxt "#32007"
+msgid "Update the TV information now"
+msgstr "Atnaujinti TV informaciją dabar"
+
+msgctxt "#32008"
+msgid "Download TV information:"
+msgstr "Atsiųsti TV informaciją:"
+
+msgctxt "#32009"
+msgid "In the background every [N] hours"
+msgstr "Fone kas [N] valandas"
+
+msgctxt "#32010"
+msgid "On entering the guide if data is over [N] hours old"
+msgstr "Atidarant gidą, jei duomenys senesni nei [N] valandos"
+
+msgctxt "#32011"
+msgid "Download posters (Artwork Downloader required)"
+msgstr "Atsiųsti plakatus (reikalingas Artwork Downloader)"
+
+msgctxt "#32012"
+msgid "**Reset all data** and update the TV information now"
+msgstr "**Atstatyti visus duomenis** ir atnaujinti TV informaciją dabar"
+
+msgctxt "#32013"
+msgid "Show All TV Shows for home screen (needs skin Support)"
+msgstr "Rodyti visas TV laidas pradiniame ekrane (reikalingas teminės 
išvaizdos palaikymas)"
+
+msgctxt "#32014"
+msgid "Use day-of-week and month names in dates instead of just numbers (for a 
skin that needs help)"
+msgstr "naudoti savaitės dienos ir mėnesių vardus datose vietoj 
skaičių(teminei išvaizdai, kuriai reikia pagalbos)"
+
+msgctxt "#32015"
+msgid "Number of next-aired days to include in the TV Guide"
+msgstr "Kitos transliacijos dienų skaičius TV gide"
+
+msgctxt "#32016"
+msgid "Start the TV Guide week based on Today instead of Monday"
+msgstr "TV gido savaitę pradėti šiandiena, o ne pirmadieniu"
+
+msgctxt "#32017"
+msgid "Include Yesterday in the Today-style TV Guide"
+msgstr "Įtraukti vakar dieną į šiandienos stiliaus TV gidą"
+
+msgctxt "#32018"
+msgid "Yesterday"
+msgstr "Vakar"
+
 msgctxt "#32019"
 msgid "TV Guide"
 msgstr "TV gidas"
 
+msgctxt "#32101"
+msgid "TV Show - Next Aired"
+msgstr "TV laida - kita transliacija"
+
+msgctxt "#32102"
+msgid "Getting information..."
+msgstr "Gaunam informacija..."
+
+msgctxt "#32103"
+msgid "CANCELLED"
+msgstr "NUTRAUKTA"
+
+msgctxt "#32104"
+msgid "Operation cancelled by user."
+msgstr "Operaciją nutraukė vartotojas."
+
+msgctxt "#32105"
+msgid "ABORTED due to fetch failures"
+msgstr "ATŠAUKTA dėl gavimo klaidų"
+
+msgctxt "#32106"
+msgid "The update failed (we'll retry again later)."
+msgstr "Atnaujinimas nepavyko (pamėginsime dar kartą vėliau)."
+
+msgctxt "#32201"
+msgid "Returning Series"
+msgstr "Atnaujinti serialai"
+
+msgctxt "#32202"
+msgid "Cancelled/Ended"
+msgstr "Nutraukti/Pasibaigę"
+
+msgctxt "#32203"
+msgid "TBD/On The Bubble"
+msgstr "Bus patikslinta"
+
+msgctxt "#32204"
+msgid "In Development"
+msgstr "Kuriama"
+
+msgctxt "#32205"
+msgid "New Series"
+msgstr "Naujas serialas"
+
+msgctxt "#32206"
+msgid "Never Aired"
+msgstr "Niekada netransliuotas"
+
+msgctxt "#32207"
+msgid "Final Season"
+msgstr "Paskutinis sezonas"
+
+msgctxt "#32208"
+msgid "On Hiatus"
+msgstr "Pertrauka"
+
+msgctxt "#32209"
+msgid "Pilot Ordered"
+msgstr "Užsakyta bandomoji serija"
+
+msgctxt "#32210"
+msgid "Pilot Rejected"
+msgstr "Bandomoji serija atmesta"
+
+msgctxt "#32211"
+msgid "Cancelled"
+msgstr "Nutraukta"
+
 msgctxt "#32212"
 msgid "Ended"
-msgstr "Pasibaigę"
+msgstr "Pasibaigęs"
diff --git a/script.tv.show.next.aired/resources/language/Norwegian/strings.po 
b/script.tv.show.next.aired/resources/language/Norwegian/strings.po
index 6fa943e..df0f38a 100644
--- a/script.tv.show.next.aired/resources/language/Norwegian/strings.po
+++ b/script.tv.show.next.aired/resources/language/Norwegian/strings.po
@@ -16,13 +16,157 @@ msgstr ""
 "Language: no\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
+msgctxt "Addon Summary"
+msgid "Get info for TV Shows Next Aired."
+msgstr "Hent informasjon om kommende TV-programmer."
+
+msgctxt "Addon Description"
+msgid "Get info for TV Shows Next Aired. You'll never miss one again."
+msgstr "Få informasjon om neste TV-sending. Du vil aldri gå glipp av en 
episode igjen."
+
 msgctxt "#32000"
 msgid "Display"
-msgstr "Skjerm"
+msgstr "Visning"
+
+msgctxt "#32001"
+msgid "Thumbnail type"
+msgstr "Miniatyrtype"
+
+msgctxt "#32002"
+msgid "Download banners (Artwork Downloader required)"
+msgstr "Last ned banner (Krever Artwork Downloader)"
+
+msgctxt "#32003"
+msgid "Download logos (Artwork Downloader required)"
+msgstr "Last ned logoer (Krever Artwork Downloader)"
+
+msgctxt "#32004"
+msgid "Enable background fanart"
+msgstr "Aktiver fanart-bakgrunn"
+
+msgctxt "#32005"
+msgid "Enable 16:9 preview thumbs"
+msgstr "Aktiver 16:9-miniatyrer"
+
+msgctxt "#32006"
+msgid "Download 16:9 preview thumbs (Artwork Downloader required)"
+msgstr "Last ned 16:9-miniatyrer (Krever Artwork Downloader)"
+
+msgctxt "#32007"
+msgid "Update the TV information now"
+msgstr "Oppdater TV-informasjonen nå"
+
+msgctxt "#32008"
+msgid "Download TV information:"
+msgstr "Last ned TV-informasjon:"
+
+msgctxt "#32009"
+msgid "In the background every [N] hours"
+msgstr "I bakgrunnen hver [X] time"
+
+msgctxt "#32010"
+msgid "On entering the guide if data is over [N] hours old"
+msgstr "Når utvidelsen åpnes hvis informasjonen er [X] timer gammel"
+
+msgctxt "#32011"
+msgid "Download posters (Artwork Downloader required)"
+msgstr "Last ned plakater (Krever Artwork Downloader)"
+
+msgctxt "#32012"
+msgid "**Reset all data** and update the TV information now"
+msgstr "**Nullstill alle data** og oppdater TV-informasjonen nå"
+
+msgctxt "#32013"
+msgid "Show All TV Shows for home screen (needs skin Support)"
+msgstr "Vis alle TV-programmer på hovedmeny (behøver skallstøtte)"
+
+msgctxt "#32014"
+msgid "Use day-of-week and month names in dates instead of just numbers (for a 
skin that needs help)"
+msgstr "Benytt ukedager og månedsnavn i datoer i stedet for tall (for et 
skall som behøver hjelp)"
+
+msgctxt "#32015"
+msgid "Number of next-aired days to include in the TV Guide"
+msgstr "Antall dager som skal inkluderes i TV-guiden."
+
+msgctxt "#32016"
+msgid "Start the TV Guide week based on Today instead of Monday"
+msgstr "Start TV-guiden på dagen i dag i stedet for på mandag"
+
+msgctxt "#32017"
+msgid "Include Yesterday in the Today-style TV Guide"
+msgstr "Vis gårsdagen i «dagen i dag» visningen"
+
+msgctxt "#32018"
+msgid "Yesterday"
+msgstr "I går"
 
 msgctxt "#32019"
 msgid "TV Guide"
-msgstr "TV guide"
+msgstr "TV-guide"
+
+msgctxt "#32101"
+msgid "TV Show - Next Aired"
+msgstr "TV Show - Next Aired"
+
+msgctxt "#32102"
+msgid "Getting information..."
+msgstr "Henter informasjon..."
+
+msgctxt "#32103"
+msgid "CANCELLED"
+msgstr "AVBRUTT"
+
+msgctxt "#32104"
+msgid "Operation cancelled by user."
+msgstr "Handling avbrutt av bruker."
+
+msgctxt "#32105"
+msgid "ABORTED due to fetch failures"
+msgstr "AVSLUTTET på grunn av feil ved henting"
+
+msgctxt "#32106"
+msgid "The update failed (we'll retry again later)."
+msgstr "Oppdatering mislyktes (prøver igjen senere)."
+
+msgctxt "#32201"
+msgid "Returning Series"
+msgstr "Returnerende serie"
+
+msgctxt "#32202"
+msgid "Cancelled/Ended"
+msgstr "Avbrutt/Avsluttet"
+
+msgctxt "#32203"
+msgid "TBD/On The Bubble"
+msgstr "Ikke besluttet"
+
+msgctxt "#32204"
+msgid "In Development"
+msgstr "Under utvikling"
+
+msgctxt "#32205"
+msgid "New Series"
+msgstr "Ny serie"
+
+msgctxt "#32206"
+msgid "Never Aired"
+msgstr "Aldri sent"
+
+msgctxt "#32207"
+msgid "Final Season"
+msgstr "Siste sesong"
+
+msgctxt "#32208"
+msgid "On Hiatus"
+msgstr "PÃ¥ avbrekk"
+
+msgctxt "#32209"
+msgid "Pilot Ordered"
+msgstr "Pilotepisode bestilt"
+
+msgctxt "#32210"
+msgid "Pilot Rejected"
+msgstr "Pilotepisode avvist"
 
 msgctxt "#32211"
 msgid "Cancelled"
@@ -30,4 +174,4 @@ msgstr "Avbrutt"
 
 msgctxt "#32212"
 msgid "Ended"
-msgstr "Ferdig"
+msgstr "Avsluttet"
diff --git a/script.tv.show.next.aired/resources/language/Polish/strings.po 
b/script.tv.show.next.aired/resources/language/Polish/strings.po
index 45c49d3..31ee9a7 100644
--- a/script.tv.show.next.aired/resources/language/Polish/strings.po
+++ b/script.tv.show.next.aired/resources/language/Polish/strings.po
@@ -18,11 +18,11 @@ msgstr ""
 
 msgctxt "Addon Summary"
 msgid "Get info for TV Shows Next Aired."
-msgstr "Otrzymaj informacje Następnie Granych Programach Telewizyjnych"
+msgstr "Informacje o Premierach Programów Telewizyjnych."
 
 msgctxt "Addon Description"
 msgid "Get info for TV Shows Next Aired. You'll never miss one again."
-msgstr "Otrzymaj informacje Następnie Granych Programach Telewizyjnych. Nigdy 
już żadnego nie przegapisz."
+msgstr "Informacje o Premierach Programów Telewizyjnych. Nigdy już żadnego 
nie przegapisz."
 
 msgctxt "#32000"
 msgid "Display"
@@ -30,27 +30,27 @@ msgstr "Ekran"
 
 msgctxt "#32001"
 msgid "Thumbnail type"
-msgstr "Rodzaj miniatur"
+msgstr "Rodzaj miniatury"
 
 msgctxt "#32002"
 msgid "Download banners (Artwork Downloader required)"
-msgstr "Ściągnij banery (wymaga Artwork Downloader)"
+msgstr "Pobieraj banery (wymaga wtyczki Artwork Downloader)"
 
 msgctxt "#32003"
 msgid "Download logos (Artwork Downloader required)"
-msgstr "Ściągnij loga (wymaga Artwork Downloader)"
+msgstr "Pobieraj loga (wymaga wtyczki Artwork Downloader)"
 
 msgctxt "#32004"
 msgid "Enable background fanart"
-msgstr "Włącz fanart tła"
+msgstr "Uzywaj tapetę w roli tła"
 
 msgctxt "#32005"
 msgid "Enable 16:9 preview thumbs"
-msgstr "Włącz podgląd miniatur 16:9"
+msgstr "Uzywaj miniatur 16:9"
 
 msgctxt "#32006"
 msgid "Download 16:9 preview thumbs (Artwork Downloader required)"
-msgstr "Włącz podgląd miniatur 16:9 (wymaga Artwork Downloader)"
+msgstr "Pobieraj miniatur 16:9 (wymaga wtyczki Artwork Downloader)"
 
 msgctxt "#32007"
 msgid "Update the TV information now"
@@ -70,7 +70,7 @@ msgstr "Po wejściu do programu, jeśli dane są starsze niż 
[N] godzin "
 
 msgctxt "#32011"
 msgid "Download posters (Artwork Downloader required)"
-msgstr "Ściągnij plakaty (wymaga Artwork Downloader)"
+msgstr "Pobieraj plakaty (wymaga wtyczki Artwork Downloader)"
 
 msgctxt "#32012"
 msgid "**Reset all data** and update the TV information now"
@@ -78,7 +78,7 @@ msgstr "**Wyczyść wszystkie dane** i zaktualizuj informacje 
TV"
 
 msgctxt "#32013"
 msgid "Show All TV Shows for home screen (needs skin Support)"
-msgstr "Pokaż wszystkie programy telewizyjne dla małego ekranu (wymaga 
wsparcia dla skór)"
+msgstr "Pokaż wszystkie programy telewizyjne dla małego ekranu (wymaga 
wsparcia skór)"
 
 msgctxt "#32014"
 msgid "Use day-of-week and month names in dates instead of just numbers (for a 
skin that needs help)"
@@ -120,9 +120,17 @@ msgctxt "#32104"
 msgid "Operation cancelled by user."
 msgstr "Operacja przerwana przez użytkownika."
 
+msgctxt "#32105"
+msgid "ABORTED due to fetch failures"
+msgstr "PRZERWANE z powodu awarii pobierania"
+
+msgctxt "#32106"
+msgid "The update failed (we'll retry again later)."
+msgstr "Aktualizacja nie powiodła się (nastąpi ponownie)."
+
 msgctxt "#32201"
 msgid "Returning Series"
-msgstr "Powtórki Serii"
+msgstr "Porót Serii"
 
 msgctxt "#32202"
 msgid "Cancelled/Ended"
@@ -130,7 +138,7 @@ msgstr "Anulowane/Zakończone"
 
 msgctxt "#32203"
 msgid "TBD/On The Bubble"
-msgstr "Nieokreślony"
+msgstr "Zagrożony"
 
 msgctxt "#32204"
 msgid "In Development"
diff --git a/script.tv.show.next.aired/resources/language/Spanish/strings.po 
b/script.tv.show.next.aired/resources/language/Spanish/strings.po
index ca21e7e..24d7875 100644
--- a/script.tv.show.next.aired/resources/language/Spanish/strings.po
+++ b/script.tv.show.next.aired/resources/language/Spanish/strings.po
@@ -124,6 +124,10 @@ msgctxt "#32105"
 msgid "ABORTED due to fetch failures"
 msgstr "ABORTADO por fallos en la descarga"
 
+msgctxt "#32106"
+msgid "The update failed (we'll retry again later)."
+msgstr "La actualización ha fallado (se intentará más tarde)"
+
 msgctxt "#32201"
 msgid "Returning Series"
 msgstr "Series que vuelven"
diff --git a/script.tv.show.next.aired/resources/settings.xml 
b/script.tv.show.next.aired/resources/settings.xml
index fe46032..55cb59b 100644
--- a/script.tv.show.next.aired/resources/settings.xml
+++ b/script.tv.show.next.aired/resources/settings.xml
@@ -19,4 +19,7 @@
        <setting type="lsep" label="32008"/>
        <setting id="update_every" type="labelenum" label="32009" 
subsetting="true" 
values="off|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24" 
default="8"/>
        <setting id="update_after" type="labelenum" label="32010" 
subsetting="true" 
values="off|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24" 
default="8"/>
+       <setting type="lsep" label="32020"/>
+       <setting id="ExtraShows" type="text" label="32021" default=""/>
+       <setting id="OmitShows" type="text" label="32022" default=""/>
 </settings>

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

Summary of changes:
 script.tv.show.next.aired/README.txt               |   39 +++--
 script.tv.show.next.aired/addon.xml                |   14 ++-
 script.tv.show.next.aired/cal-server               |   83 +++++++++--
 script.tv.show.next.aired/changelog.txt            |    7 +
 script.tv.show.next.aired/default.py               |   83 ++++++++---
 .../resources/language/Bulgarian/strings.po        |    4 +
 .../resources/language/Croatian/strings.po         |   48 ++++++
 .../language/English (New Zealand)/strings.po      |  152 ++++++++++++++++++++
 .../language/{English => English (US)}/strings.po  |   88 ++++++------
 .../resources/language/English/strings.po          |   14 ++-
 .../resources/language/French/strings.po           |   56 +++++++
 .../resources/language/Galician/strings.po         |   24 +++
 .../resources/language/German/strings.po           |   12 ++
 .../resources/language/Korean/strings.po           |    8 +-
 .../resources/language/Lithuanian/strings.po       |  150 +++++++++++++++++++-
 .../resources/language/Norwegian/strings.po        |  150 +++++++++++++++++++-
 .../resources/language/Polish/strings.po           |   32 +++--
 .../resources/language/Spanish/strings.po          |    4 +
 script.tv.show.next.aired/resources/settings.xml   |    3 +
 19 files changed, 847 insertions(+), 124 deletions(-)
 copy script.tv.show.next.aired/resources/language/{English => English 
(US)}/strings.po (62%)


hooks/post-receive
-- 
Scripts

------------------------------------------------------------------------------
Infragistics Professional
Build stunning WinForms apps today!
Reboot your WinForms applications with our WinForms controls. 
Build a bridge from your legacy apps to the future.
http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to