diff --git a/chatmastermind/chat.py b/chatmastermind/chat.py index 06895ac..17e5c38 100644 --- a/chatmastermind/chat.py +++ b/chatmastermind/chat.py @@ -107,7 +107,9 @@ def clear_dir(dir_path: Path, """ file_iter = dir_path.glob(glob) if glob else dir_path.iterdir() for file_path in file_iter: - if file_path.is_file() and file_path.suffix in Message.file_suffixes: + if (file_path.is_file() + and file_path.name not in ignored_files # noqa: W503 + and file_path.suffix in Message.file_suffixes): # noqa: W503 file_path.unlink(missing_ok=True) @@ -494,13 +496,13 @@ class ChatDB(Chat): else: return len(self.msg_find([message], loc='db')) > 0 - def cache_read(self) -> None: + def cache_read(self, glob: Optional[str] = None, mfilter: Optional[MessageFilter] = None) -> None: """ Read messages from the cache directory. New ones are added to the internal list, existing ones are replaced. A message is determined as 'existing' if a message with the same base filename (i. e. 'file_path.name') is already in the list. """ - new_messages = read_dir(self.cache_path, self.glob, self.mfilter) + new_messages = read_dir(self.cache_path, glob, mfilter) # remove all messages from self.messages that are in the new list self.messages = [m for m in self.messages if not message_in(m, new_messages)] # copy the messages from the temporary list to self.messages and sort them @@ -537,11 +539,11 @@ class ChatDB(Chat): self.messages += messages self.msg_sort() - def cache_clear(self) -> None: + def cache_clear(self, glob: Optional[str] = None) -> None: """ Delete all message files from the cache dir and remove them from the internal list. """ - clear_dir(self.cache_path, self.glob) + clear_dir(self.cache_path, glob) # only keep messages from DB dir (or those that have not yet been written) self.messages = [m for m in self.messages if not m.file_path or m.file_path.parent.samefile(self.db_path)] @@ -561,7 +563,7 @@ class ChatDB(Chat): # (re)add it to the internal list self.msg_add([message]) - def db_read(self) -> None: + def db_read(self, glob: Optional[str] = None, mfilter: Optional[MessageFilter] = None) -> None: """ Read messages from the DB directory. New ones are added to the internal list, existing ones are replaced. A message is determined as 'existing' if a message