diff --git a/context.py b/context.py
index a77266a7..ec3c3821 100644
--- a/context.py
+++ b/context.py
@@ -18,7 +18,7 @@ sys.path.insert(0, __base__)
 
 #################################################################################################
 
-from entrypoint import Context
+from entrypoint import Context  # noqa: F402
 
 #################################################################################################
 
diff --git a/context_play.py b/context_play.py
index 6ad0d3f6..6593b5c2 100644
--- a/context_play.py
+++ b/context_play.py
@@ -18,7 +18,7 @@ sys.path.insert(0, __base__)
 
 #################################################################################################
 
-from entrypoint import Context
+from entrypoint import Context  # noqa: F402
 
 #################################################################################################
 
diff --git a/default.py b/default.py
index 433b2766..e6f7d101 100644
--- a/default.py
+++ b/default.py
@@ -18,7 +18,7 @@ sys.path.insert(0, __base__)
 
 #################################################################################################
 
-from entrypoint import Events
+from entrypoint import Events  # noqa: F402
 
 #################################################################################################
 
diff --git a/resources/lib/client.py b/resources/lib/client.py
index 3c4fa33c..dc694a9b 100644
--- a/resources/lib/client.py
+++ b/resources/lib/client.py
@@ -2,7 +2,6 @@
 
 #################################################################################################
 
-import json
 import logging
 import os
 
diff --git a/resources/lib/connect.py b/resources/lib/connect.py
index 86f490c1..9d16f0ba 100644
--- a/resources/lib/connect.py
+++ b/resources/lib/connect.py
@@ -2,20 +2,17 @@
 
 ##################################################################################################
 
-import json
 import logging
-import os
 
 import xbmc
 import xbmcaddon
-import xbmcvfs
 
 import client
 from database import get_credentials, save_credentials
 from dialogs import ServerConnect, UsersConnect, LoginManual, ServerManual
-from helper import _, settings, addon_id, event, api, dialog, window
+from helper import settings, addon_id, event, api, window
 from jellyfin import Jellyfin
-from jellyfin.core.connection_manager import get_server_address, CONNECTION_STATE
+from jellyfin.core.connection_manager import CONNECTION_STATE
 from jellyfin.core.exceptions import HTTPException
 
 ##################################################################################################
diff --git a/resources/lib/dialogs/resume.py b/resources/lib/dialogs/resume.py
index c4247b10..ef10f353 100644
--- a/resources/lib/dialogs/resume.py
+++ b/resources/lib/dialogs/resume.py
@@ -6,7 +6,6 @@ import logging
 
 import xbmc
 import xbmcgui
-import xbmcaddon
 
 ##################################################################################################
 
diff --git a/resources/lib/entrypoint/__init__.py b/resources/lib/entrypoint/__init__.py
index 1c7899e6..a55c913d 100644
--- a/resources/lib/entrypoint/__init__.py
+++ b/resources/lib/entrypoint/__init__.py
@@ -10,6 +10,10 @@ import xbmcvfs
 from helper import loghandler
 from jellyfin import Jellyfin
 
+from .default import Events
+from .service import Service
+from .context import Context
+
 #################################################################################################
 
 Jellyfin.set_loghandler(loghandler.LogHandler, logging.DEBUG)
@@ -18,7 +22,3 @@ loghandler.config()
 LOG = logging.getLogger('JELLYFIN.entrypoint')
 
 #################################################################################################
-
-from default import Events
-from service import Service
-from context import Context
diff --git a/resources/lib/entrypoint/context.py b/resources/lib/entrypoint/context.py
index 24310559..27a71d95 100644
--- a/resources/lib/entrypoint/context.py
+++ b/resources/lib/entrypoint/context.py
@@ -13,7 +13,6 @@ import database
 from dialogs import context
 from helper import _, settings, dialog
 from downloader import TheVoid
-from objects import Actions
 
 #################################################################################################
 
