Skip to content

Commit

Permalink
v0.9.6.3 Release!
Browse files Browse the repository at this point in the history
1.新增引用消息支持。
2.词云分词异常时错误提示。
  • Loading branch information
SuxueCode committed Dec 22, 2023
1 parent 932b2d0 commit 029403e
Show file tree
Hide file tree
Showing 4 changed files with 82 additions and 15 deletions.
54 changes: 54 additions & 0 deletions Export/HtmlExport.cs
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,60 @@ public void SetMsg(WXUserReader reader, WXContact contact,WorkspaceViewModel vie
}
}
}
else if (msg.SubType == 57)
{
using (var decoder = LZ4Decoder.Create(true, 64))
{
byte[] target = new byte[10240];
int res = 0;
if (msg.CompressContent != null)
res = LZ4Codec.Decode(msg.CompressContent, 0, msg.CompressContent.Length, target, 0, target.Length);

byte[] data = target.Skip(0).Take(res).ToArray();
string xml = Encoding.UTF8.GetString(data);
if (!string.IsNullOrEmpty(xml))
{
xml = xml.Replace("\n", "");
XmlDocument xmlObj = new XmlDocument();
xmlObj.LoadXml(xml);
if (xmlObj.DocumentElement != null)
{
string title = "";
XmlNodeList? findNode = xmlObj.DocumentElement.SelectNodes("/msg/appmsg/title");
if (findNode != null)
{
if (findNode.Count > 0)
{
title = findNode[0]!.InnerText;
}
}

HtmlBody += string.Format("<p class=\"content\">{0}</p>", title);

XmlNode? type = xmlObj.DocumentElement.SelectSingleNode("/msg/appmsg/refermsg/type");
if(type != null)
{
XmlNode? source = xmlObj.DocumentElement.SelectSingleNode("/msg/appmsg/refermsg/displayname");
XmlNode? text = xmlObj.DocumentElement.SelectSingleNode("/msg/appmsg/refermsg/content");
if(type.InnerText == "1" && source != null && text != null)
{
HtmlBody += string.Format("<p class=\"content\">[引用]{0}:{1}</p>", source.InnerText, text.InnerText);
}
else if(type.InnerText != "1" && source != null && text != null)
{
HtmlBody += string.Format("<p class=\"content\">[引用]{0}:非文本消息类型-{1}</p>", source.InnerText, type);
}
else
{
HtmlBody += string.Format("<p class=\"content\">未知的引用消息</p>");
}
}


}
}
}
}
else
{
using (var decoder = LZ4Decoder.Create(true, 64))
Expand Down
26 changes: 18 additions & 8 deletions Pages/Workspace.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -164,20 +164,30 @@ private void Export_Click(object sender, RoutedEventArgs e)
var jieba = new JiebaSegmenter();
Counter<string> counter = new Counter<string>();

ViewModel.ExportCount = "词频统计ing...";
List<WXMsg>? msgs = UserReader.GetWXMsgs(ViewModel.WXContact.UserName);
if(msgs!= null)
try
{
foreach(WXMsg msg in msgs)
ViewModel.ExportCount = "词频统计ing...";
List<WXMsg>? msgs = UserReader.GetWXMsgs(ViewModel.WXContact.UserName);
if (msgs != null)
{
if(msg.Type == 1)
foreach (WXMsg msg in msgs)
{
List<string> list = jieba.Cut(msg.StrContent).ToList();
counter.Add(list);
if (msg.Type == 1)
{
List<string> list = jieba.Cut(msg.StrContent).ToList();
counter.Add(list);
}

}

}
}
catch
{
ViewModel.ExportCount = "异常";
MessageBox.Show("词频统计发生异常,请检查字典文件是否存在", "错误");
return;
}

var orderBy = counter.MostCommon();
ViewModel.ExportCount = "移除部分词语...";
string[] remove_string_list = setting.RemoveKey.Split(",");
Expand Down
11 changes: 7 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
- [x] 群聊
- [x] 系统消息
- [x] 文件
- [x] 引用/转发消息
- [x] 表情(需要预下载)

如果有什么好的建议或意见,或者遇到什么问题,欢迎提issue,看到会回。
Expand All @@ -24,10 +25,11 @@
<br/>
### 免责声明
**本项目仅供学习使用,严禁商业使用**<br/>
**本项目仅供学习、研究使用,严禁商业使用**<br/>
**用于网络安全用途的,请确保在国家法律法规下使用**<br/>
**本项目完全免费,问你要钱的都是骗子**<br/>
**使用本项目初衷是作者研究微信数据库的运行使用,您使用本软件导致的后果,包含但不限于数据损坏,记录丢失等问题,作者不承担相关责任。**<br/>
**因软件特殊性质,请在使用时获得微信账号所有人授权**<br/>
**因软件特殊性质,请在使用时获得微信账号所有人授权,你应当确保不侵犯他人个人隐私权,后果自行承担**<br/>
<br/>

### 隐私声明
Expand All @@ -44,6 +46,7 @@ C# + .NET6.0 + WPF <br/>
- [ ] 性能优化
- [ ] 打包资源文件夹
- [ ] 手动模式(合适离线分析)
- [ ] 年度报告类分析(等美术资源中,没有资源不做)
<br/>

### 部分问题
Expand All @@ -58,8 +61,7 @@ A:基本上都是因为刚迁移完,缓存没写入到数据库导致的,
<br/>

### 使用说明
**本说明为新版本说明,即将发版**<br/>
0.安装.NET Desktop Runtime(如已经安装忽略)<br/>
0.安装.NET Desktop Runtime(注意是6.0版本的Desktop Runtime,如已经安装忽略)<br/>
1.打开微信,并登录。<br/>
2.在软件左侧下方点击**新建工作区**,<br/>
3.在**新建工作区界面**,选择要创建工作区的微信进程,并**确认下方微信号是否正确**<br/>
Expand All @@ -77,6 +79,7 @@ A:基本上都是因为刚迁移完,缓存没写入到数据库导致的,
4. 解密微信图片 [吾爱破解chenhahacjl/微信 DAT 图片解密 (C#)](https://www.52pojie.cn/forum.php?mod=viewthread&tid=1507922)
5. 参考了句柄名称实现,注意获取句柄别看这里,#10 这个issue就是血泪 [huiyadanli/RevokeMsgPatcher](https://github.com/huiyadanli/RevokeMsgPatcher)
6. 参考了句柄获取 [FuzzySecurity/Sharp-Suite](https://github.com/FuzzySecurity/Sharp-Suite)
7. 这个获取秘钥更通用一些 [SnowMeteors/GetWeChatKey](https://github.com/SnowMeteors/GetWeChatKey) ,用户名不是很稳定

### 其他声明
[1] 理论支持所有64位版本指用户名推断和公钥头推断,地址直接获取方式需要version.json支持,更新不是很及时。
6 changes: 3 additions & 3 deletions WechatBakTool.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
<Nullable>enable</Nullable>
<UseWPF>true</UseWPF>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<AssemblyVersion>0.9.6.2</AssemblyVersion>
<FileVersion>0.9.6.2</FileVersion>
<Version>0.9.6.2</Version>
<AssemblyVersion>0.9.6.3</AssemblyVersion>
<FileVersion>0.9.6.3</FileVersion>
<Version>0.9.6.3</Version>
</PropertyGroup>

<ItemGroup>
Expand Down

0 comments on commit 029403e

Please sign in to comment.