38 Commits

Author SHA1 Message Date
Suxue
3da9a923b4 1.优化批量导出时的体验。现在起记录为空的用户将不会被导出。
2.修复批量导出的部分问题。
2024-01-10 23:20:15 +08:00
Suxue
f07d93c461 修复超大文件解密问题 2024-01-09 17:17:54 +08:00
Suxue
6653bcd035 update 2024-01-09 16:16:46 +08:00
Suxue
85f77c468e log 2024-01-09 16:08:43 +08:00
Suxue
f16e0b020b 1.解密内存优化
2.记录分页支持
3.模版选择初步支持
2024-01-09 15:01:36 +08:00
Suxue
00b6596237 update 2024-01-06 11:22:31 +08:00
Suxue
3dfb81b990 新增部分消息类型容错
新增已删除联系人记录导出
2024-01-06 11:20:50 +08:00
Suxue
f3d73d2507 修复bug
dev分支预下载暂时不可用,拿来调试功能了
2023-12-25 23:41:18 +08:00
Suxue
b276815960 新增引用消息支持
新增词云分词异常时,错误提示
2023-12-23 00:05:14 +08:00
Suxue
c507e68080 合并0.9.6.2 2023-12-21 15:32:23 +08:00
Suxue
cc63fe94a6 词云蒙版支持 2023-12-16 12:26:13 +08:00
Suxue
ddfec75201 导出附件按用户id归集 2023-12-16 09:15:23 +08:00
Suxue
e174f6d00a 合并 2023-12-16 08:37:02 +08:00
Suxue
ce393253a8 新增词云
修复创建工作区与已有工作区之间切换的bug
导出文件名优化
2023-12-15 18:46:15 +08:00
Suxue
cf7d75625d 新增公钥头推断查找 2023-12-14 23:11:55 +08:00
Suxue
cca9e0626d 合并 2023-12-14 21:54:44 +08:00
Suxue
f02a1164cf 1.修复导出html时,emoji xml导致线程退出的问题
2.修复图片导出问题
2023-12-14 21:50:07 +08:00
Suxue
a49f9ec9de v0.9.3.0
1.修复一处内存泄露问题。
2.修复部分用户在创建工作区时遇到“未找到适用于完成此操作的图像处理组件。”的问题
3.支持Type=10000的系统消息。
4.新增表情预下载功能,为后期表情支持做准备。
2023-12-12 22:50:30 +08:00
Suxue
eaacb554ac Merge branch 'master' into dev 2023-12-11 21:55:07 +08:00
Suxue
eb4d4fa3fa 新增批量导出 2023-12-11 16:18:42 +08:00
Suxue
9bf5d1c7d3 1.异步创建工作区,同时创建工作区支持状态显示了
2.异步导出聊天记录,html导出平滑优化
3.支持拖拽窗体
2023-12-11 13:50:27 +08:00
Suxue
07f58afd98 fix style 2023-12-07 15:56:49 +08:00
Suxue
375f17fe49 优化导出按钮
新增txt导出
2023-12-07 14:56:52 +08:00
Suxue
985505b2e7 导出改造
新增txt导出
2023-12-06 23:06:54 +08:00
Suxue
9ad5f6b311 Merge branch 'master' into dev 2023-12-06 22:07:42 +08:00
Suxue
6c7614dcac merge master 2023-12-06 21:58:17 +08:00
Suxue
3957f2462e 更新url 2023-12-06 20:37:19 +08:00
Suxue
74ad9297c2 清理旧版本文件和部分方法
修复联系人列表没有显示备注的问题
2023-12-06 19:50:58 +08:00
Suxue
ffbc855a0f 新增用户数和消息数统计
群聊导出支持用户名
2023-12-06 19:32:55 +08:00
Suxue
50c3b22c74 迁移解密至WXWorkspace
解密方式选择切换MVVM
完善新界面功能
2023-12-06 18:22:22 +08:00
Suxue
d1a0f3897f update readme 2023-12-06 15:34:20 +08:00
Suxue
4b5554cbe1 update readme 2023-12-06 15:27:57 +08:00
Suxue
585e6683cd 项目更名 2023-12-06 14:13:14 +08:00
Suxue
e83d3869cc 调整部分局部变量可见性
完善新版工作区创建
群聊数据改用标准方式获取
2023-12-06 12:05:34 +08:00
Suxue
191849e9c2 1.用户头像切换到本地缓存
2.修复多工作区切换,页面不变的问题
3.WXContact切换到ObservableCollection
4.群聊名称支持
2023-12-05 14:50:32 +08:00
Suxue
d4aa12cf07 WindowsAPI调用重构,改用SYSTEM_EXTENDED_HANDLE_INFORMATION解决 2023-12-04 15:46:55 +08:00
Suxue
85b0b1db52 features:
1.workspace page 引入mvvm
2.wxcontact修改为联合模型
2023-11-30 17:24:13 +08:00
Suxue
8305a58c39 dev init 2023-11-30 09:03:49 +08:00
5 changed files with 9 additions and 90 deletions

View File