diff --git a/resources/lib/entrypoint/service.py b/resources/lib/entrypoint/service.py
index 1a0ef2bd..706dbf89 100644
--- a/resources/lib/entrypoint/service.py
+++ b/resources/lib/entrypoint/service.py
@@ -2,12 +2,13 @@
 
 #################################################################################################
 
-import _strptime  # Workaround for threads using datetime: _striptime is locked
 import json
 import logging
 import sys
 from datetime import datetime
 
+# Workaround for threads using datetime: _striptime is locked
+import _strptime  # noqa:F401
 import xbmc
 import xbmcgui
 
diff --git a/resources/lib/full_sync.py b/resources/lib/full_sync.py
index bb49e5b1..5cfdc0ee 100644
--- a/resources/lib/full_sync.py
+++ b/resources/lib/full_sync.py
@@ -3,19 +3,15 @@
 ##################################################################################################
 
 import datetime
-import json
 import logging
-import os
 
 import xbmc
-import xbmcvfs
 
 import downloader as server
 import helper.xmls as xmls
 from database import Database, get_sync, save_sync, jellyfin_db
 from helper import _, settings, window, progress, dialog, LibraryException
 from helper.utils import get_screensaver, set_screensaver
-from views import Views
 
 ##################################################################################################
 
@@ -319,7 +315,7 @@ class FullSync(object):
                             message = show['Name']
                             dialog.update(percent, heading="%s: %s" % (_('addon_name'), library['Name']), message=message)
 
-                            if obj.tvshow(show, library=library):
+                            if obj.tvshow(show, library=library) is not False:
 
                                 for episodes in server.get_episode_by_show(show['Id']):
                                     for episode in episodes['Items']:
diff --git a/resources/lib/helper/playutils.py b/resources/lib/helper/playutils.py
index 2fc04417..bfa0323f 100644
--- a/resources/lib/helper/playutils.py
+++ b/resources/lib/helper/playutils.py
@@ -2,22 +2,21 @@
 
 #################################################################################################
 
-import json
 import logging
 import os
 from uuid import uuid4
+import collections
 
 import xbmc
 import xbmcvfs
 
 import api
-import database
 import client
-import collections
 import requests
-from . import _, settings, window, dialog
 from downloader import TheVoid
 
+from . import _, settings, window, dialog
+
 #################################################################################################
 
 LOG = logging.getLogger("JELLYFIN." + __name__)
diff --git a/resources/lib/helper/translate.py b/resources/lib/helper/translate.py
index 89f04b58..58b020cf 100644
--- a/resources/lib/helper/translate.py
+++ b/resources/lib/helper/translate.py
@@ -2,9 +2,7 @@
 
 ##################################################################################################
 
-import json
 import logging
-import os
 
 import xbmc
 import xbmcaddon
diff --git a/resources/lib/helper/utils.py b/resources/lib/helper/utils.py
index 562723a0..95c99c7c 100644
--- a/resources/lib/helper/utils.py
+++ b/resources/lib/helper/utils.py
@@ -12,13 +12,14 @@ import urllib
 from uuid import uuid4
 from distutils.version import LooseVersion
 
+from dateutil import tz, parser
+
 import xbmc
 import xbmcaddon
 import xbmcgui
 import xbmcvfs
 
-from . import _
-from dateutil import tz, parser
+from .translate import _
 
 #################################################################################################
 
diff --git a/resources/lib/helper/wrapper.py b/resources/lib/helper/wrapper.py
index 16175654..d06f601f 100644
--- a/resources/lib/helper/wrapper.py
+++ b/resources/lib/helper/wrapper.py
@@ -6,8 +6,9 @@ import logging
 
 import xbmcgui
 
-from . import _, LibraryException
-from utils import should_stop
+from .utils import should_stop
+from .exceptions import LibraryException
+from .translate import _
 
 #################################################################################################
 
