From: Calin Crisan Date: Sat, 23 Aug 2014 17:03:12 +0000 (+0300) Subject: fixed main config forgetting threads X-Git-Url: http://www.vanbest.org/gitweb/?a=commitdiff_plain;h=bd7b7de526956cdd0d8e50ad8e336717696fd015;p=motioneye-debian fixed main config forgetting threads --- diff --git a/src/config.py b/src/config.py index 32b9aa0..9b4f24a 100644 --- a/src/config.py +++ b/src/config.py @@ -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 diff --git a/src/handlers.py b/src/handlers.py index d36f3d0..36a5928 100644 --- a/src/handlers.py +++ b/src/handlers.py @@ -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) diff --git a/src/remote.py b/src/remote.py index a85f8a4..bf791f8 100644 --- a/src/remote.py +++ b/src/remote.py @@ -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