From 1228c009a1688f9aee6d46bfe0e5801353c1d153 Mon Sep 17 00:00:00 2001 From: Eduardo Suarez-Santana Date: Fri, 12 Jun 2026 13:46:02 +0100 Subject: [PATCH] Handle notmuch mail_root --- afew/Database.py | 14 ++++++++++++++ afew/filters/FolderNameFilter.py | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/afew/Database.py b/afew/Database.py index 208ed2b..b3aa2c7 100644 --- a/afew/Database.py +++ b/afew/Database.py @@ -17,6 +17,7 @@ class Database: def __init__(self): self.db_path = self._calculate_db_path() + self.mail_root = self._calculate_mail_root() self.handle = None def _calculate_db_path(self): @@ -34,6 +35,19 @@ def _calculate_db_path(self): return db_path + def _calculate_mail_root(self): + """ + Calculates the mail root directory. This is the directory that contains + the maildir directories. It is used to determine the relative path of + messages for notmuch. + """ + mail_root = notmuch_settings.get('database', 'mail_root', fallback=None) + + if mail_root is None: + mail_root = self.db_path + + return mail_root + def __enter__(self): """ Implements the context manager protocol. diff --git a/afew/filters/FolderNameFilter.py b/afew/filters/FolderNameFilter.py index 6b2a535..f10c4dd 100644 --- a/afew/filters/FolderNameFilter.py +++ b/afew/filters/FolderNameFilter.py @@ -14,7 +14,7 @@ def __init__(self, database, folder_blacklist='', folder_transforms='', super().__init__(database) self.__filename_pattern = '{mail_root}/(?P.*)/(cur|new)/[^/]+'.format( - mail_root=database.db_path.rstrip('/')) + mail_root=database.mail_root.rstrip('/')) self.__folder_explicit_list = set(shlex.split(folder_explicit_list)) self.__folder_blacklist = set(shlex.split(folder_blacklist)) self.__folder_transforms = self.__parse_transforms(folder_transforms)