diff --git a/resources/lib/helper/xmls.py b/resources/lib/helper/xmls.py
index e095c6d3..8591a8e8 100644
--- a/resources/lib/helper/xmls.py
+++ b/resources/lib/helper/xmls.py
@@ -2,7 +2,6 @@
 
 #################################################################################################
 
-import json
 import logging
 import os
 import xml.etree.ElementTree as etree
diff --git a/resources/lib/jellyfin/core/connection_manager.py b/resources/lib/jellyfin/core/connection_manager.py
index 8fde9b13..4eab2458 100644
--- a/resources/lib/jellyfin/core/connection_manager.py
+++ b/resources/lib/jellyfin/core/connection_manager.py
@@ -12,7 +12,7 @@ from distutils.version import LooseVersion
 import urllib3
 
 from credentials import Credentials
-from http import HTTP
+from http import HTTP  # noqa: I201,I100
 
 #################################################################################################
 
@@ -499,7 +499,7 @@ class ConnectionManager(object):
 
     def _after_connect_validated(self, server, credentials, system_info, connection_mode, verify_authentication, options):
 
-        if not options.get('enableAutoLogin'):
+        if options.get('enableAutoLogin') is False:
 
             self.config.data['auth.user_id'] = server.pop('UserId', None)
             self.config.data['auth.token'] = server.pop('AccessToken', None)
diff --git a/resources/lib/jellyfin/core/credentials.py b/resources/lib/jellyfin/core/credentials.py
index ac81f3d9..9c4f35a4 100644
--- a/resources/lib/jellyfin/core/credentials.py
+++ b/resources/lib/jellyfin/core/credentials.py
@@ -2,9 +2,7 @@
 
 #################################################################################################
 
-import json
 import logging
-import os
 import time
 from datetime import datetime
 
diff --git a/resources/lib/jellyfin/core/ws_client.py b/resources/lib/jellyfin/core/ws_client.py
index 267427a6..72c45c56 100644
--- a/resources/lib/jellyfin/core/ws_client.py
+++ b/resources/lib/jellyfin/core/ws_client.py
@@ -5,7 +5,6 @@
 import json
 import logging
 import threading
-import time
 
 import xbmc
 
