From 087b208b218aa729e341b99ba7fb4812d7ef9020 Mon Sep 17 00:00:00 2001 From: Yucheng Huo Date: Mon, 22 Apr 2024 03:31:10 -0400 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=E5=BE=AE=E4=BF=A1=E8=87=AA?= =?UTF-8?q?=E5=B8=A6=E8=A1=A8=E6=83=85=E5=8C=85=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/resources/data/template.html | 465 +---------------------------- app/util/exporter/exporter_html.py | 3 + app/util/replace_text.py | 448 +++++++++++++++++++++++++++ 3 files changed, 454 insertions(+), 462 deletions(-) create mode 100644 app/util/replace_text.py diff --git a/app/resources/data/template.html b/app/resources/data/template.html index 608178f..fbaf8ed 100644 --- a/app/resources/data/template.html +++ b/app/resources/data/template.html @@ -900,465 +900,6 @@ function renderPage(page) { const startIndex = (page - 1) * itemsPerPage; const endIndex = startIndex + itemsPerPage; - // 工具类函数 - function replaceEmoji(text) { - - // 定义替换规则,可以根据需要添加更多规则 - var replacementRules = [ - { - pattern: /\[微笑\]/g, - replacement: '' - }, - { - pattern: /\[发呆\]/g, - replacement: '' - }, - { - pattern: /\[撇嘴\]/g, - replacement: '' - }, - { - pattern: /\[色\]/g, - replacement: '' - }, - { - pattern: /\[发呆\]/g, - replacement: '' - }, - { - pattern: /\[得意\]/g, - replacement: '' - }, - { - pattern: /\[流泪\]/g, - replacement: '' - }, - { - pattern: /\[害羞\]/g, - replacement: '' - }, - { - pattern: /\[闭嘴\]/g, - replacement: '' - }, - { - pattern: /\[睡\]/g, - replacement: '' - }, - { - pattern: /\[大哭\]/g, - replacement: '' - }, - { - pattern: /\[尴尬\]/g, - replacement: '' - }, - { - pattern: /\[发怒\]/g, - replacement: '' - }, - { - pattern: /\[调皮\]/g, - replacement: '' - }, - { - pattern: /\[呲牙\]/g, - replacement: '' - }, - { - pattern: /\[惊讶\]/g, - replacement: '' - }, - { - pattern: /\[难过\]/g, - replacement: '' - }, - { - pattern: /\[抓狂\]/g, - replacement: '' - }, - { - pattern: /\[吐\]/g, - replacement: '' - }, - { - pattern: /\[偷笑\]/g, - replacement: '' - }, - { - pattern: /\[愉快\]/g, - replacement: '' - }, - { - pattern: /\[白眼\]/g, - replacement: '' - }, - { - pattern: /\[傲慢\]/g, - replacement: '' - }, - { - pattern: /\[困\]/g, - replacement: '' - }, - { - pattern: /\[惊恐\]/g, - replacement: '' - }, - { - pattern: /\[憨笑\]/g, - replacement: '' - }, - { - pattern: /\[悠闲\]/g, - replacement: '' - }, - { - pattern: /\[咒骂\]/g, - replacement: '' - }, - { - pattern: /\[疑问\]/g, - replacement: '' - }, - { - pattern: /\[嘘\]/g, - replacement: '' - }, - { - pattern: /\[晕\]/g, - replacement: '' - }, - { - pattern: /\[衰\]/g, - replacement: '' - }, - { - pattern: /\[骷髅\]/g, - replacement: '' - }, - { - pattern: /\[敲打\]/g, - replacement: '' - }, - { - pattern: /\[再见\]/g, - replacement: '' - }, - { - pattern: /\[擦汗\]/g, - replacement: '' - }, - { - pattern: /\[抠鼻\]/g, - replacement: '' - }, - { - pattern: /\[鼓掌\]/g, - replacement: '' - }, - { - pattern: /\[坏笑\]/g, - replacement: '' - }, - { - pattern: /\[右哼哼\]/g, - replacement: '' - }, - { - pattern: /\[鄙视\]/g, - replacement: '' - }, - { - pattern: /\[委屈\]/g, - replacement: '' - }, - { - pattern: /\[快哭了\]/g, - replacement: '' - }, - { - pattern: /\[阴险\]/g, - replacement: '' - }, - { - pattern: /\[亲亲\]/g, - replacement: '' - }, - { - pattern: /\[可怜\]/g, - replacement: '' - }, - { - pattern: /\[Whimper\]/g, - replacement: '' - }, - { - pattern: /\[笑脸\]/g, - replacement: '' - }, - { - pattern: /\[生病\]/g, - replacement: '' - }, - { - pattern: /\[脸红\]/g, - replacement: '' - }, - { - pattern: /\[破涕为笑\]/g, - replacement: '' - }, - { - pattern: /\[恐惧\]/g, - replacement: '' - }, - { - pattern: /\[失望\]/g, - replacement: '' - }, - { - pattern: /\[无语\]/g, - replacement: '' - }, - { - pattern: /\[嘿哈\]/g, - replacement: '' - }, - { - pattern: /\[捂脸\]/g, - replacement: '' - }, - { - pattern: /\[奸笑\]/g, - replacement: '' - }, - { - pattern: /\[机智\]/g, - replacement: '' - }, - { - pattern: /\[皱眉\]/g, - replacement: '' - }, - { - pattern: /\[耶\]/g, - replacement: '' - }, - { - pattern: /\[吃瓜\]/g, - replacement: '' - }, - { - pattern: /\[加油\]/g, - replacement: '' - }, - { - pattern: /\[汗\]/g, - replacement: '' - }, - { - pattern: /\[天啊\]/g, - replacement: '' - }, - { - pattern: /\[Emm\]/g, - replacement: '' - }, - { - pattern: /\[社会社会\]/g, - replacement: '' - }, - { - pattern: /\[旺柴\]/g, - replacement: '' - }, - { - pattern: /\[好的\]/g, - replacement: '' - }, - { - pattern: /\[打脸\]/g, - replacement: '' - }, - { - pattern: /\[哇\]/g, - replacement: '' - }, - { - pattern: /\[翻白眼\]/g, - replacement: '' - }, - { - pattern: /\[666\]/g, - replacement: '' - }, - { - pattern: /\[让我看看\]/g, - replacement: '' - }, - { - pattern: /\[叹气\]/g, - replacement: '' - }, - { - pattern: /\[苦涩\]/g, - replacement: '' - }, - { - pattern: /\[難受\]/g, - replacement: '' - }, - { - pattern: /\[裂开\]/g, - replacement: '' - }, - { - pattern: /\[嘴唇\]/g, - replacement: '' - }, - { - pattern: /\[爱心\]/g, - replacement: '' - }, - { - pattern: /\[心碎\]/g, - replacement: '' - }, - { - pattern: /\[拥抱\]/g, - replacement: '' - }, - { - pattern: /\[强\]/g, - replacement: '' - }, - { - pattern: /\[弱\]/g, - replacement: '' - }, - { - pattern: /\[握手\]/g, - replacement: '' - }, - { - pattern: /\[胜利\]/g, - replacement: '' - }, - { - pattern: /\[抱拳\]/g, - replacement: '' - }, - { - pattern: /\[勾引\]/g, - replacement: '' - }, - { - pattern: /\[拳头\]/g, - replacement: '' - }, - { - pattern: /\[OK\]/g, - replacement: '' - }, - { - pattern: /\[合十\]/g, - replacement: '' - }, - { - pattern: /\[啤酒\]/g, - replacement: '' - }, - { - pattern: /\[咖啡]\]/g, - replacement: '' - }, - { - pattern: /\[蛋糕\]/g, - replacement: '' - }, - { - pattern: /\[玫瑰\]/g, - replacement: '' - }, - { - pattern: /\[凋谢\]/g, - replacement: '' - }, - { - pattern: /\[菜刀\]/g, - replacement: '' - }, - { - pattern: /\[炸弹\]/g, - replacement: '' - }, - { - pattern: /\[便便\]/g, - replacement: '' - }, - { - pattern: /\[月亮\]/g, - replacement: '' - }, - { - pattern: /\[太阳\]/g, - replacement: '' - }, - { - pattern: /\[庆 祝\]/g, - replacement: '' - }, - { - pattern: /\[礼物\]/g, - replacement: '' - }, - { - pattern: /\[红包\]/g, - replacement: '' - }, - { - pattern: /\[發\]/g, - replacement: '' - }, - { - pattern: /\[福\]/g, - replacement: '' - }, - { - pattern: /\[烟花\]/g, - replacement: '' - }, - { - pattern: /\[爆竹\]/g, - replacement: '' - }, - { - pattern: /\[猪头\]/g, - replacement: '' - }, - { - pattern: /\[跳跳\]/g, - replacement: '' - }, - { - pattern: /\[发抖\]/g, - replacement: '' - }, - { - pattern: /\[转圈\]/g, - replacement: '' - } - ]; - - // 循环遍历替换规则 - for (var i = 0; i < replacementRules.length; i++) { - var rule = replacementRules[i]; - text = text.replace(rule.pattern, rule.replacement); - } - return text; - } - function timestampToTime(timestamp) { let date = new Date(timestamp * 1000); let year = date.getFullYear() + '-'; @@ -1385,7 +926,7 @@ function renderPage(page) { function messageBubble(message, side) { const messageBubbleTag = document.createElement('div'); messageBubbleTag.className = `bubble bubble-${side}`; - messageBubbleTag.innerHTML = replaceEmoji(message.text); + messageBubbleTag.innerHTML = message.text; return messageBubbleTag; } @@ -1420,7 +961,7 @@ function renderPage(page) { function messageElementReferText(message, side) { const messageElementRefer = document.createElement('div'); messageElementRefer.className = `chat-refer chat-refer-${side}`; - messageElementRefer.innerHTML = replaceEmoji(message.refer_text); + messageElementRefer.innerHTML = message.refer_text; return messageElementRefer; } @@ -1570,7 +1111,7 @@ function renderPage(page) { messageElement.appendChild(message.is_send ? avatarTag : messageContent); } else if (message.type == 0) { messageElement.className = "item item-center"; - messageElement.innerHTML = `${replaceEmoji(message.text)}`; + messageElement.innerHTML = `${message.text}`; } else if (message.type == 3) { // displayname 和 img messageContent.className = `content-wrapper content-wrapper-${side}`; diff --git a/app/util/exporter/exporter_html.py b/app/util/exporter/exporter_html.py index 46eec18..ae11110 100644 --- a/app/util/exporter/exporter_html.py +++ b/app/util/exporter/exporter_html.py @@ -16,6 +16,7 @@ from app.util.compress_content import parser_reply, share_card, music_share, fil from app.util.emoji import get_emoji_url from app.util.image import get_image_path, get_image from app.util.music import get_music_path +from app.util.replace_text import replace_text icon_files = { './icon/word.png': ['doc', 'docx'], @@ -40,6 +41,7 @@ class HtmlExporter(ExporterBase): display_name = self.get_display_name(is_send, message) avatar = self.get_avatar_path(is_send, message) str_content = escape_js_and_html(str_content) + str_content = replace_text(str_content) doc.write( f'''{{ type:{1}, text: '{str_content}',is_send:{is_send},avatar_path:'{avatar}',timestamp:{timestamp},is_chatroom:{is_chatroom},displayname:'{display_name}'}},''' ) @@ -144,6 +146,7 @@ class HtmlExporter(ExporterBase): contentText = escape_js_and_html(content.get('title')) if refer_msg: referText = f"{escape_js_and_html(refer_msg.get('displayname'))}:{escape_js_and_html(refer_msg.get('content'))}" + referText = replace_text(referText) doc.write( f'''{{ type:49, text: '{contentText}',is_send:{is_send},sub_type:{content.get('type')},refer_text: '{referText}',avatar_path:'{avatar}',timestamp:{timestamp},is_chatroom:{is_chatroom},displayname:'{display_name}'}},''' ) diff --git a/app/util/replace_text.py b/app/util/replace_text.py new file mode 100644 index 0000000..f502620 --- /dev/null +++ b/app/util/replace_text.py @@ -0,0 +1,448 @@ +def replace_text(text): + for pattern, replacement in rules.items(): + text = text.replace(pattern, replacement) + return text + + +rules = { + + '[微笑]': + '' + , + + '[撇嘴]': + '' + , + + '[色]': + '' + , + + '[发呆]': + '' + , + + '[得意]': + '' + , + + '[流泪]': + '' + , + + '[害羞]': + '' + , + + '[闭嘴]': + '' + , + + '[睡]': + '' + , + + '[大哭]': + '' + , + + '[尴尬]': + '' + , + + '[发怒]': + '' + , + + '[调皮]': + '' + , + + '[呲牙]': + '' + , + + '[惊讶]': + '' + , + + '[难过]': + '' + , + + '[抓狂]': + '' + , + + '[吐]': + '' + , + + '[偷笑]': + '' + , + + '[愉快]': + '' + , + + '[白眼]': + '' + , + + '[傲慢]': + '' + , + + '[困]': + '' + , + + '[惊恐]': + '' + , + + '[憨笑]': + '' + , + + '[悠闲]': + '' + , + + '[咒骂]': + '' + , + + '[疑问]': + '' + , + + '[嘘]': + '' + , + + '[晕]': + '' + , + + '[衰]': + '' + , + + '[骷髅]': + '' + , + + '[敲打]': + '' + , + + '[再见]': + '' + , + + '[擦汗]': + '' + , + + '[抠鼻]': + '' + , + + '[鼓掌]': + '' + , + + '[坏笑]': + '' + , + + '[右哼哼]': + '' + , + + '[鄙视]': + '' + , + + '[委屈]': + '' + , + + '[快哭了]': + '' + , + + '[阴险]': + '' + , + + '[亲亲]': + '' + , + + '[可怜]': + '' + , + + '[Whimper]': + '' + , + + '[笑脸]': + '' + , + + '[生病]': + '' + , + + '[脸红]': + '' + , + + '[破涕为笑]': + '' + , + + '[恐惧]': + '' + , + + '[失望]': + '' + , + + '[无语]': + '' + , + + '[嘿哈]': + '' + , + + '[捂脸]': + '' + , + + '[奸笑]': + '' + , + + '[机智]': + '' + , + + '[皱眉]': + '' + , + + '[耶]': + '' + , + + '[吃瓜]': + '' + , + + '[加油]': + '' + , + + '[汗]': + '' + , + + '[天啊]': + '' + , + + '[Emm]': + '' + , + + '[社会社会]': + '' + , + + '[旺柴]': + '' + , + + '[好的]': + '' + , + + '[打脸]': + '' + , + + '[哇]': + '' + , + + '[翻白眼]': + '' + , + + '[666]': + '' + , + + '[让我看看]': + '' + , + + '[叹气]': + '' + , + + '[苦涩]': + '' + , + + '[難受]': + '' + , + + '[裂开]': + '' + , + + '[嘴唇]': + '' + , + + '[爱心]': + '' + , + + '[心碎]': + '' + , + + '[拥抱]': + '' + , + + '[强]': + '' + , + + '[弱]': + '' + , + + '[握手]': + '' + , + + '[胜利]': + '' + , + + '[抱拳]': + '' + , + + '[勾引]': + '' + , + + '[拳头]': + '' + , + + '[OK]': + '' + , + + '[合十]': + '' + , + + '[啤酒]': + '' + , + + '[咖啡]]': + '' + , + + '[蛋糕]': + '' + , + + '[玫瑰]': + '' + , + + '[凋谢]': + '' + , + + '[菜刀]': + '' + , + + '[炸弹]': + '' + , + + '[便便]': + '' + , + + '[月亮]': + '' + , + + '[太阳]': + '' + , + + '[庆祝]': + '' + , + + '[礼物]': + '' + , + + '[红包]': + '' + , + + '[發]': + '' + , + + '[福]': + '' + , + + '[烟花]': + '' + , + + '[爆竹]': + '' + , + + '[猪头]': + '' + , + + '[跳跳]': + '' + , + + '[发抖]': + '' + , + + '[转圈]': + '' + +}