gyakkun/qq-mht2html

你好,希望可以添加忽略群组导出的功能(No Group)

Opened this issue · 4 comments

你好,很棒的项目,如果有空的话,希望能添加忽略群组导出的功能(No Group),只想要联系人的聊天记录。
十分感谢。

看了下,我这边导出的与之相关的关联项是:
消息分组:我加入的群聊
消息分组:我创建的群聊
消息分组:我管理的群聊
消息分组:已退出的多人聊天

@kn007 这个恐怕有点困难。我推荐的做法是将想要导出的联系人分组然后单独导出, 如图
image

好的,那我还是自己手动处理下。。。我写一个遍历001.html是群的再对应删除相符文件也不麻烦。谢谢啦。
主要是我联系人太多了,包括已删联系人的聊天记录我都想留着。但群组的我都无所谓(但是我群组也好多)
分组的话,我有近20个分组,作为老人,分组是有点多,而且还有临时会话要导出(这个没有分组而是按人),现在还有近千好友,已删好友也有400多个。不过你的提议也确实可以考虑。

可能你说的比较麻烦的原因是因为文件索引指向问题?
导出全部导出再删除也不是不行,hhh。。。主要是匹配下消息分组是群组就不再生成html,再加检索附件删除。。
其实我现在导出是离线清除群聊图片外加删除group2目录,离线状态导出mht。。。比较好处理,然而mht本身都已经9G+了。

有enhancement标签我就先不close了,有机会再实现。
再次感谢这一项目。。。新版QQ NT没有消息管理器,看不到已删好友旧消息,让我十分难受。这个可以导出后也方便我查阅。

麻烦的原因是很难从mht的内容上区分群聊和单个联系人。如果要实现这个功能的话, 我大概会先把所有"消息对象"(包括单个联系人和群组)的html tag提取出来, 然后提供复选框型筛选窗口, 然后还要据此过滤哪些图片需要输出哪些不需要输出, 这样做就需要遍历两次html的内容。

当前的做法是先一股脑把所有图片base64解成文件并判断真实图片格式后命名文件(qq有将gif识别成jpg的倾向), 之后对图片文件建立[uuid, 文件名]的map。处理完图片后才是逐行遍历html的部分, 遇到图片标签则从map找相应uuid的文件名进行替换, 再输出到新的单独分页的html文件中。

所以要做这个功能不可避免要对逻辑进行大改。

从mht转html和图片毕竟是曲线救国的方案(而且导出mht耗时相当漫长)。如果想进阶提取qq的聊天记录, 我推荐直接解msg3.0.db然后解出sqlite db自行输出, 参考:

https://github.com/QQBackup/qq-win-db-key/blob/master/pcqq_get_key.py
https://github.com/QQBackup/qq-win-db-key/blob/master/pc%20qq%20%E6%95%99%E7%A8%8B.md
https://github.com/frida/frida-go/tree/main
https://github.com/Akegarasu/qmsg-unpacker

我已经解密了msg3.0db了,20多G,做了备份了。只是还想要一份更便捷的。
你说的我明白意思了。我目前已经自行解决这个问题。只是提个需求。