diff --git a/jellyfin_kodi/entrypoint/default.py b/jellyfin_kodi/entrypoint/default.py index ba8a7573..97f1ac21 100644 --- a/jellyfin_kodi/entrypoint/default.py +++ b/jellyfin_kodi/entrypoint/default.py @@ -15,7 +15,7 @@ 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 +from helper import translate, event, settings, window, dialog, api, JSONRPC, debug ################################################################################################# @@ -45,7 +45,7 @@ class Events(object): if server == 'None': server = None - LOG.info("path: %s params: %s", path, json.dumps(params, indent=4)) + LOG.info("path: %s params: %s", path, debug.JsonDebugPrinter(params)) if '/extrafanart' in base_url: diff --git a/jellyfin_kodi/entrypoint/service.py b/jellyfin_kodi/entrypoint/service.py index b3b0ed2b..28ebc155 100644 --- a/jellyfin_kodi/entrypoint/service.py +++ b/jellyfin_kodi/entrypoint/service.py @@ -20,7 +20,7 @@ import library import setup import monitor from views import Views, verify_kodi_defaults -from helper import translate, window, settings, event, dialog +from helper import translate, window, settings, event, dialog, debug from jellyfin import Jellyfin ################################################################################################# @@ -171,7 +171,7 @@ class Service(xbmc.Monitor): data = json.loads(data) - LOG.debug("[ %s: %s ] %s", sender, method, json.dumps(data, indent=4)) + LOG.debug("[ %s: %s ] %s", sender, method, debug.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 new file mode 100644 index 00000000..7dc2e4dc --- /dev/null +++ b/jellyfin_kodi/helper/debug.py @@ -0,0 +1,15 @@ +# -*- 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/jellyfin/http.py b/jellyfin_kodi/jellyfin/http.py index 63c58f3b..1b7921ed 100644 --- a/jellyfin_kodi/jellyfin/http.py +++ b/jellyfin_kodi/jellyfin/http.py @@ -11,6 +11,7 @@ import requests from six import string_types from .exceptions import HTTPException +from helper import debug ################################################################################################# @@ -80,7 +81,7 @@ class HTTP(object): raise AttributeError("Request cannot be empty") data = self._request(data) - LOG.debug("--->[ http ] %s", json.dumps(data, indent=4)) + LOG.debug("--->[ http ] %s", debug.JsonDebugPrinter(data)) retry = data.pop('retry', 5) while True: @@ -162,7 +163,7 @@ class HTTP(object): elapsed = int(r.elapsed.total_seconds() * 1000) response = r.json() LOG.debug("---<[ http ][%s ms]", elapsed) - LOG.debug(json.dumps(response, indent=4)) + LOG.debug(debug.JsonDebugPrinter(response)) return response except ValueError: diff --git a/jellyfin_kodi/monitor.py b/jellyfin_kodi/monitor.py index 00f88d12..804fa506 100644 --- a/jellyfin_kodi/monitor.py +++ b/jellyfin_kodi/monitor.py @@ -15,7 +15,7 @@ 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 +from helper import translate, settings, window, dialog, api, JSONRPC, debug from jellyfin import Jellyfin from webservice import WebService @@ -96,7 +96,7 @@ class Monitor(xbmc.Monitor): data = json.loads(data) - LOG.debug("[ %s: %s ] %s", sender, method, json.dumps(data, indent=4)) + LOG.debug("[ %s: %s ] %s", sender, method, debug.JsonDebugPrinter(data)) if self.sleep: LOG.info("System.OnSleep detected, ignore monitor request.")