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..d2b51e7a 100644 --- a/jellyfin_kodi/dialogs/context.py +++ b/jellyfin_kodi/dialogs/context.py @@ -35,13 +35,12 @@ class ContextMenu(xbmcgui.WindowXMLDialog): xbmcgui.WindowXMLDialog.__init__(self, *args, **kwargs) def set_options(self, options=None): + self._options = options if options is None: self._options = [] - else: - 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/entrypoint/default.py b/jellyfin_kodi/entrypoint/default.py index 758c0aa8..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 i in range(300): + for _i in range(300): if window('jellyfin_online.bool'): break elif monitor.waitForAbort(0.1): 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'] 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(): 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', '') 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): 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: 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() diff --git a/jellyfin_kodi/objects/actions.py b/jellyfin_kodi/objects/actions.py index 14b09702..7eef6a3d 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) @@ -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: 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']: 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): diff --git a/jellyfin_kodi/views.py b/jellyfin_kodi/views.py index 43c98a4e..e3ee07c0 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) @@ -856,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', {}):