From d3df56aba22d6f94a9a87fee59810cf9b3ca94e3 Mon Sep 17 00:00:00 2001
From: 2Zero <2Zero@users.noreply.github.com>
Date: Wed, 27 Jan 2016 21:17:32 +0000
Subject: [PATCH] Add option to disable noisy local logging.

---
 .../resources/language/English/strings.po     |  4 ++++
 service.mqtt/resources/settings.xml           |  1 +
 service.mqtt/service.py                       | 22 +++++++++++--------
 3 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/service.mqtt/resources/language/English/strings.po b/service.mqtt/resources/language/English/strings.po
index 9bac79f..892484a 100644
--- a/service.mqtt/resources/language/English/strings.po
+++ b/service.mqtt/resources/language/English/strings.po
@@ -32,6 +32,10 @@ msgctxt "#30013"
 msgid "MQTT Topic Prefix"
 msgstr ""
 
+msgctxt "#30014"
+msgid "MQTT Debug Logging"
+msgstr ""
+
 msgctxt "#30100"
 msgid "Authentication"
 msgstr ""
diff --git a/service.mqtt/resources/settings.xml b/service.mqtt/resources/settings.xml
index 935dc33..2b7aef6 100644
--- a/service.mqtt/resources/settings.xml
+++ b/service.mqtt/resources/settings.xml
@@ -4,6 +4,7 @@
         <setting label="30011" type="text"   id="mqtthost" default="127.0.0.1"/>
         <setting label="30012" type="number"   id="mqttport" default="1883"/>
         <setting label="30013" type="text" id="mqtttopic" default="kodi/"/>
+        <setting label="30014" type="bool" id="mqttdebug" default="false"/>
     </category>
     <category label="30100">
         <setting label="30101" type="bool"   id="mqttanonymousconnection" default="true" />
diff --git a/service.mqtt/service.py b/service.mqtt/service.py
index 10f61ce..7da80b1 100644
--- a/service.mqtt/service.py
+++ b/service.mqtt/service.py
@@ -15,9 +15,13 @@ activeplayertype=""
 lasttitle=""
 lastdetail={}
 
+def mqttlogging(log):
+    if  __addon__.getSetting("mqttdebug")=='true':
+        xbmc.log(log)
+
 def sendrpc(method,params):
     res=xbmc.executeJSONRPC(json.dumps({"jsonrpc":"2.0","method":method,"params":params,"id":1}))
-    xbmc.log("MQTT: JSON-RPC call "+method+" returned "+res)
+    mqttlogging("MQTT: JSON-RPC call "+method+" returned "+res)
     return json.loads(res)
 
 #
@@ -33,7 +37,7 @@ def publish(suffix,val,more):
         robj.update(more)
     jsonstr=json.dumps(robj)
     fulltopic=topic+"status/"+suffix
-    xbmc.log("MQTT: Publishing @"+fulltopic+": "+jsonstr)
+    mqttlogging("MQTT: Publishing @"+fulltopic+": "+jsonstr)
     mqc.publish(fulltopic,jsonstr,qos=0,retain=True)
 
 #
@@ -97,7 +101,7 @@ def publishdetails():
 class MQTTMonitor(xbmc.Monitor):
     def onSettingsChanged(self):
         global mqc
-        xbmc.log("MQTT: Settings changed, reconnecting broker")
+        mqttlogging("MQTT: Settings changed, reconnecting broker")
         mqc.loop_stop(True)
         startmqtt()
 
@@ -130,7 +134,7 @@ class MQTTPlayer(xbmc.Player):
         setplaystate(1,"speed")
         
     def onQueueNextItem():
-        xbmc.log("MQTT onqn");
+        mqttlogging("MQTT onqn");
 
 #
 # Handles commands
@@ -172,7 +176,7 @@ def processcommand(topic,data):
     elif topic=="playbackstate":
         processplaybackstate(data)
     else:
-        xbmc.log("MQTT: Unknown command "+topic)
+        mqttlogging("MQTT: Unknown command "+topic)
 
 #
 # Handles incoming MQTT messages
@@ -186,14 +190,14 @@ def msghandler(mqc,userdata,msg):
         if mytopic.startswith("command/"):
             processcommand(mytopic[8:],msg.payload)
     except Exception as e:
-        xbmc.log("MQTT: Error processing message %s: %s" % (type(e).__name__,e))
+        mqttlogging("MQTT: Error processing message %s: %s" % (type(e).__name__,e))
 
 def connecthandler(mqc,userdata,rc):
-    xbmc.log("MQTT: Connected to MQTT broker with rc=%d" % (rc))
+    mqttlogging("MQTT: Connected to MQTT broker with rc=%d" % (rc))
     mqc.subscribe(topic+"command/#",qos=0)
 
 def disconnecthandler(mqc,userdata,rc):
-    xbmc.log("MQTT: Disconnected from MQTT broker with rc=%d" % (rc))
+    mqttlogging("MQTT: Disconnected from MQTT broker with rc=%d" % (rc))
     time.sleep(5)
     mqc.reconnect()
 
@@ -213,7 +217,7 @@ def startmqtt():
     if not topic.endswith("/"):
         topic+="/"
     mqc.will_set(topic+"connected",0,qos=2,retain=True)
-    xbmc.log("MQTT: Connecting to MQTT broker at %s:%s" % (__addon__.getSetting("mqtthost"),__addon__.getSetting("mqttport")))
+    mqttlogging("MQTT: Connecting to MQTT broker at %s:%s" % (__addon__.getSetting("mqtthost"),__addon__.getSetting("mqttport")))
     mqc.connect(__addon__.getSetting("mqtthost"),__addon__.getSetting("mqttport"),60)
     mqc.publish(topic+"connected",2,qos=1,retain=True)
     mqc.loop_start()
-- 
GitLab