message edit/update functionality

This commit is contained in:
Shivering Ocelot committed 2025-07-05 10:44:14 -05:00
1 parent cdba31e9f7
commit cba41f1e7e
6 files changed
+122 -32

No files matched your search

+31
View File
@@ -91,6 +91,7 @@ class ChatMixin:
message = db.Message()
message.chat_id = chat_id
message.time = int(datetime.now().timestamp())
message.last_edit = message.time
message.sender = sender
message.kind = 'text' # default kind
message.content = content
@@ -120,6 +121,36 @@ class ChatMixin:
'content': message.content,
}
# Updates a single chat message.
# Most fields are optional. If they're not passed a value, they wont be updated.
# When kind is set, subkind is always set too.
def update_chat_message(self, message_id, content=None, kind=None, subkind=None, format=None):
with self.sql_session() as session:
message = session.execute(
select(db.Message).where(db.Message.id == message_id)
).scalars().first()
if not message:
raise Exception(f"Message not found with id {message_id}")
summary = []
if content != None:
message.content = content
summary.append('content')
if kind != None:
message.kind = kind
message.subkind = subkind
summary.append('kind')
summary.append('subkind')
if format != None:
message.format = format
summary.append('format')
#message.last_edit = int(datetime.now().timestamp())
session.commit()
print(f"Updated message #{message.id} fields: {summary}")
def get_chat_view(self, chat_id):
return ChatView(self, chat_id)