Commit da1b002

benny-dou <60535774+benny-dou@users.noreply.github.com>
2025-02-22 07:44:26
fix(db): correct `reply_msg_id` in `copy_messages_from_db`
1 parent 82aa5de
Changed files (1)
src
messages
src/messages/database.py
@@ -13,6 +13,7 @@ from config import DB
 from database import del_db, get_db, set_db
 from messages.progress import modify_progress
 from messages.utils import sender_markdown_to_html
+from utils import to_int
 
 
 async def save_messages(messages: list[Message | None], key: str, metadata: dict | None = None) -> bool:
@@ -106,7 +107,14 @@ async def copy_messages_from_db(client: Client, message: Message, key: str, kv:
     if kwargs:
         logger.debug(f"kwargs: {kwargs}")
     target_chat = kwargs["target_chat"] if kwargs.get("target_chat") else message.chat.id
-    reply_parameters = ReplyParameters(message_id=kwargs.get("reply_msg_id", message.id))
+    reply_msg_id = kwargs.get("reply_msg_id", message.id)
+    if to_int(reply_msg_id) == 0:
+        target_mid = message.id
+    elif to_int(reply_msg_id) == -1:
+        target_mid = None
+    else:
+        target_mid = to_int(reply_msg_id)
+    reply_parameters = ReplyParameters(message_id=target_mid)  # type: ignore
 
     if kv is None:
         kv = await get_db(key)