unifi-access-airbnb/config.py

39 lines
1.7 KiB
Python

import configparser
import logging
logger = logging.getLogger(__name__)
def load_config():
config = configparser.ConfigParser()
config.read('unifi.conf')
logger.debug("Loaded sections from unifi.conf: %s", config.sections())
if 'Door' not in config:
logger.error("'Door' section not found in unifi.conf")
elif 'default_group_id' not in config['Door']:
logger.error("'default_group_id' not found in 'Door' section of unifi.conf")
else:
logger.debug("Found default_group_id in config: %s", config['Door']['default_group_id'])
return {
'api_host': config['UniFi']['api_host'],
'api_token': config['UniFi']['api_token'],
'hostex_api_url': config['Hostex']['api_url'],
'hostex_api_key': config['Hostex']['api_key'],
'ics_url': config.get('Airbnb', 'ics_url', fallback=None),
'simplepush_enabled': config['Simplepush'].getboolean('enabled', fallback=False),
'simplepush_key': config['Simplepush'].get('key', fallback=None),
'simplepush_url': config['Simplepush'].get('url', fallback=None),
'default_door_group_id': config['Door'].get('default_group_id', ''),
'check_in_time': config['Visitor']['check_in_time'],
'check_out_time': config['Visitor']['check_out_time'],
'use_hostex': 'Hostex' in config and config['Hostex']['api_key'],
'use_ics': config.get('Airbnb', 'ics_url', fallback=None) is not None,
'log_file': config['General']['log_file'],
'pin_code_digits': int(config['General']['pin_code_digits'])
}
logger.debug("Loaded configuration: %s", {k: v for k, v in config.items() if k != 'api_token'})
return config