diff --git a/resources/lib/jellyfin/resources/websocket.py b/resources/lib/jellyfin/resources/websocket.py
index 925ca19f..6cb9c009 100644
--- a/resources/lib/jellyfin/resources/websocket.py
+++ b/resources/lib/jellyfin/resources/websocket.py
@@ -841,7 +841,7 @@ class WebSocketApp(object):
         close websocket connection.
         """
         self.keep_running = False
-        if self.sock is None:
+        if self.sock is not None:
             self.sock.close()
 
     def _send_ping(self, interval):
@@ -887,7 +887,7 @@ class WebSocketApp(object):
                 try:
                     data = self.sock.recv()
 
-                    if data is None or not self.keep_running:
+                    if data is None or self.keep_running is False:
                         break
                     self._callback(self.on_message, data)
 
diff --git a/resources/lib/library.py b/resources/lib/library.py
index 2b14fbf0..a3df3fb6 100644
--- a/resources/lib/library.py
+++ b/resources/lib/library.py
@@ -5,7 +5,6 @@
 import logging
 import Queue
 import threading
-import sys
 from datetime import datetime, timedelta
 
 import xbmc
@@ -16,7 +15,7 @@ from database import Database, jellyfin_db, get_sync, save_sync
 from full_sync import FullSync
 from views import Views
 from downloader import GetItemWorker
-from helper import _, api, stop, settings, window, dialog, event, progress, LibraryException
+from helper import _, api, stop, settings, window, dialog, event, LibraryException
 from helper.utils import split_list, set_screensaver, get_screensaver
 from jellyfin import Jellyfin
 
diff --git a/resources/lib/monitor.py b/resources/lib/monitor.py
index 31013b09..148b008d 100644
--- a/resources/lib/monitor.py
+++ b/resources/lib/monitor.py
@@ -6,17 +6,15 @@ import binascii
 import json
 import logging
 import threading
-import sys
 
 import xbmc
-import xbmcgui
 
 import connect
 import downloader
 import player
 from client import get_device_id
-from objects import Actions, PlaylistWorker, on_play, on_update, special_listener
-from helper import _, settings, window, dialog, event, api, JSONRPC
+from objects import PlaylistWorker, on_play, on_update, special_listener
+from helper import _, settings, window, dialog, api, JSONRPC
 from jellyfin import Jellyfin
 from webservice import WebService
 
diff --git a/resources/lib/objects/__init__.py b/resources/lib/objects/__init__.py
index 77d65e37..9300934d 100644
--- a/resources/lib/objects/__init__.py
+++ b/resources/lib/objects/__init__.py
@@ -1,5 +1,3 @@
-version = "171076031"
-
 from movies import Movies
 from musicvideos import MusicVideos
 from tvshows import TVShows
diff --git a/resources/lib/objects/actions.py b/resources/lib/objects/actions.py
index 10997257..2939db9c 100644
--- a/resources/lib/objects/actions.py
+++ b/resources/lib/objects/actions.py
@@ -2,7 +2,6 @@
 
 #################################################################################################
 
-import json
 import logging
 import threading
 import sys
@@ -16,7 +15,7 @@ import xbmcaddon
 import database
 from downloader import TheVoid
 from obj import Objects
-from helper import _, playutils, api, window, settings, dialog, JSONRPC
+from helper import _, playutils, api, window, settings, dialog
 from dialogs import resume
 from utils import get_play_action
 
@@ -443,7 +442,7 @@ class Actions(object):
             listitem.setProperty('IsPlayable', 'true')
             listitem.setProperty('IsFolder', 'false')
 
-            if obj['Resume'] and seektime:
+            if obj['Resume'] and seektime is not False:
                 listitem.setProperty('resumetime', str(obj['Resume']))
                 listitem.setProperty('StartPercent', str(((obj['Resume'] / obj['Runtime']) * 100) - 0.40))
             else:
diff --git a/resources/lib/objects/kodi/artwork.py b/resources/lib/objects/kodi/artwork.py
index f4bebd24..40268f75 100644
--- a/resources/lib/objects/kodi/artwork.py
+++ b/resources/lib/objects/kodi/artwork.py
@@ -12,7 +12,7 @@ import xbmcvfs
 
 import queries as QU
 import queries_texture as QUTEX
-from helper import window, settings
+from helper import settings
 import requests
 
 ##################################################################################################
diff --git a/resources/lib/objects/kodi/kodi.py b/resources/lib/objects/kodi/kodi.py
index bee8db0b..844d3ca4 100644
--- a/resources/lib/objects/kodi/kodi.py
+++ b/resources/lib/objects/kodi/kodi.py
@@ -4,8 +4,6 @@
 
 import logging
 
-import xbmc
-
 import artwork
 import queries as QU
 from helper import values
diff --git a/resources/lib/objects/movies.py b/resources/lib/objects/movies.py
index 6ea50008..19fced67 100644
--- a/resources/lib/objects/movies.py
+++ b/resources/lib/objects/movies.py
@@ -2,7 +2,6 @@
 
 ##################################################################################################
 
-import json
 import logging
 import urllib
 
@@ -10,7 +9,7 @@ import downloader as server
 from obj import Objects
 from kodi import Movies as KodiDb, queries as QU
 from database import jellyfin_db, queries as QUEM
-from helper import api, catch, stop, validate, jellyfin_item, library_check, values, settings, Local
+from helper import api, stop, validate, jellyfin_item, library_check, values, settings, Local
 
 ##################################################################################################
 
diff --git a/resources/lib/objects/music.py b/resources/lib/objects/music.py
index 54e6318a..b927187a 100644
--- a/resources/lib/objects/music.py
+++ b/resources/lib/objects/music.py
@@ -2,15 +2,13 @@
 
 ##################################################################################################
 
-import json
 import datetime
 import logging
-import urllib
 
 from obj import Objects
 from kodi import Music as KodiDb, queries_music as QU
 from database import jellyfin_db, queries as QUEM
-from helper import api, catch, stop, validate, jellyfin_item, values, library_check, settings, Local
+from helper import api, stop, validate, jellyfin_item, values, library_check, Local
 
 ##################################################################################################
 
diff --git a/resources/lib/objects/musicvideos.py b/resources/lib/objects/musicvideos.py
index 679ac231..d7e8a291 100644
--- a/resources/lib/objects/musicvideos.py
+++ b/resources/lib/objects/musicvideos.py
@@ -10,7 +10,7 @@ import urllib
 from obj import Objects
 from kodi import MusicVideos as KodiDb, queries as QU
 from database import jellyfin_db, queries as QUEM
-from helper import api, catch, stop, validate, library_check, jellyfin_item, values, Local
+from helper import api, stop, validate, library_check, jellyfin_item, values, Local
 
 ##################################################################################################
 
diff --git a/resources/lib/objects/tvshows.py b/resources/lib/objects/tvshows.py
index 92ff9cce..55d4bba8 100644
--- a/resources/lib/objects/tvshows.py
+++ b/resources/lib/objects/tvshows.py
@@ -2,7 +2,6 @@
 
 ##################################################################################################
 
-import json
 import logging
 import sqlite3
 import urllib
@@ -12,7 +11,7 @@ from obj import Objects
 from kodi import TVShows as KodiDb, queries as QU
 import downloader as server
 from database import jellyfin_db, queries as QUEM
-from helper import api, catch, stop, validate, jellyfin_item, library_check, settings, values, Local
+from helper import api, stop, validate, jellyfin_item, library_check, settings, values, Local
 
 ##################################################################################################
 
diff --git a/resources/lib/player.py b/resources/lib/player.py
index 2158a991..80e261e6 100644
--- a/resources/lib/player.py
+++ b/resources/lib/player.py
@@ -2,7 +2,6 @@
 
 #################################################################################################
 
-import json
 import logging
 import os
 
diff --git a/resources/lib/setup.py b/resources/lib/setup.py
index 311ee3c3..b6a5397a 100644
--- a/resources/lib/setup.py
+++ b/resources/lib/setup.py
@@ -4,9 +4,7 @@
 
 import logging
 
-import xbmc
-
-from helper import _, settings, dialog, JSONRPC, compare_version
+from helper import _, settings, dialog, JSONRPC
 
 #################################################################################################
 
diff --git a/resources/lib/views.py b/resources/lib/views.py
index 6920d4f7..dbca073c 100644
--- a/resources/lib/views.py
+++ b/resources/lib/views.py
@@ -11,9 +11,7 @@ import xml.etree.ElementTree as etree
 import xbmc
 import xbmcvfs
 
-import downloader as server
 from database import Database, jellyfin_db, get_sync, save_sync
-from objects.kodi import kodi
 from helper import _, api, indent, write_xml, window, event
 from jellyfin import Jellyfin
 
diff --git a/service.py b/service.py
index b29d5679..6f09fdab 100644
--- a/service.py
+++ b/service.py
@@ -19,8 +19,8 @@ sys.path.insert(0, __base__)
 
 #################################################################################################
 
-from entrypoint import Service
-from helper import settings
+from entrypoint import Service  # noqa: F402
+from helper import settings  # noqa: F402
 
 #################################################################################################
 
diff --git a/tox.ini b/tox.ini
index c32ca951..41ad1896 100644
--- a/tox.ini
+++ b/tox.ini
@@ -2,3 +2,7 @@
 max-line-length = 9999
 import-order-style = pep8
 exclude = ./.git,./.vscode,./libraries
+extend-ignore =
+    I202
+per-file-ignores =
+    */__init__.py: F401