This commit is contained in:
retoor 2025-06-25 21:38:26 +02:00
parent db3b5a77bc
commit 9e237a1d98

View File

@ -374,56 +374,58 @@ class RPCView(BaseView):
async def update_message_text(self, message_uid, text): async def update_message_text(self, message_uid, text):
async with self.app.no_save(): #async with self.app.no_save():
self._require_login() self._require_login()
message = await self.services.channel_message.get(message_uid) message = await self.services.channel_message.get(message_uid)
if not message: if not message:
return { return {
"error": "Message not found", "error": "Message not found",
"success": False, "success": False,
} }
if message["is_final"]: if message["is_final"]:
return { return {
"error": "Message is final", "error": "Message is final",
"success": False, "success": False,
} }
if message["deleted_at"]: if message["deleted_at"]:
return { return {
"error": "Message is deleted", "error": "Message is deleted",
"success": False, "success": False,
} }
if message["user_uid"] != self.user_uid: if message["user_uid"] != self.user_uid:
raise Exception("Not allowed") raise Exception("Not allowed")
#if message.get_seconds_since_last_update() > 8: if message.get_seconds_since_last_update() > 8:
# return { return {
# "error": "Message too old", "error": "Message too old",
# "seconds_since_last_update": message.get_seconds_since_last_update(), "seconds_since_last_update": message.get_seconds_since_last_update(),
# "success": False, "success": False,
# } }
message["message"] = text
if not text:
message["deleted_at"] = now()
else:
message["deleted_at"] = None
await self.services.channel_message.save(message) if not text:
data = message.record message["deleted_at"] = now()
data["text"] = message["message"] else:
data["message_uid"] = message_uid message["deleted_at"] = None
await self.services.socket.broadcast( message["message"] = text
message["channel_uid"],
{
"channel_uid": message["channel_uid"],
"event": "update_message_text",
"data": message.record,
},
)
return {"success": True} await self.services.channel_message.save(message)
data = message.record
data["text"] = message["message"]
data["message_uid"] = message_uid
await self.services.socket.broadcast(
message["channel_uid"],
{
"channel_uid": message["channel_uid"],
"event": "update_message_text",
"data": message.record,
},
)
return {"success": True}