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