chat: added 'update_messages()' function and test

This commit is contained in:
2023-09-10 07:39:00 +02:00
parent 53582a7123
commit 1e3bfdd67f
2 changed files with 44 additions and 0 deletions
+16
View File
@@ -386,3 +386,19 @@ class ChatDB(Chat):
msgs = iter(messages if messages else self.messages)
while (m := next(msgs, None)):
m.to_file()
def update_messages(self, messages: list[Message], write: bool = True) -> None:
"""
Update existing messages. A message is determined as 'existing' if a message with
the same base filename (i. e. 'file_path.name') is already in the list. Only accepts
existing messages.
"""
if any(not message_in(m, self.messages) for m in messages):
raise ChatError("Can't update messages that are not in the internal list")
# remove old versions and add new ones
self.messages = [m for m in self.messages if not message_in(m, messages)]
self.messages += messages
self.sort()
# write the UPDATED messages if requested
if write:
self.write_messages(messages)