diff --git a/jellyfin_kodi/entrypoint/default.py b/jellyfin_kodi/entrypoint/default.py index 97f1ac21..49a90f04 100644 --- a/jellyfin_kodi/entrypoint/default.py +++ b/jellyfin_kodi/entrypoint/default.py @@ -15,7 +15,8 @@ import client from database import reset, get_sync, Database, jellyfin_db, get_credentials from objects import Objects, Actions from downloader import TheVoid -from helper import translate, event, settings, window, dialog, api, JSONRPC, debug +from helper import translate, event, settings, window, dialog, api, JSONRPC +from helper.utils import JsonDebugPrinter ################################################################################################# @@ -45,7 +46,7 @@ class Events(object): if server == 'None': server = None - LOG.info("path: %s params: %s", path, debug.JsonDebugPrinter(params)) + LOG.info("path: %s params: %s", path, JsonDebugPrinter(params)) if '/extrafanart' in base_url: diff --git a/jellyfin_kodi/entrypoint/service.py b/jellyfin_kodi/entrypoint/service.py index 28ebc155..27ee4372 100644 --- a/jellyfin_kodi/entrypoint/service.py +++ b/jellyfin_kodi/entrypoint/service.py @@ -20,7 +20,8 @@ import library import setup import monitor from views import Views, verify_kodi_defaults -from helper import translate, window, settings, event, dialog, debug +from helper import translate, window, settings, event, dialog +from helper.utils import JsonDebugPrinter from jellyfin import Jellyfin ################################################################################################# @@ -171,7 +172,7 @@ class Service(xbmc.Monitor): data = json.loads(data) - LOG.debug("[ %s: %s ] %s", sender, method, debug.JsonDebugPrinter(data)) + LOG.debug("[ %s: %s ] %s", sender, method, JsonDebugPrinter(data)) if method == 'ServerOnline': if data.get('ServerId') is None: diff --git a/jellyfin_kodi/helper/debug.py b/jellyfin_kodi/helper/debug.py deleted file mode 100644 index 7dc2e4dc..00000000 --- a/jellyfin_kodi/helper/debug.py +++ /dev/null @@ -1,15 +0,0 @@ -# -*- coding: utf-8 -*- - -################################################################################################## - -import json - -################################################################################################## - -class JsonDebugPrinter(object): - - def __init__(self, json): - self.json = json - - def __str__(self): - return json.dumps(self.json, indent=4) diff --git a/jellyfin_kodi/helper/utils.py b/jellyfin_kodi/helper/utils.py index ea93d27f..48c88724 100644 --- a/jellyfin_kodi/helper/utils.py +++ b/jellyfin_kodi/helper/utils.py @@ -494,3 +494,16 @@ def has_attribute(obj, name): return True except AttributeError: return False + + +class JsonDebugPrinter(object): + + ''' Helper class to defer converting data to JSON until it is needed. + See: https://github.com/jellyfin/jellyfin-kodi/pull/193 + ''' + + def __init__(self, data): + self.data = data + + def __str__(self): + return json.dumps(self.data, indent=4) diff --git a/jellyfin_kodi/jellyfin/http.py b/jellyfin_kodi/jellyfin/http.py index 1b7921ed..be022420 100644 --- a/jellyfin_kodi/jellyfin/http.py +++ b/jellyfin_kodi/jellyfin/http.py @@ -11,7 +11,7 @@ import requests from six import string_types from .exceptions import HTTPException -from helper import debug +from helper.utils import JsonDebugPrinter ################################################################################################# @@ -81,7 +81,7 @@ class HTTP(object): raise AttributeError("Request cannot be empty") data = self._request(data) - LOG.debug("--->[ http ] %s", debug.JsonDebugPrinter(data)) + LOG.debug("--->[ http ] %s", JsonDebugPrinter(data)) retry = data.pop('retry', 5) while True: @@ -163,7 +163,7 @@ class HTTP(object): elapsed = int(r.elapsed.total_seconds() * 1000) response = r.json() LOG.debug("---<[ http ][%s ms]", elapsed) - LOG.debug(debug.JsonDebugPrinter(response)) + LOG.debug(JsonDebugPrinter(response)) return response except ValueError: diff --git a/jellyfin_kodi/monitor.py b/jellyfin_kodi/monitor.py index 804fa506..4adbaef2 100644 --- a/jellyfin_kodi/monitor.py +++ b/jellyfin_kodi/monitor.py @@ -15,7 +15,8 @@ import downloader import player from client import get_device_id from objects import PlaylistWorker, on_play, on_update, special_listener -from helper import translate, settings, window, dialog, api, JSONRPC, debug +from helper import translate, settings, window, dialog, api, JSONRPC +from helper.utils import JsonDebugPrinter from jellyfin import Jellyfin from webservice import WebService @@ -96,7 +97,7 @@ class Monitor(xbmc.Monitor): data = json.loads(data) - LOG.debug("[ %s: %s ] %s", sender, method, debug.JsonDebugPrinter(data)) + LOG.debug("[ %s: %s ] %s", sender, method, JsonDebugPrinter(data)) if self.sleep: LOG.info("System.OnSleep detected, ignore monitor request.")