From b110f1cf133c048ffe3609a25f0fff3a9e5c7a62 Mon Sep 17 00:00:00 2001
From: Brian Pepple <bdpepple@gmail.com>
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 <bdpepple@gmail.com>
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 <bdpepple@gmail.com>
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 <bdpepple@gmail.com>
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 <bdpepple@gmail.com>
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 <bdpepple@gmail.com>
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 <bdpepple@gmail.com>
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 <bdpepple@gmail.com>
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 <bdpepple@gmail.com>
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 <bdpepple@gmail.com>
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 <bdpepple@gmail.com>
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 <bdpepple@gmail.com>
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 <bdpepple@gmail.com>
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 <bdpepple@gmail.com>
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?= <oddstr13@openshell.no>
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?= <oddstr13@openshell.no>
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):