diff --git a/resources/language/resource.language.en_gb/strings.po b/resources/language/resource.language.en_gb/strings.po
index f660e95fb..b89e3857c 100644
--- a/resources/language/resource.language.en_gb/strings.po
+++ b/resources/language/resource.language.en_gb/strings.po
@@ -331,46 +331,102 @@ msgid "In case you have limited bandwidth available, you may want to specify a m
msgstr ""
msgctxt "#30860"
-msgid "Troubleshooting"
+msgid "Channels"
msgstr ""
msgctxt "#30861"
-msgid "Cache"
+msgid "Select channels to use for 'Most recent' and 'Soon offline' listings"
msgstr ""
msgctxt "#30863"
-msgid "Clear VRT tokens"
+msgid "Eén"
+msgstr ""
+
+msgctxt "#30864"
+msgid "Canvas"
msgstr ""
msgctxt "#30865"
-msgid "Refresh favorites"
+msgid "Ketnet"
+msgstr ""
+
+msgctxt "#30866"
+msgid "Ketnet Junior"
msgstr ""
msgctxt "#30867"
-msgid "Invalidate local HTTP caches"
+msgid "Sporza"
+msgstr ""
+
+msgctxt "#30868"
+msgid "Radio 1"
msgstr ""
msgctxt "#30869"
-msgid "Streaming"
+msgid "Radio 2"
+msgstr ""
+
+msgctxt "#30870"
+msgid "Klara"
msgstr ""
msgctxt "#30871"
-msgid "Use InputStream Adaptive"
+msgid "Studio Brussel"
+msgstr ""
+
+msgctxt "#30872"
+msgid "MNM"
msgstr ""
msgctxt "#30873"
+msgid "VRT NXT"
+msgstr ""
+
+msgctxt "#30874"
+msgid "VRT NWS"
+msgstr ""
+
+msgctxt "#30900"
+msgid "Troubleshooting"
+msgstr ""
+
+msgctxt "#30901"
+msgid "Cache"
+msgstr ""
+
+msgctxt "#30903"
+msgid "Clear VRT tokens"
+msgstr ""
+
+msgctxt "#30905"
+msgid "Refresh favorites"
+msgstr ""
+
+msgctxt "#30907"
+msgid "Invalidate local HTTP caches"
+msgstr ""
+
+msgctxt "#30909"
+msgid "Streaming"
+msgstr ""
+
+msgctxt "#30911"
+msgid "Use InputStream Adaptive"
+msgstr ""
+
+msgctxt "#30913"
msgid "InputStream Adaptive settings..."
msgstr ""
-msgctxt "#30875"
+msgctxt "#30915"
msgid "Install Widevine... [COLOR gray][I](needed for DRM content)[/I][/COLOR]"
msgstr ""
-msgctxt "#30877"
+msgctxt "#30917"
msgid "Logging"
msgstr ""
-msgctxt "#30879"
+msgctxt "#30919"
msgid "Log level"
msgstr ""
diff --git a/resources/language/resource.language.nl_nl/strings.po b/resources/language/resource.language.nl_nl/strings.po
index d6cb1e0cb..61954c856 100644
--- a/resources/language/resource.language.nl_nl/strings.po
+++ b/resources/language/resource.language.nl_nl/strings.po
@@ -307,47 +307,103 @@ msgctxt "#30849"
msgid "Maximum bandwidth (kbps)"
msgstr "Maximale bandbreedte (kbps)"
-msgctxt "#30060"
+msgctxt "#30860"
+msgid "Channels"
+msgstr "Kanalen"
+
+msgctxt "#30861"
+msgid "Select channels for 'Most recent' and 'Soon offline' listings"
+msgstr "Selecteer kanalen voor de 'Meest recent' en 'Binnenkort verwijderd' lijsten"
+
+msgctxt "#30863"
+msgid "Eén"
+msgstr "Eén"
+
+msgctxt "#30864"
+msgid "Canvas"
+msgstr "Canvas"
+
+msgctxt "#30865"
+msgid "Ketnet"
+msgstr "Ketnet"
+
+msgctxt "#30866"
+msgid "Ketnet Junior"
+msgstr "Ketnet Junior"
+
+msgctxt "#30867"
+msgid "Sporza"
+msgstr "Sporza"
+
+msgctxt "#30868"
+msgid "Radio 1"
+msgstr "Radio 1"
+
+msgctxt "#30869"
+msgid "Radio 2"
+msgstr "Radio 2"
+
+msgctxt "#30870"
+msgid "Klara"
+msgstr "Klara"
+
+msgctxt "#30871"
+msgid "Studio Brussel"
+msgstr "Studio Brussel"
+
+msgctxt "#30872"
+msgid "MNM"
+msgstr "MNM"
+
+msgctxt "#30873"
+msgid "VRT NXT"
+msgstr "VRT NXT"
+
+msgctxt "#30874"
+msgid "VRT NWS"
+msgstr "VRT NWS"
+
+msgctxt "#30900"
msgid "Troubleshooting"
msgstr "Foutopsporing"
-msgctxt "#30861"
+msgctxt "#30901"
msgid "Cache"
msgstr "Cache"
-msgctxt "#30063"
+msgctxt "#30903"
msgid "Clear VRT tokens"
msgstr "Verwijder VRT tokens"
-msgctxt "#30065"
+msgctxt "#30905"
msgid "Refresh favorites"
msgstr "Ververs gevolgde programma's"
-msgctxt "#30867"
+msgctxt "#30907"
msgid "Invalidate local HTTP caches"
msgstr "Invalideer local HTTP caches"
-msgctxt "#30069"
+msgctxt "#30909"
msgid "Streaming"
msgstr "Streaming"
-msgctxt "#30870"
+msgctxt "#30911"
msgid "Use InputStream Adaptive"
msgstr "Gebruik InputStream Adaptive"
-msgctxt "#30073"
+msgctxt "#30913"
msgid "InputStream Adaptive settings..."
msgstr "InputStream Adaptive instellingen..."
-msgctxt "#30075"
+msgctxt "#30915"
msgid "Install Widevine... [COLOR gray][I](needed for DRM content)[/I][/COLOR]"
msgstr "Installeer Widevine... [COLOR gray][I](nodig voor DRM content)[/I][/COLOR]"
-msgctxt "#30077"
+msgctxt "#30917"
msgid "Logging"
msgstr "Logboek"
-msgctxt "#30079"
+msgctxt "#30919"
msgid "Log level"
msgstr "Log level"
diff --git a/resources/lib/kodiwrappers/kodiwrapper.py b/resources/lib/kodiwrappers/kodiwrapper.py
index 70f8b5321..e5243c91d 100644
--- a/resources/lib/kodiwrappers/kodiwrapper.py
+++ b/resources/lib/kodiwrappers/kodiwrapper.py
@@ -475,6 +475,10 @@ def invalidate_caches(self):
for f in files:
self.delete_file(self._cache_path + f)
+ def invalidate_channel_caches(self):
+ self.invalidate_cache('offline.json')
+ self.invalidate_cache('recent.json')
+
def container_refresh(self):
self.log_notice('Execute: Container.Refresh', 'Debug')
xbmc.executebuiltin('Container.Refresh')
diff --git a/resources/lib/vrtplayer/vrtapihelper.py b/resources/lib/vrtplayer/vrtapihelper.py
index 92319a46b..6c633a67d 100644
--- a/resources/lib/vrtplayer/vrtapihelper.py
+++ b/resources/lib/vrtplayer/vrtapihelper.py
@@ -4,7 +4,7 @@
from __future__ import absolute_import, division, unicode_literals
from resources.lib.helperobjects.helperobjects import TitleItem
-from resources.lib.vrtplayer import actions, metadatacreator, statichelper
+from resources.lib.vrtplayer import CHANNELS, actions, metadatacreator, statichelper
try:
from urllib.parse import urlencode, unquote
@@ -28,6 +28,7 @@ def __init__(self, _kodi, _favorites):
self._showfanart = _kodi.get_setting('showfanart') == 'true'
self._showpermalink = _kodi.get_setting('showpermalink') == 'true'
self._favorites = _favorites
+ self._channel_filter = [channel.get('name') for channel in CHANNELS if _kodi.get_setting(channel.get('name')) == 'true']
def get_tvshow_items(self, category=None, channel=None, filtered=False):
params = dict()
@@ -125,10 +126,10 @@ def get_episode_items(self, path=None, page=None, show_seasons=False, filtered=F
if statichelper.is_filtered(filtered):
params['facets[programName]'] = '[%s]' % (','.join(self._favorites.names()))
- cache_file = '%s-filtered.json' % variety
+ cache_file = '%s-%s-filtered.json' % (variety, page)
else:
- params['facets[programBrands]'] = '[een,canvas,sporza,vrtnws,vrtnxt,radio1,radio2,klara,stubru,mnm]'
- cache_file = '%s.json' % variety
+ params['facets[programBrands]'] = '[%s]' % ','.join(self._channel_filter)
+ cache_file = '%s-%s.json' % (variety, page)
# Try the cache if it is fresh
api_json = self._kodi.get_cache(cache_file, ttl=60 * 60)
diff --git a/resources/settings.xml b/resources/settings.xml
index fc853420d..c13be1c58 100644
--- a/resources/settings.xml
+++ b/resources/settings.xml
@@ -21,16 +21,31 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/service.py b/service.py
index 816e2261b..c50a4cb11 100644
--- a/service.py
+++ b/service.py
@@ -26,6 +26,8 @@ def onSettingsChanged(self):
_kodi.log_notice('VRT NU Addon: settings changed')
_kodi.container_refresh()
+ _kodi.invalidate_channel_caches()
+
_tokenresolver = tokenresolver.TokenResolver(_kodi)
_tokenresolver.reset_cookies()
diff --git a/test/xbmcaddon.py b/test/xbmcaddon.py
index 8fbaa6849..ee98f257d 100644
--- a/test/xbmcaddon.py
+++ b/test/xbmcaddon.py
@@ -32,14 +32,33 @@
# FIXME: Maybe move this to test/userdata/settings.xml ?
SETTINGS = {
+ # credentials
'username': 'qsdfdsq',
'password': 'qsdfqsdfds',
- 'log_level': 'Verbose',
- 'max_bandwidth': 0,
+ # interface
+ 'usefavorites': 'false',
'showpermalink': 'true',
+ 'usemenucaching': 'true',
+ 'usehttpcaching': 'true',
+ # playback
'showsubtitles': 'true',
+ 'max_bandwidth': 0,
'usedrm': 'false',
- 'usefavorites': 'false',
+ # channels
+ 'een': 'true',
+ 'canvas': 'true',
+ 'ketnet': 'false',
+ 'ketnet-jr': 'false',
+ 'sporza': 'true',
+ 'radio1': 'true',
+ 'radio2': 'true',
+ 'klara': 'true',
+ 'stubru': 'true',
+ 'mnm': 'true',
+ 'vrtnws': 'true',
+ 'vrtnxt': 'true',
+ # troubleshooting
+ 'log_level': 'Verbose',
}
# Read credentials from credentials.json