diff --git a/AI.py b/AI.py index 7240f08d..61d67090 100644 --- a/AI.py +++ b/AI.py @@ -1,7 +1,7 @@ import re import json import threading -from md2tgmd import escape +from md2tgmd import escape, bingescape from runasync import run_async from config import API, NICK, COOKIES from revChatGPT.V3 import Chatbot as GPT @@ -57,9 +57,9 @@ async def getBing(self, message, update, context): text = result result = f"🤖️ Bing\n\n" + result modifytime = modifytime + 1 - if modifytime % 10 == 0 and lastresult != result: - await context.bot.edit_message_text(chat_id=update.message.chat_id, message_id=messageid, text=escape(result), parse_mode='MarkdownV2') - lastresult = result + if modifytime % 12 == 0 and lastresult != tmpresult: + await context.bot.edit_message_text(chat_id=update.message.chat_id, message_id=messageid, text=bingescape(tmpresult), parse_mode='MarkdownV2') + lastresult = tmpresult result = result[1] numMessages = result["item"]["throttling"]["numUserMessagesInConversation"] @@ -73,7 +73,7 @@ async def getBing(self, message, update, context): learnmoretext = "" result = f"🤖️ Bing {numMessages} / {maxNumMessages} \n\n" + message + "\n\n" + learnmoretext if lastresult != result: - await context.bot.edit_message_text(chat_id=update.message.chat_id, message_id=messageid, text=escape(result), parse_mode='MarkdownV2', disable_web_page_preview=True) + await context.bot.edit_message_text(chat_id=update.message.chat_id, message_id=messageid, text=bingescape(result), parse_mode='MarkdownV2', disable_web_page_preview=True) # # 整段 creative balanced precise # result = await self.Bingbot.ask(prompt=prompt + message, conversation_style=ConversationStyle.creative) diff --git a/md2tgmd.py b/md2tgmd.py index bb580093..475e8691 100644 --- a/md2tgmd.py +++ b/md2tgmd.py @@ -27,7 +27,39 @@ def escape(text): # In all other places characters # _ * [ ] ( ) ~ ` > # + - = | { } . ! # must be escaped with the preceding character '\'. - text = re.sub(r"\\n", r"\\\\n", text) + # text = re.sub(r"\\n", r"\\\\n", text) + text = re.sub(r"\\", r"\\\\", text) + text = re.sub(r"_", '\_', text) + text = re.sub(r"\*{2}(.*?)\*{2}", '@@@\\1@@@', text) + text = re.sub(r"\n\*\s", '\n\n• ', text) + text = re.sub(r"\*", '\*', text) + text = re.sub(r"\@{3}(.*?)\@{3}", '*\\1*', text) + text = re.sub(r"\!?\[(.*?)\]\((.*?)\)", '@@@\\1@@@^^^\\2^^^', text) + text = re.sub(r"\[", '\[', text) + text = re.sub(r"\]", '\]', text) + text = re.sub(r"\(", '\(', text) + text = re.sub(r"\)", '\)', text) + text = re.sub(r"\@{3}(.*?)\@{3}\^{3}(.*?)\^{3}", '[\\1](\\2)', text) + text = re.sub(r"~", '\~', text) + text = re.sub(r">", '\>', text) + text = escapeshape(text) + text = re.sub(r"#", '\#', text) + text = re.sub(r"`(.*?)\+(.*?)`", '`\\1@@@\\2`', text) + text = re.sub(r"\+", '\+', text) + text = re.sub(r"\@{3}", '+', text) + text = re.sub(r"\n(\s*)-\s", '\n\n\\1• ', text) + text = re.sub(r"`(.*?)-(.*?)`", '`\\1@@@\\2`', text) + text = re.sub(r"\-", '\-', text) + text = re.sub(r"\@{3}", '-', text) + text = re.sub(r"=", '\=', text) + text = re.sub(r"\|", '\|', text) + text = re.sub(r"{", '\{', text) + text = re.sub(r"}", '\}', text) + text = re.sub(r"\.", '\.', text) + text = re.sub(r"!", '\!', text) + return text + +def bingescape(text): text = re.sub(r"_", '\_', text) text = re.sub(r"\*{2}(.*?)\*{2}", '@@@\\1@@@', text) text = re.sub(r"\n\*\s", '\n\n• ', text)