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 with self.app.no_save():
self._require_login()
#async with self.app.no_save():
self._require_login()
message = await self.services.channel_message.get(message_uid)
if not message:
return {
"error": "Message not found",
"success": False,
}
if message["is_final"]:
return {
"error": "Message is final",
"success": False,
}
if message["deleted_at"]:
return {
"error": "Message is deleted",
"success": False,
}
if message["user_uid"] != self.user_uid:
raise Exception("Not allowed")
message = await self.services.channel_message.get(message_uid)
if not message:
return {
"error": "Message not found",
"success": False,
}
if message["is_final"]:
return {
"error": "Message is final",
"success": False,
}
if message["deleted_at"]:
return {
"error": "Message is deleted",
"success": False,
}
if message["user_uid"] != self.user_uid:
raise Exception("Not allowed")
#if message.get_seconds_since_last_update() > 8:
# return {
# "error": "Message too old",
# "seconds_since_last_update": message.get_seconds_since_last_update(),
# "success": False,
# }
if message.get_seconds_since_last_update() > 8:
return {
"error": "Message too old",
"seconds_since_last_update": message.get_seconds_since_last_update(),
"success": False,
}
message["message"] = text
if not text:
message["deleted_at"] = now()
else:
message["deleted_at"] = None
await self.services.channel_message.save(message)
data = message.record
data["text"] = message["message"]
data["message_uid"] = message_uid
if not text:
message["deleted_at"] = now()
else:
message["deleted_at"] = None
await self.services.socket.broadcast(
message["channel_uid"],
{
"channel_uid": message["channel_uid"],
"event": "update_message_text",
"data": message.record,
},
)
message["message"] = text
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}