diff --git a/xdgprefs/core/associations_database.py b/xdgprefs/core/associations_database.py index 437ba4b..6d60a7f 100644 --- a/xdgprefs/core/associations_database.py +++ b/xdgprefs/core/associations_database.py @@ -21,6 +21,7 @@ ADDED = 'Added Applications' REMOVED = 'Removed Applications' DEFAULT = 'Default Applications' +CACHE = 'MIME Cache' class Associations(object): @@ -118,7 +119,8 @@ def before_write(self, parser, section, option, value): def parse_mimeapps(file_path): config = configparser.ConfigParser(delimiters='=', - interpolation=ArrayInterpolation()) + interpolation=ArrayInterpolation(), + strict=False) try: config.read(file_path) for section in [ADDED, REMOVED, DEFAULT]: @@ -154,19 +156,22 @@ def _parse_mimeapps_file(self, path): if config is None: self.logger.warning(f'Badly formatted file: {path}') return - section = config['Added Applications'] + section = config[ADDED] for mimetype, apps in section.items(): self.associations[mimetype].extend_added(apps) - section = config['Removed Applications'] + section = config[REMOVED] for mimetype, apps in section.items(): self.associations[mimetype].extend_removed(apps) - section = config['Default Applications'] + section = config[DEFAULT] for mimetype, apps in section.items(): self.associations[mimetype].extend_default(apps) def _parse_cache_file(self, path): config = parse_mimeapps(path) - for mimetype, apps in config['MIME Cache'].items(): + if config is None: + self.logger.warning(f'Badly formatted file: {path}') + return + for mimetype, apps in config[CACHE].items(): assoc = self.associations[mimetype] assoc.extend_default(apps)