From eed226b04cfbc08aab6648f8dcc59f9d5c66b923 Mon Sep 17 00:00:00 2001
From: shuaikangzhou <863909694@qq.com>
Date: Wed, 6 Dec 2023 20:50:32 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=81=8A=E5=A4=A9=E8=AE=B0?=
=?UTF-8?q?=E5=BD=95=E6=96=87=E4=BB=B6=E7=9A=84=E5=AD=98=E5=82=A8=E7=BB=93?=
=?UTF-8?q?=E6=9E=84=20#81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/DataBase/output_pc.py | 128 ++++++++++++++++++++++++++++++++++++--
app/util/path.py | 17 +++--
readme.md | 3 +-
requirements_pc.txt | 1 +
4 files changed, 138 insertions(+), 11 deletions(-)
diff --git a/app/DataBase/output_pc.py b/app/DataBase/output_pc.py
index 36c0756..77f0adf 100644
--- a/app/DataBase/output_pc.py
+++ b/app/DataBase/output_pc.py
@@ -8,11 +8,20 @@ from . import msg_db
from .package_msg import PackageMsg
from ..DataBase import hard_link_db
from ..person_pc import MePC
-from ..util import get_abs_path
+from ..util import path
os.makedirs('./data/聊天记录', exist_ok=True)
+def makedirs(path):
+ os.makedirs(path,exist_ok=True)
+ os.makedirs(os.path.join(path, 'image'), exist_ok=True)
+ os.makedirs(os.path.join(path, 'emoji'), exist_ok=True)
+ os.makedirs(os.path.join(path, 'video'), exist_ok=True)
+ os.makedirs(os.path.join(path, 'voice'), exist_ok=True)
+ os.makedirs(os.path.join(path, 'file'), exist_ok=True)
+
+
def escape_js_and_html(input_str):
# 转义HTML特殊字符
html_escaped = html.escape(input_str, quote=False)
@@ -439,7 +448,7 @@ class ChildThread(QThread):
def to_html_(self):
origin_docx_path = f"{os.path.abspath('.')}/data/聊天记录/{self.contact.remark}"
- os.makedirs(origin_docx_path, exist_ok=True)
+ makedirs(origin_docx_path)
messages = msg_db.get_messages(self.contact.wxid)
filename = f"{os.path.abspath('.')}/data/聊天记录/{self.contact.remark}/{self.contact.remark}.html"
f = open(filename, 'w', encoding='utf-8')
@@ -735,7 +744,115 @@ const chatMessages = [
MePC().avatar.save(os.path.join(origin_docx_path, 'myhead.png'))
self.contact.avatar.save(os.path.join(origin_docx_path, 'tahead.png'))
self.rangeSignal.emit(len(messages))
- emoji = {'[微笑]': '
', '[撇嘴]': '
', '[色]': '
', '[发呆]': '
', '[得意]': '
', '[流泪]': '
', '[害羞]': '
', '[闭嘴]': '
', '[睡]': '
', '[大哭]': '
', '[尴尬]': '
', '[发怒]': '
', '[调皮]': '
', '[呲牙]': '
', '[惊讶]': '
', '[难过]': '
', '[抓狂]': '
', '[吐]': '
', '[偷笑]': '
', '[愉快]': '
', '[白眼]': '
', '[傲慢]': '
', '[困]': '
', '[惊恐]': '
', '[憨笑]': '
', '[悠闲]': '
', '[咒骂]': '
', '[疑问]': '
', '[嘘]': '
', '[晕]': '
', '[衰]': '
', '[骷髅]': '
', '[敲打]': '
', '[再见]': '
', '[擦汗]': '
', '[抠鼻]': '
', '[鼓掌]': '
', '[坏笑]': '
', '[右哼哼]': '
', '[鄙视]': '
', '[委屈]': '
', '[快哭了]': '
', '[阴险]': '
', '[亲亲]': '
', '[可怜]': '
', '[笑脸]': '
', '[生病]': '
', '[脸红]': '
', '[破涕为笑]': '
', '[恐惧]': '
', '[失望]': '
', '[无语]': '
', '[嘿哈]': '
', '[捂脸]': '
', '[奸笑]': '
', '[机智]': '
', '[皱眉]': '
', '[耶]': '
', '[吃瓜]': '
', '[加油]': '
', '[汗]': '
', '[天啊]': '
', '[Emm]': '
', '[社会社会]': '
', '[旺柴]': '
', '[好的]': '
', '[打脸]': '
', '[哇]': '
', '[翻白眼]': '
', '[666]': '
', '[让我看看]': '
', '[叹气]': '
', '[苦涩]': '
', '[裂开]': '
', '[嘴唇]': '
', '[爱心]': '
', '[心碎]': '
', '[拥抱]': '
', '[强]': '
', '[弱]': '
', '[握手]': '
', '[胜利]': '
', '[抱拳]': '
', '[勾引]': '
', '[拳头]': '
', '[OK]': '
', '[合十]': '
', '[啤酒]': '
', '[咖啡]': '
', '[蛋糕]': '
', '[玫瑰]': '
', '[凋谢]': '
', '[菜刀]': '
', '[炸弹]': '
', '[便便]': '
', '[月亮]': '
', '[太阳]': '
', '[庆 祝]': '
', '[礼物]': '
', '[红包]': '
', '[發]': '
', '[福]': '
', '[烟花]': '
', '[爆竹]': '
', '[猪头]': '
', '[跳跳]': '
', '[发抖]': '
', '[转圈]': '
'}
+ emoji = {
+ '[微笑]': '
',
+ '[撇嘴]': '
',
+ '[色]': '
',
+ '[发呆]': '
',
+ '[得意]': '
',
+ '[流泪]': '
',
+ '[害羞]': '
',
+ '[闭嘴]': '
',
+ '[睡]': '
',
+ '[大哭]': '
',
+ '[尴尬]': '
',
+ '[发怒]': '
',
+ '[调皮]': '
',
+ '[呲牙]': '
',
+ '[惊讶]': '
',
+ '[难过]': '
',
+ '[抓狂]': '
',
+ '[吐]': '
',
+ '[偷笑]': '
',
+ '[愉快]': '
',
+ '[白眼]': '
',
+ '[傲慢]': '
',
+ '[困]': '
',
+ '[惊恐]': '
',
+ '[憨笑]': '
',
+ '[悠闲]': '
',
+ '[咒骂]': '
',
+ '[疑问]': '
',
+ '[嘘]': '
',
+ '[晕]': '
',
+ '[衰]': '
',
+ '[骷髅]': '
',
+ '[敲打]': '
',
+ '[再见]': '
',
+ '[擦汗]': '
',
+ '[抠鼻]': '
',
+ '[鼓掌]': '
',
+ '[坏笑]': '
',
+ '[右哼哼]': '
',
+ '[鄙视]': '
',
+ '[委屈]': '
',
+ '[快哭了]': '
',
+ '[阴险]': '
',
+ '[亲亲]': '
',
+ '[可怜]': '
',
+ '[笑脸]': '
',
+ '[生病]': '
',
+ '[脸红]': '
',
+ '[破涕为笑]': '
',
+ '[恐惧]': '
',
+ '[失望]': '
',
+ '[无语]': '
',
+ '[嘿哈]': '
',
+ '[捂脸]': '
',
+ '[奸笑]': '
',
+ '[机智]': '
',
+ '[皱眉]': '
',
+ '[耶]': '
',
+ '[吃瓜]': '
',
+ '[加油]': '
',
+ '[汗]': '
',
+ '[天啊]': '
',
+ '[Emm]': '
',
+ '[社会社会]': '
',
+ '[旺柴]': '
',
+ '[好的]': '
',
+ '[打脸]': '
',
+ '[哇]': '
',
+ '[翻白眼]': '
',
+ '[666]': '
',
+ '[让我看看]': '
',
+ '[叹气]': '
',
+ '[苦涩]': '
',
+ '[裂开]': '
',
+ '[嘴唇]': '
',
+ '[爱心]': '
',
+ '[心碎]': '
',
+ '[拥抱]': '
',
+ '[强]': '
',
+ '[弱]': '
',
+ '[握手]': '
',
+ '[胜利]': '
',
+ '[抱拳]': '
',
+ '[勾引]': '
',
+ '[拳头]': '
',
+ '[OK]': '
',
+ '[合十]': '
',
+ '[啤酒]': '
',
+ '[咖啡]': '
',
+ '[蛋糕]': '
',
+ '[玫瑰]': '
',
+ '[凋谢]': '
',
+ '[菜刀]': '
',
+ '[炸弹]': '
',
+ '[便便]': '
',
+ '[月亮]': '
',
+ '[太阳]': '
',
+ '[庆 祝]': '
',
+ '[礼物]': '
',
+ '[红包]': '
',
+ '[發]': '
',
+ '[福]': '
',
+ '[烟花]': '
',
+ '[爆竹]': '
',
+ '[猪头]': '
',
+ '[跳跳]': '
',
+ '[发抖]': '
',
+ '[转圈]': '
'}
from re import findall
for index, message in enumerate(messages):
type_ = message[2]
@@ -754,7 +871,7 @@ const chatMessages = [
f.write(
f'''{{ type:0, text: '{str_time}',is_send:0,avatar_path:''}},'''
)
-
+
emojiText = findall(r"(\[.+?\])", str_content)
for emoji_text in emojiText:
if emoji_text in emoji:
@@ -772,9 +889,8 @@ const chatMessages = [
match = re.search(pattern2, str_content)
if match:
continue
-
image_path = hard_link_db.get_image(content=str_content, thumb=False)
- image_path = get_abs_path(image_path)
+ image_path = path.get_relative_path(image_path, base_path=f'./data/聊天记录/{self.contact.remark}/image')
image_path = image_path.replace('\\', '/')
# print(f"tohtml:---{image_path}")
if self.is_5_min(timestamp):
diff --git a/app/util/path.py b/app/util/path.py
index f174866..2b80bc9 100644
--- a/app/util/path.py
+++ b/app/util/path.py
@@ -7,16 +7,26 @@ from app.util import dat2pic
os.makedirs('./data/image', exist_ok=True)
-def get_abs_path(path):
+def get_abs_path(path, base_path="/data/image"):
# return os.path.join(os.getcwd(), 'app/data/icons/404.png')
if path:
- base_path = os.getcwd() + "/data/image"
- output_path = dat2pic.decode_dat(os.path.join(MePC().wx_dir, path), base_path) # './data/image')
+ base_path = os.getcwd() + base_path
+ output_path = dat2pic.decode_dat(os.path.join(MePC().wx_dir, path), base_path)
return output_path if output_path else ':/icons/icons/404.png'
else:
return ':/icons/icons/404.png'
+def get_relative_path(path, base_path):
+ if path:
+ base_path = os.getcwd() + base_path
+ output_path = dat2pic.decode_dat(os.path.join(MePC().wx_dir, path), base_path)
+ relative_path = './image/'+os.path.basename(output_path) if output_path else 'https://www.bing.com/images/search?view=detailV2&ccid=Zww6woP3&id=CCC91337C740656E800E51247E928ACD3052FECF&thid=OIP.Zww6woP3Em49TdSG_lnggAHaEK&mediaurl=https%3a%2f%2fmeekcitizen.files.wordpress.com%2f2018%2f09%2f404.jpg%3fw%3d656&exph=360&expw=640&q=404&simid=608040792714530493&FORM=IRPRST&ck=151E7337A86F1B9C5C5DB08B15B90809&selectedIndex=21&itb=0'
+ return relative_path
+ else:
+ return ':/icons/icons/404.png'
+
+
def mkdir(path):
if not os.path.exists(path):
os.mkdir(path)
@@ -44,4 +54,3 @@ def wx_path():
return wx_location
except FileNotFoundError:
return '.'
-
diff --git a/readme.md b/readme.md
index c2b004f..2e9cf06 100644
--- a/readme.md
+++ b/readme.md
@@ -294,7 +294,8 @@ python main.py
---
-> 声明:该项目有且仅有一个目的:“留痕”——我的数据我做主,前提是“我的数据”其次才是“我做主”,禁止任何人以任何形式将其用于任何非法用途,对于使用该程序所造成的任何后果,所有创作者不承担任何责任🙄
+> 声明:该项目有且仅有一个目的:“留痕”——我的数据我做主,前提是“我的数据”其次才是“我做主”,禁止任何人以任何形式将其用于任何非法用途,对于使用该程序所造成的任何后果,所有创作者不承担任何责任🙄
+> 该软件不会对您使用的微信造成任何影响,更不会对他人的微信造成任何影响,任何企图篡改微信聊天数据的想法都是无稽之谈。本项目所有功能均建立在”前言“的基础之上,基于该项目的所有开发者均不能接受任何有悖于”前言“的功能需求,违者后果自负。
[](https://star-history.com/?utm_source=bestxtools.com#LC044/WeChatMsg&Date)
diff --git a/requirements_pc.txt b/requirements_pc.txt
index 9016df1..85927c4 100644
--- a/requirements_pc.txt
+++ b/requirements_pc.txt
@@ -12,3 +12,4 @@ requests
flask==3.0.0
pyecharts==2.0.1
jieba==0.42.1
+protobuf==4.25.1