]> www.vanbest.org Git - motioneye-debian/commitdiff
fixed main config forgetting threads
authorCalin Crisan <ccrisan@gmail.com>
Sat, 23 Aug 2014 17:03:12 +0000 (20:03 +0300)
committerCalin Crisan <ccrisan@gmail.com>
Sat, 23 Aug 2014 17:03:12 +0000 (20:03 +0300)
src/config.py
src/handlers.py
src/remote.py

index 32b9aa066af72fde786917ccf38c45ef3f36036a..9b4f24a0a91a2876b90789bdfa7186b95c18e7b5 100644 (file)
@@ -115,14 +115,6 @@ def set_main(main_config):
     # read the actual configuration from file
     lines = get_main(as_lines=True)
     
-    # preserve the threads
-    if 'thread' not in main_config:
-        threads = main_config.setdefault('thread', [])
-        for line in lines:
-            match = re.match('^\s*thread\s+([a-zA-Z0-9.\-]+)', line)
-            if match:
-                threads.append(match.groups()[0])
-    
     # write the configuration to file
     logging.debug('writing main config to %(path)s...' % {'path': config_file_path})
     
@@ -183,9 +175,14 @@ def get_camera_ids():
         
     camera_ids.sort()
     
-    _camera_ids_cache = camera_ids
+    filtered_camera_ids = []
+    for camera_id in camera_ids:
+        if get_camera(camera_id):
+            filtered_camera_ids.append(camera_id)
+    
+    _camera_ids_cache = filtered_camera_ids
     
-    return camera_ids
+    return filtered_camera_ids
 
 
 def has_enabled_cameras():
@@ -292,6 +289,14 @@ def get_camera(camera_id, as_lines=False):
                 
         _set_default_motion_camera(camera_id, camera_config)
     
+    elif utils.remote_camera(camera_config):
+        pass
+    
+    else: # incomplete configuration
+        logging.warn('camera config file at %s is incomplete, ignoring' % camera_config_path)
+        
+        return None
+    
     _camera_config_cache[camera_id] = dict(camera_config)
     
     return camera_config
index d36f3d0bea5316219f1bd7073d10d7ea4392ba33..36a5928c0c7f65594eba4dd31d00583f9e6af673 100644 (file)
@@ -279,6 +279,7 @@ class ConfigHandler(BaseHandler):
             old_admin_credentials = old_main_config.get('@admin_username', '') + ':' + old_main_config.get('@admin_password', '')
             
             main_config = config.main_ui_to_dict(ui_config)
+            main_config.setdefault('thread', old_main_config.get('thread', [])) 
             admin_credentials = main_config.get('@admin_username', '') + ':' + main_config.get('@admin_password', '')
             
             wifi_changed = bool([k for k in ['@wifi_enabled', '@wifi_name', '@wifi_key'] if old_main_config.get(k) != main_config.get(k)])
@@ -457,7 +458,7 @@ class ConfigHandler(BaseHandler):
             
             utils.test_netcam_url(self.get_data(), on_response)
                 
-        else:  # assuming local v4l2 listing
+        else:  # assuming local listing
             cameras = []
             camera_ids = config.get_camera_ids()
             if not config.get_main().get('@enabled'):
@@ -499,6 +500,9 @@ class ConfigHandler(BaseHandler):
             
             for camera_id in camera_ids:
                 local_config = config.get_camera(camera_id)
+                if local_config is None:
+                    continue
+                
                 if utils.local_camera(local_config):
                     ui_config = config.camera_dict_to_ui(local_config)
                     cameras.append(ui_config)
index a85f8a4a912bac8acb06405a1ca88f740d2a5759..bf791f815c0ba7c716ab0dc93d59b053ed5df55a 100644 (file)
@@ -43,9 +43,9 @@ def _make_request(host, port, username, password, uri, method='GET', data=None,
 
 
 def make_camera_url(local_config, camera=True):
-    host = local_config.get('@host', local_config.get('host')) 
+    host = local_config.get('@host', local_config.get('host'))
     port = local_config.get('@port', local_config.get('port'))
-    username = local_config.get('@username', local_config.get('username'))
+    username = local_config.get('@username', local_config.get('username')) or ''
     uri = local_config.get('@uri', local_config.get('uri')) or ''
 
     url = 'motioneye://' + username + '@' + host