# 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})
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():
_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
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)])
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'):
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)
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