From a4a5d63da74605d1ec016b60c1c2b25e2136b029 Mon Sep 17 00:00:00 2001
From: Jack <jack@robisonservice.com>
Date: Tue, 31 May 2016 17:38:00 -0400
Subject: [PATCH] fix update settings problem

also move log upload url constant to conf.py
---
 lbrynet/conf.py                      |  2 ++
 lbrynet/lbrynet_daemon/LBRYDaemon.py | 27 +++++++++++++++++++--------
 2 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/lbrynet/conf.py b/lbrynet/conf.py
index 526dc711d..06b455392 100644
--- a/lbrynet/conf.py
+++ b/lbrynet/conf.py
@@ -24,6 +24,8 @@ KNOWN_DHT_NODES = [('104.236.42.182', 4000)]
 POINTTRADER_SERVER = 'http://ec2-54-187-192-68.us-west-2.compute.amazonaws.com:2424'
 #POINTTRADER_SERVER = 'http://127.0.0.1:2424'
 
+LOG_POST_URL = "https://lbry.io/log-upload"
+
 CRYPTSD_FILE_EXTENSION = ".cryptsd"
 
 API_INTERFACE = "localhost"
diff --git a/lbrynet/lbrynet_daemon/LBRYDaemon.py b/lbrynet/lbrynet_daemon/LBRYDaemon.py
index b68e1feca..5f5e3fbec 100644
--- a/lbrynet/lbrynet_daemon/LBRYDaemon.py
+++ b/lbrynet/lbrynet_daemon/LBRYDaemon.py
@@ -38,7 +38,7 @@ from lbrynet.lbrynet_daemon.LBRYPublisher import Publisher
 from lbrynet.core.utils import generate_id
 from lbrynet.lbrynet_console.LBRYSettings import LBRYSettings
 from lbrynet.conf import MIN_BLOB_DATA_PAYMENT_RATE, DEFAULT_MAX_SEARCH_RESULTS, KNOWN_DHT_NODES, DEFAULT_MAX_KEY_FEE, \
-    DEFAULT_WALLET, DEFAULT_SEARCH_TIMEOUT, DEFAULT_CACHE_TIME, DEFAULT_UI_BRANCH
+    DEFAULT_WALLET, DEFAULT_SEARCH_TIMEOUT, DEFAULT_CACHE_TIME, DEFAULT_UI_BRANCH, LOG_POST_URL
 from lbrynet.conf import DEFAULT_TIMEOUT, WALLET_TYPES
 from lbrynet.core.StreamDescriptor import StreamDescriptorIdentifier, download_sd_blob
 from lbrynet.core.Session import LBRYSession
@@ -410,8 +410,10 @@ class LBRYDaemon(jsonrpc.JSONRPC):
 
             if self.first_run:
                 d = self._upload_log(log_type="first_run")
-            else:
+            elif self.upload_log:
                 d = self._upload_log(exclude_previous=True, log_type="start")
+            else:
+                d = defer.succeed(None)
 
             if float(self.session.wallet.wallet_balance) == 0.0:
                 d.addCallback(lambda _: self._check_first_run())
@@ -619,7 +621,6 @@ class LBRYDaemon(jsonrpc.JSONRPC):
 
     def _upload_log(self, log_type=None, exclude_previous=False, force=False):
         if self.upload_log or force:
-            LOG_URL = "https://lbry.io/log-upload"
             if exclude_previous:
                 f = open(self.log_file, "r")
                 f.seek(PREVIOUS_LOG)
@@ -633,11 +634,11 @@ class LBRYDaemon(jsonrpc.JSONRPC):
                     'date': datetime.utcnow().strftime('%Y%m%d-%H%M%S'),
                     'hash': base58.b58encode(self.lbryid)[:20],
                     'sys': platform.system(),
-                    'type': log_type,
+                    'type': log_type if log_type else 'default',
                     'log': log_contents
                     }
 
-            requests.post(LOG_URL, params)
+            requests.post(LOG_POST_URL, params)
             return defer.succeed(None)
         else:
             return defer.succeed(None)
@@ -713,16 +714,22 @@ class LBRYDaemon(jsonrpc.JSONRPC):
             elif k == 'download_timeout':
                 if type(settings['download_timeout']) is int:
                     self.session_settings['download_timeout'] = settings['download_timeout']
+                elif type(settings['download_timeout']) is float:
+                    self.session_settings['download_timeout'] = int(settings['download_timeout'])
                 else:
                     return defer.fail()
             elif k == 'search_timeout':
                 if type(settings['search_timeout']) is float:
                     self.session_settings['search_timeout'] = settings['search_timeout']
+                elif type(settings['search_timeout']) is int:
+                    self.session_settings['search_timeout'] = float(settings['search_timeout'])
                 else:
                     return defer.fail()
             elif k == 'cache_time':
                 if type(settings['cache_time']) is int:
                     self.session_settings['cache_time'] = settings['cache_time']
+                elif type(settings['cache_time']) is float:
+                    self.session_settings['cache_time'] = int(settings['cache_time'])
                 else:
                     return defer.fail()
         self.run_on_startup = self.session_settings['run_on_startup']
@@ -1482,6 +1489,7 @@ class LBRYDaemon(jsonrpc.JSONRPC):
             log.info("[" + str(datetime.now()) + "] Set daemon settings to " + json.dumps(self.session_settings))
 
         d = self._update_settings(p)
+        d.addErrback(lambda err: log.info(err.getTraceback()))
         d.addCallback(lambda _: _log_settings_change())
         d.addCallback(lambda _: self._render_response(self.session_settings, OK_CODE))
 
@@ -2145,17 +2153,18 @@ class LBRYDaemon(jsonrpc.JSONRPC):
     #
     #     return d
 
-    def jsonrpc_log(self, message):
+    def jsonrpc_log(self, p):
         """
         Log message
 
         Args:
-            message: message to be logged
+            'message': message to be logged
         Returns:
              True
         """
 
-        log.info(message)
+        message = p['message']
+        log.info("API client log request: %s" % message)
         return self._render_response(True, OK_CODE)
 
     def jsonrpc_upload_log(self, p=None):
@@ -2172,6 +2181,8 @@ class LBRYDaemon(jsonrpc.JSONRPC):
         if p:
             if 'name_prefix' in p.keys():
                 log_type = p['name_prefix'] + '_api'
+            elif 'log_type' in p.keys():
+                log_type = p['log_type'] + '_api'
             else:
                 log_type = None