@@ -136,6 +136,10 @@ namespace WechatBakTool.Helpers
throw new Exception("搜索不到微信账号,请确认用户名是否正确,如错误请重新新建工作区,务必确认账号是否正确");
}
}
else if (find_key_type == 3)
{
string searchString = "-----BEGIN PUBLIC KEY-----";
}
return null;
}
public static string GetMD5(string text)
@@ -199,7 +203,6 @@ namespace WechatBakTool.Helpers
// 分页标志
var page_bytes = BitConverter.GetBytes(page_no + 1);
page_bytes = page_bytes.Take(4).ToArray();
page_bytes.CopyTo(going_to_hashed, DEFAULT_PAGESIZE - reserved - offset + IV_SIZE);
var hash_mac_compute = hmac_sha1.ComputeHash(going_to_hashed, 0, going_to_hashed.Length);

View File

@@ -33,7 +33,6 @@ namespace WechatBakTool.Pages
public WXUserReader? UserReader;
private List<WXContact>? ExpContacts;
private bool Suspend = false;
private int Status = 0;
public Manager()
{
DataContext = workspaceViewModel;
@@ -52,21 +51,6 @@ namespace WechatBakTool.Pages
private void btn_export_all_Click(object sender, RoutedEventArgs e)
{
// 0 未开始
if(Status == 0 || Status == 2)
{
Suspend = false;
btn_export_all.Content = "暂停";
}
// 1 进行中
else if (Status == 1)
{
// 开启暂停
Suspend = true;
Status = 2;
btn_export_all.Content = "继续";
return;
}
Task.Run(() =>
{
bool group = false, user = false;
@@ -80,26 +64,19 @@ namespace WechatBakTool.Pages
});
if (UserReader != null)
{
if (Status == 0)
if (!Suspend)
ExpContacts = UserReader.GetWXContacts().ToList();
else
Suspend = false;
List<WXContact> process = new List<WXContact>();
foreach (var contact in ExpContacts!)
{
if (Suspend)
{
foreach(WXContact p in process)
{
ExpContacts.Remove(p);
}
workspaceViewModel.ExportCount = "已暂停";
return;
}
Status = 1;
if (group && contact.UserName.Contains("@chatroom"))
{
workspaceViewModel.WXContact = contact;
@@ -110,10 +87,7 @@ namespace WechatBakTool.Pages
workspaceViewModel.WXContact = contact;
ExportMsg(contact);
}
process.Add(contact);
}
Status = 0;
btn_export_all.Content = "导出";
MessageBox.Show("批量导出完成", "提示");
}
});

View File

@@ -328,61 +328,6 @@ namespace WechatBakTool.Pages
MessageBox.Show("用户所有表情预下载完毕");
});
}
/*
if (UserReader != null && ViewModel.WXContact != null)
{
Task.Run(() =>
{
List<WXMsg> msgs = UserReader.GetWXMsgs(ViewModel.WXContact.UserName).ToList();
List<WXContactHT> users = new List<WXContactHT>();
if (File.Exists("WXContact.json"))
{
string text = File.ReadAllText("WXContact.json");
text = text.Substring(8, text.Length - 8);
users = JsonConvert.DeserializeObject<List<WXContactHT>>(text);
}
int i = 1; int all = 1;
List<WXMsg> tmp = new List<WXMsg>();
foreach (WXMsg m in msgs)
{
m.BytesExtra = null;
tmp.Add(m);
if (all % 10000 == 0)
{
File.WriteAllText(ViewModel.WXContact.UserName + "-" + i.ToString() + ".json", string.Format("showMsg({0})", JsonConvert.SerializeObject(tmp)));
tmp.Clear();
i++;
}
all++;
}
if (users!.Find(x => x.UserName == ViewModel.WXContact.UserName) == null)
{
WXContactHT html = new WXContactHT();
html.NickName = ViewModel.WXContact.NickName;
html.UserName = ViewModel.WXContact.UserName;
html.LastMsg = ViewModel.WXContact.LastMsg;
if (ViewModel.WXContact.Avatar != null)
{
using (var ms = new MemoryStream())
{
ViewModel.WXContact.Avatar.StreamSource.CopyTo(ms);
byte[] bytes = new byte[ms.Length];
ms.Write(bytes, 0, bytes.Length);
html.AvatarString = Convert.ToBase64String(bytes);
}
}
html.FileCount = i;
users.Add(html);
}
File.WriteAllText(ViewModel.WXContact.UserName + "-" + i.ToString() + ".json", string.Format("showMsg({0})", JsonConvert.SerializeObject(tmp)));
File.WriteAllText("WXContact.json", string.Format("getUser({0})", JsonConvert.SerializeObject(users)));
MessageBox.Show("json已导出");
});
}
*/
}
private void list_msg_ScrollChanged(object sender, ScrollChangedEventArgs e)

View File

@@ -6,9 +6,9 @@
<Nullable>enable</Nullable>
<UseWPF>true</UseWPF>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<AssemblyVersion>0.9.7.2</AssemblyVersion>
<FileVersion>0.9.7.2</FileVersion>
<Version>0.9.7.2</Version>
<AssemblyVersion>0.9.6.4</AssemblyVersion>
<FileVersion>0.9.6.4</FileVersion>
<Version>0.9.6.4</Version>
</PropertyGroup>
<ItemGroup>

View File

@@ -14,8 +14,5 @@
},{
"Version":"3.9.8.25",
"BaseAddr": 65002192
},{
"Version":"3.9.9.27",
"BaseAddr": 68066576
}
]