From b110f1cf133c048ffe3609a25f0fff3a9e5c7a62 Mon Sep 17 00:00:00 2001 From: Brian Pepple Date: Sun, 27 Sep 2020 11:10:51 -0400 Subject: [PATCH 01/16] Simplify boolean --- jellyfin_kodi/connect.py | 2 +- jellyfin_kodi/dialogs/context.py | 2 +- jellyfin_kodi/dialogs/loginmanual.py | 2 +- jellyfin_kodi/dialogs/resume.py | 2 +- jellyfin_kodi/dialogs/serverconnect.py | 2 +- jellyfin_kodi/dialogs/servermanual.py | 2 +- jellyfin_kodi/dialogs/usersconnect.py | 2 +- jellyfin_kodi/downloader.py | 2 +- jellyfin_kodi/objects/actions.py | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/jellyfin_kodi/connect.py b/jellyfin_kodi/connect.py index 5c838fb0..ec2fa325 100644 --- a/jellyfin_kodi/connect.py +++ b/jellyfin_kodi/connect.py @@ -46,7 +46,7 @@ class Connect(object): if server['Id'] == server_id: credentials['Servers'] = [server] - server_select = True if server_id is None and not settings('SyncInstallRunDone.bool') else False + server_select = server_id is None and not settings('SyncInstallRunDone.bool') new_credentials = self.register_client(credentials, options, server_id, server_select) for server in servers: diff --git a/jellyfin_kodi/dialogs/context.py b/jellyfin_kodi/dialogs/context.py index 83b3eea0..df7543ad 100644 --- a/jellyfin_kodi/dialogs/context.py +++ b/jellyfin_kodi/dialogs/context.py @@ -41,7 +41,7 @@ class ContextMenu(xbmcgui.WindowXMLDialog): self._options = options def is_selected(self): - return True if self.selected_option else False + return bool(self.selected_option) def get_selected(self): return self.selected_option diff --git a/jellyfin_kodi/dialogs/loginmanual.py b/jellyfin_kodi/dialogs/loginmanual.py index 0852245b..eee28d41 100644 --- a/jellyfin_kodi/dialogs/loginmanual.py +++ b/jellyfin_kodi/dialogs/loginmanual.py @@ -40,7 +40,7 @@ class LoginManual(xbmcgui.WindowXMLDialog): setattr(self, key, value) def is_logged_in(self): - return True if self._user else False + return bool(self._user) def get_user(self): return self._user diff --git a/jellyfin_kodi/dialogs/resume.py b/jellyfin_kodi/dialogs/resume.py index 4cfca7ea..bee793f9 100644 --- a/jellyfin_kodi/dialogs/resume.py +++ b/jellyfin_kodi/dialogs/resume.py @@ -31,7 +31,7 @@ class ResumeDialog(xbmcgui.WindowXMLDialog): self._resume_point = time def is_selected(self): - return True if self.selected_option is not None else False + return self.selected_option is not None def get_selected(self): return self.selected_option diff --git a/jellyfin_kodi/dialogs/serverconnect.py b/jellyfin_kodi/dialogs/serverconnect.py index a6ddc5f2..c4c3afff 100644 --- a/jellyfin_kodi/dialogs/serverconnect.py +++ b/jellyfin_kodi/dialogs/serverconnect.py @@ -48,7 +48,7 @@ class ServerConnect(xbmcgui.WindowXMLDialog): setattr(self, key, value) def is_server_selected(self): - return True if self._selected_server else False + return bool(self._selected_server) def get_server(self): return self._selected_server diff --git a/jellyfin_kodi/dialogs/servermanual.py b/jellyfin_kodi/dialogs/servermanual.py index 641b6be6..803e706a 100644 --- a/jellyfin_kodi/dialogs/servermanual.py +++ b/jellyfin_kodi/dialogs/servermanual.py @@ -48,7 +48,7 @@ class ServerManual(xbmcgui.WindowXMLDialog): setattr(self, key, value) def is_connected(self): - return True if self._server else False + return bool(self._server) def get_server(self): return self._server diff --git a/jellyfin_kodi/dialogs/usersconnect.py b/jellyfin_kodi/dialogs/usersconnect.py index 57daecab..a361756d 100644 --- a/jellyfin_kodi/dialogs/usersconnect.py +++ b/jellyfin_kodi/dialogs/usersconnect.py @@ -39,7 +39,7 @@ class UsersConnect(xbmcgui.WindowXMLDialog): setattr(self, key, value) def is_user_selected(self): - return True if self._user else False + return bool(self._user) def get_user(self): return self._user diff --git a/jellyfin_kodi/downloader.py b/jellyfin_kodi/downloader.py index 22e533c4..fa67facc 100644 --- a/jellyfin_kodi/downloader.py +++ b/jellyfin_kodi/downloader.py @@ -69,7 +69,7 @@ def validate_view(library_id, item_id): LOG.exception(error) return False - return True if len(result['Items']) else False + return bool(len(result['Items'])) def get_single_item(parent_id, media): diff --git a/jellyfin_kodi/objects/actions.py b/jellyfin_kodi/objects/actions.py index 14b09702..a6f461b1 100644 --- a/jellyfin_kodi/objects/actions.py +++ b/jellyfin_kodi/objects/actions.py @@ -95,7 +95,7 @@ class Actions(object): if choice is None: raise Exception("User backed out of resume dialog.") - item["resumePlayback"] = False if not choice else True + item["resumePlayback"] = bool(choice) if settings('enableCinema.bool') and not item["resumePlayback"]: self._set_intros(item) From e7e6fbdd31808f7a5ff35eba4b8446290aaa8849 Mon Sep 17 00:00:00 2001 From: Brian Pepple Date: Sun, 27 Sep 2020 11:14:53 -0400 Subject: [PATCH 02/16] Move assignment closer to its usage --- jellyfin_kodi/full_sync.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jellyfin_kodi/full_sync.py b/jellyfin_kodi/full_sync.py index 9c87d0c1..8ce9a7f8 100644 --- a/jellyfin_kodi/full_sync.py +++ b/jellyfin_kodi/full_sync.py @@ -540,11 +540,11 @@ class FullSync(object): settings('MusicRescan.bool', False) if items: - count = 0 - with self.library.music_database_lock if media == 'music' else self.library.database_lock: with Database(media) as kodidb: + count = 0 + if library.media_type == 'mixed': movies = [x for x in items if x[1] == 'Movie'] From 5e188e63dd399499fb05e3d97bc1dd7db0756e2c Mon Sep 17 00:00:00 2001 From: Brian Pepple Date: Sun, 27 Sep 2020 11:16:48 -0400 Subject: [PATCH 03/16] Merge nested if condition --- jellyfin_kodi/library.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/jellyfin_kodi/library.py b/jellyfin_kodi/library.py index 860c1c9e..01bb4eac 100644 --- a/jellyfin_kodi/library.py +++ b/jellyfin_kodi/library.py @@ -341,20 +341,21 @@ class Library(threading.Thread): return True - if settings('SyncInstallRunDone.bool'): - if settings('kodiCompanion.bool'): + if settings('SyncInstallRunDone.bool') and settings( + 'kodiCompanion.bool' + ): - if self.server.jellyfin.check_companion_installed(): + if self.server.jellyfin.check_companion_installed(): - if not self.fast_sync(): - dialog("ok", "{jellyfin}", translate(33128)) + if not self.fast_sync(): + dialog("ok", "{jellyfin}", translate(33128)) - raise Exception("Failed to retrieve latest updates") + raise Exception("Failed to retrieve latest updates") - LOG.info("--<[ retrieve changes ]") + LOG.info("--<[ retrieve changes ]") - else: - raise LibraryException('CompanionMissing') + else: + raise LibraryException('CompanionMissing') return True except LibraryException as error: From 5b1e4c7eab9f26432c2a1d1b36bbfee1524dc21c Mon Sep 17 00:00:00 2001 From: Brian Pepple Date: Sun, 27 Sep 2020 11:18:34 -0400 Subject: [PATCH 04/16] Simplify conditional into switch-like form --- jellyfin_kodi/monitor.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/jellyfin_kodi/monitor.py b/jellyfin_kodi/monitor.py index 08756386..d1928fa2 100644 --- a/jellyfin_kodi/monitor.py +++ b/jellyfin_kodi/monitor.py @@ -255,19 +255,17 @@ class Monitor(xbmc.Monitor): if command in ('Mute', 'Unmute', 'SetVolume', 'SetSubtitleStreamIndex', 'SetAudioStreamIndex', 'SetRepeatMode'): - if command == 'Mute': + if command in ['Mute', 'Unmute']: xbmc.executebuiltin('Mute') - elif command == 'Unmute': - xbmc.executebuiltin('Mute') - elif command == 'SetVolume': - xbmc.executebuiltin('SetVolume(%s[,showvolumebar])' % args['Volume']) - elif command == 'SetRepeatMode': - xbmc.executebuiltin('xbmc.PlayerControl(%s)' % args['RepeatMode']) elif command == 'SetAudioStreamIndex': self.player.set_audio_subs(args['Index']) + elif command == 'SetRepeatMode': + xbmc.executebuiltin('xbmc.PlayerControl(%s)' % args['RepeatMode']) elif command == 'SetSubtitleStreamIndex': self.player.set_audio_subs(None, args['Index']) + elif command == 'SetVolume': + xbmc.executebuiltin('SetVolume(%s[,showvolumebar])' % args['Volume']) # Kodi needs a bit of time to update it's current status xbmc.sleep(500) self.player.report_playback() From dd77969a79828923eaf5bc69ed86f87fca15b29c Mon Sep 17 00:00:00 2001 From: Brian Pepple Date: Sun, 27 Sep 2020 11:20:32 -0400 Subject: [PATCH 05/16] Hoist repeated code outside conditional statement --- jellyfin_kodi/views.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/jellyfin_kodi/views.py b/jellyfin_kodi/views.py index 43c98a4e..40e588fb 100644 --- a/jellyfin_kodi/views.py +++ b/jellyfin_kodi/views.py @@ -832,17 +832,14 @@ class Views(object): window_prop = "Jellyfin.wnodes.%s" % index window('%s.index' % window_prop, path.replace('all.xml', "")) # dir window('%s.title' % window_prop, view['Name']) - window('%s.content' % window_prop, path) - elif node == 'browse': window_prop = "Jellyfin.wnodes.%s" % index window('%s.title' % window_prop, view['Name']) - window('%s.content' % window_prop, path) else: window_prop = "Jellyfin.wnodes.%s.%s" % (index, node) window('%s.title' % window_prop, node_label) - window('%s.content' % window_prop, path) + window('%s.content' % window_prop, path) window('%s.id' % window_prop, view['Id']) window('%s.path' % window_prop, window_path) From f5c0016914fd81865d041df9eb71543bc59d7076 Mon Sep 17 00:00:00 2001 From: Brian Pepple Date: Sun, 27 Sep 2020 11:21:20 -0400 Subject: [PATCH 06/16] Remove redundant conditional --- jellyfin_kodi/jellyfin/ws_client.py | 2 +- jellyfin_kodi/views.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/jellyfin_kodi/jellyfin/ws_client.py b/jellyfin_kodi/jellyfin/ws_client.py index 30f4c831..3d8d0dc2 100644 --- a/jellyfin_kodi/jellyfin/ws_client.py +++ b/jellyfin_kodi/jellyfin/ws_client.py @@ -62,7 +62,7 @@ class WSClient(threading.Thread): self.wsc.run_forever(ping_interval=10) - if not self.stop and monitor.waitForAbort(5): + if monitor.waitForAbort(5): break LOG.info("---<[ websocket ]") diff --git a/jellyfin_kodi/views.py b/jellyfin_kodi/views.py index 40e588fb..e3ee07c0 100644 --- a/jellyfin_kodi/views.py +++ b/jellyfin_kodi/views.py @@ -853,7 +853,7 @@ class Views(object): if not self.server.logged_in: window('%s.artwork' % prop, clear=True) - elif self.server.logged_in and self.media_folders is not None: + elif self.media_folders is not None: for library in self.media_folders: if library['Id'] == view_id and 'Primary' in library.get('ImageTags', {}): From 29f9956b6112d8a348f51882402e1731eeef62af Mon Sep 17 00:00:00 2001 From: Brian Pepple Date: Sun, 27 Sep 2020 11:24:14 -0400 Subject: [PATCH 07/16] Replace if statement with if expression --- jellyfin_kodi/dialogs/context.py | 5 +---- jellyfin_kodi/helper/loghandler.py | 5 +---- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/jellyfin_kodi/dialogs/context.py b/jellyfin_kodi/dialogs/context.py index df7543ad..834a09a0 100644 --- a/jellyfin_kodi/dialogs/context.py +++ b/jellyfin_kodi/dialogs/context.py @@ -35,10 +35,7 @@ class ContextMenu(xbmcgui.WindowXMLDialog): xbmcgui.WindowXMLDialog.__init__(self, *args, **kwargs) def set_options(self, options=None): - if options is None: - self._options = [] - else: - self._options = options + self._options = [] if options is None else options def is_selected(self): return bool(self.selected_option) diff --git a/jellyfin_kodi/helper/loghandler.py b/jellyfin_kodi/helper/loghandler.py index 306a50f2..9d1cd07f 100644 --- a/jellyfin_kodi/helper/loghandler.py +++ b/jellyfin_kodi/helper/loghandler.py @@ -51,10 +51,7 @@ class LogHandler(logging.StreamHandler): self.mask_info = settings('maskInfo.bool') - if kodi_version() > 18: - self.level = xbmc.LOGINFO - else: - self.level = xbmc.LOGNOTICE + self.level = xbmc.LOGINFO if kodi_version() > 18 else xbmc.LOGNOTICE def emit(self, record): From 03451064271c6c2fa55b6406c020371b3784bb4a Mon Sep 17 00:00:00 2001 From: Brian Pepple Date: Sun, 27 Sep 2020 11:29:58 -0400 Subject: [PATCH 08/16] Replace unused for index with underscore --- jellyfin_kodi/entrypoint/default.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jellyfin_kodi/entrypoint/default.py b/jellyfin_kodi/entrypoint/default.py index 758c0aa8..0d2ac6f3 100644 --- a/jellyfin_kodi/entrypoint/default.py +++ b/jellyfin_kodi/entrypoint/default.py @@ -267,7 +267,7 @@ def browse(media, view_id=None, folder=None, server_id=None, api_client=None): monitor = xbmc.Monitor() - for i in range(300): + for _ in range(300): if window('jellyfin_online.bool'): break elif monitor.waitForAbort(0.1): From cbaa41d2428f56918e337441c722cfe83f2436b8 Mon Sep 17 00:00:00 2001 From: Brian Pepple Date: Sun, 27 Sep 2020 11:34:21 -0400 Subject: [PATCH 09/16] Simplify conditional into return statement --- jellyfin_kodi/helper/utils.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/jellyfin_kodi/helper/utils.py b/jellyfin_kodi/helper/utils.py index 80bfe13b..42529ff3 100644 --- a/jellyfin_kodi/helper/utils.py +++ b/jellyfin_kodi/helper/utils.py @@ -185,10 +185,7 @@ def should_stop(): LOG.info("exiiiiitttinggg") return True - if not window('jellyfin_online.bool'): - return True - - return False + return not window('jellyfin_online.bool') def get_screensaver(): From 52525d4725357a44244519f6aa2a865b3c2ba296 Mon Sep 17 00:00:00 2001 From: Brian Pepple Date: Sun, 27 Sep 2020 11:35:45 -0400 Subject: [PATCH 10/16] Inline variable that is immediately returned --- jellyfin_kodi/jellyfin/api.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/jellyfin_kodi/jellyfin/api.py b/jellyfin_kodi/jellyfin/api.py index 3c8627e0..a8702f0c 100644 --- a/jellyfin_kodi/jellyfin/api.py +++ b/jellyfin_kodi/jellyfin/api.py @@ -452,5 +452,4 @@ class API(object): returns the URL the server prefers to use ''' response = self.send_request(server_address, "system/info/public") - url = response.url.replace('/system/info/public', '') - return url + return response.url.replace('/system/info/public', '') From bfc18e7d4b7651a9c1630df6243a73317b76c4ab Mon Sep 17 00:00:00 2001 From: Brian Pepple Date: Sun, 27 Sep 2020 11:37:16 -0400 Subject: [PATCH 11/16] Merge dictionary assignment with declaration --- jellyfin_kodi/jellyfin/connection_manager.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/jellyfin_kodi/jellyfin/connection_manager.py b/jellyfin_kodi/jellyfin/connection_manager.py index da9bf985..669f23b3 100644 --- a/jellyfin_kodi/jellyfin/connection_manager.py +++ b/jellyfin_kodi/jellyfin/connection_manager.py @@ -340,13 +340,13 @@ class ConnectionManager(object): self.config.data['auth.server=id'] = server['Id'] self.config.data['auth.ssl'] = options.get('ssl', self.config.data['auth.ssl']) - result = { - 'Servers': [server] - } - - result['State'] = CONNECTION_STATE['SignedIn'] if server.get('AccessToken') else CONNECTION_STATE['ServerSignIn'] # Connected - return result + return { + 'Servers': [server], + 'State': CONNECTION_STATE['SignedIn'] + if server.get('AccessToken') + else CONNECTION_STATE['ServerSignIn'], + } def _update_server_info(self, server, system_info): From 785d0d484430ee609340612aad919ced09d25f06 Mon Sep 17 00:00:00 2001 From: Brian Pepple Date: Sun, 27 Sep 2020 11:45:24 -0400 Subject: [PATCH 12/16] Simplify logical expression using De Morgan idents --- jellyfin_kodi/objects/actions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jellyfin_kodi/objects/actions.py b/jellyfin_kodi/objects/actions.py index a6f461b1..7eef6a3d 100644 --- a/jellyfin_kodi/objects/actions.py +++ b/jellyfin_kodi/objects/actions.py @@ -314,7 +314,7 @@ class Actions(object): obj['Artwork']['Backdrop'] = obj['Artwork']['Backdrop'] or [] obj['Artwork']['Thumb'] = obj['Artwork']['Thumb'] or "" - if not intro and not obj['Type'] == 'Trailer': + if not intro and obj['Type'] != 'Trailer': obj['Artwork']['Primary'] = obj['Artwork']['Primary'] \ or "special://home/addons/plugin.video.jellyfin/resources/icon.png" else: From 9d64ca41cbb6188b95880ac5f2a95bfb6dd562ea Mon Sep 17 00:00:00 2001 From: Brian Pepple Date: Sun, 27 Sep 2020 11:47:07 -0400 Subject: [PATCH 13/16] Merge extend into list declaration --- jellyfin_kodi/objects/movies.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/jellyfin_kodi/objects/movies.py b/jellyfin_kodi/objects/movies.py index a0354fa9..2cf9ce53 100644 --- a/jellyfin_kodi/objects/movies.py +++ b/jellyfin_kodi/objects/movies.py @@ -101,8 +101,7 @@ class Movies(KodiDb): if obj['Countries']: self.add_countries(*values(obj, QU.update_country_obj)) - tags = [] - tags.extend(obj['Tags'] or []) + tags = list(obj['Tags'] or []) tags.append(obj['LibraryName']) if obj['Favorite']: From f6eeb49bd10b43309b649b092dec18cf2a168130 Mon Sep 17 00:00:00 2001 From: Brian Pepple Date: Sun, 27 Sep 2020 11:48:21 -0400 Subject: [PATCH 14/16] Hoist repeated code outside conditional statement --- jellyfin_kodi/objects/obj.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/jellyfin_kodi/objects/obj.py b/jellyfin_kodi/objects/obj.py index b506a969..5aedb80f 100644 --- a/jellyfin_kodi/objects/obj.py +++ b/jellyfin_kodi/objects/obj.py @@ -125,11 +125,10 @@ class Objects(object): obj = self.__recursive__(obj, first) if obj: - if rest: - for item in obj: + for item in obj: + if rest: self.__recursiveloop__(item, rest) - else: - for item in obj: + else: yield item def __recursive__(self, obj, keys): From 1462e07fa5c0e4cce1a23e0c4e98d46ff3953235 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Odd=20Str=C3=A5b=C3=B8?= Date: Sun, 10 Oct 2021 15:05:22 +0200 Subject: [PATCH 15/16] Apply suggestions from code review --- jellyfin_kodi/dialogs/context.py | 4 +++- jellyfin_kodi/entrypoint/default.py | 2 +- jellyfin_kodi/helper/loghandler.py | 4 +++- jellyfin_kodi/jellyfin/ws_client.py | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/jellyfin_kodi/dialogs/context.py b/jellyfin_kodi/dialogs/context.py index 834a09a0..d2b51e7a 100644 --- a/jellyfin_kodi/dialogs/context.py +++ b/jellyfin_kodi/dialogs/context.py @@ -35,7 +35,9 @@ class ContextMenu(xbmcgui.WindowXMLDialog): xbmcgui.WindowXMLDialog.__init__(self, *args, **kwargs) def set_options(self, options=None): - self._options = [] if options is None else options + self._options = options + if options is None: + self._options = [] def is_selected(self): return bool(self.selected_option) diff --git a/jellyfin_kodi/entrypoint/default.py b/jellyfin_kodi/entrypoint/default.py index 0d2ac6f3..d2b400a4 100644 --- a/jellyfin_kodi/entrypoint/default.py +++ b/jellyfin_kodi/entrypoint/default.py @@ -267,7 +267,7 @@ def browse(media, view_id=None, folder=None, server_id=None, api_client=None): monitor = xbmc.Monitor() - for _ in range(300): + for _i in range(300): if window('jellyfin_online.bool'): break elif monitor.waitForAbort(0.1): diff --git a/jellyfin_kodi/helper/loghandler.py b/jellyfin_kodi/helper/loghandler.py index 9d1cd07f..01ef7a67 100644 --- a/jellyfin_kodi/helper/loghandler.py +++ b/jellyfin_kodi/helper/loghandler.py @@ -51,7 +51,9 @@ class LogHandler(logging.StreamHandler): self.mask_info = settings('maskInfo.bool') - self.level = xbmc.LOGINFO if kodi_version() > 18 else xbmc.LOGNOTICE + self.level = xbmc.LOGNOTICE + if kodi_version() > 18: + self.level = xbmc.LOGINFO def emit(self, record): diff --git a/jellyfin_kodi/jellyfin/ws_client.py b/jellyfin_kodi/jellyfin/ws_client.py index 3d8d0dc2..30f4c831 100644 --- a/jellyfin_kodi/jellyfin/ws_client.py +++ b/jellyfin_kodi/jellyfin/ws_client.py @@ -62,7 +62,7 @@ class WSClient(threading.Thread): self.wsc.run_forever(ping_interval=10) - if monitor.waitForAbort(5): + if not self.stop and monitor.waitForAbort(5): break LOG.info("---<[ websocket ]") From b24eba5b706296f0fa5684afa5618bc663faee9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Odd=20Str=C3=A5b=C3=B8?= Date: Sun, 10 Oct 2021 17:35:51 +0200 Subject: [PATCH 16/16] Undo change to loghandler --- jellyfin_kodi/helper/loghandler.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/jellyfin_kodi/helper/loghandler.py b/jellyfin_kodi/helper/loghandler.py index 01ef7a67..306a50f2 100644 --- a/jellyfin_kodi/helper/loghandler.py +++ b/jellyfin_kodi/helper/loghandler.py @@ -51,9 +51,10 @@ class LogHandler(logging.StreamHandler): self.mask_info = settings('maskInfo.bool') - self.level = xbmc.LOGNOTICE if kodi_version() > 18: self.level = xbmc.LOGINFO + else: + self.level = xbmc.LOGNOTICE def emit(self, record):