Code Monkey home page Code Monkey logo

Comments (35)

BlueMatthew avatar BlueMatthew commented on August 15, 2024 1

也感谢你一直的大力测试帮助,后面还要麻烦你的 :)

from wechatexporter.

BlueMatthew avatar BlueMatthew commented on August 15, 2024

按理如果mklink产生的软连接不能重定向过去的话,你直接选择D:\Backup也是可以的。你是用了最新的1.7.3版本吗,MS Store的iTunes我倒没有试过,我测试一下。我一会儿也改一下代码,看看能否显示更详细的错误信息。

from wechatexporter.

Eric-the-Red-00 avatar Eric-the-Red-00 commented on August 15, 2024

按理如果mklink产生的软连接不能重定向过去的话,你直接选择D:\Backup也是可以的。你是用了最新的1.7.3版本吗,MS Store的iTunes我倒没有试过,我测试一下。我一会儿也改一下代码,看看能否显示更详细的错误信息。

  • 选择 D:\Backup 仍然提示“解析 iTunes Backup失败”。
  • 使用的是1.7.3版本。
  • 我猜想iTunes版本不是问题所在,毕竟备份的保存路径和格式是一致的,只是不知为何手动选择路径无效。如果有必要我可以尝试安装PC版本iTunes?
  • 或许可以增加一个类似WechatExport-iOS一样直接读取Info.plist的打开方式?应该可以避免一切打开的问题。
  • 感谢,新版本发布后会反馈结果。

from wechatexporter.

BlueMatthew avatar BlueMatthew commented on August 15, 2024

我从MS Store安装了iTunes,也用mklink转移了目录,目录结构和你的类似的。貌似能够读出数据来,我的iTunes版本是12.1.10.26。

因为没有出错,所以我就在可能出错的地方增加了一些错误日志,你试试附件这个debug版本看能否抓到错误呢。相关的代码也已经check in了。

wxexp-dbg.zip

新的代码需要解析Info.plist和Manifest.plist两个文件,所以做了一些调整,但是仍然和WechatExport-iOS类似的。

from wechatexporter.

Eric-the-Red-00 avatar Eric-the-Red-00 commented on August 15, 2024

谢谢,我的iTunes版本是12.11.0.26,你好像打错了一位小数点,应该是同一个版本。
错误提示:
[DBG] No valid backup id found in: D:\Backup

目录结构如下图所示。打码部分为纯数字。
image

确认了下一级子目录包含Info.plist和Manifest.plist两个文件。
或许是对backup id的判定过于严格,导致这个id没有被识别?

from wechatexporter.

BlueMatthew avatar BlueMatthew commented on August 15, 2024

谢谢,我的iTunes版本是12.11.0.26,你好像打错了一位小数点,应该是同一个版本。
错误提示:
[DBG] No valid backup id found in: D:\Backup

目录结构如下图所示。打码部分为纯数字。
image

确认了下一级子目录包含Info.plist和Manifest.plist两个文件。
或许是对backup id的判定过于严格,导致这个id没有被识别?

确实是,我是判断子目录的名字长度为40个字符,才是有效的,看来不同版本的iTunes不一样了。我改动一下。

from wechatexporter.

BlueMatthew avatar BlueMatthew commented on August 15, 2024

你再试试这个版本。代码晚点提交。
v1.7.4_x64_win.zip

from wechatexporter.

Eric-the-Red-00 avatar Eric-the-Red-00 commented on August 15, 2024

v1.7.4 可以使用哈,没有问题,谢谢。

疑似bug:

  • 微信账号只能识别到一个(其他软件可以识别出来全部3个),好在是我最需要的那个。
  • “聊天记录数”有一半显示为0(实际上不是0),非0的至少一部分也偏小了,但是真正导出的时候可以正常全部导出。

优化建议:

  • 左下角进度条可以按照百分比做,更直观。
  • 生成的html文件的文件名如果加上昵称或者群聊名称,会更方便查找。

from wechatexporter.

BlueMatthew avatar BlueMatthew commented on August 15, 2024

v1.7.4 可以使用哈,没有问题,谢谢。

疑似bug:

  • 微信账号只能识别到一个(其他软件可以识别出来全部3个),好在是我最需要的那个。
  • “聊天记录数”有一半显示为0(实际上不是0),非0的至少一部分也偏小了,但是真正导出的时候可以正常全部导出。

优化建议:

  • 左下角进度条可以按照百分比做,更直观。
  • 生成的html文件的文件名如果加上昵称或者群聊名称,会更方便查找。
  1. 目前的实现应该是能支持多个微信账号的识别的。我这边也有测试两个账号。你的微信的版本号能告知一下吗,我也验证一下。聊天记录数那个我是从另外一个文件中获取的,可能是不太准确,我再查一下。
  2. 进度条我再考虑一下,主要是不同的群的聊天记录的量级不太一样,不是能很精准的计算。所以特地做成一个非精准的进度,当然也是偷懒 :)
  3. 文件名当时确实也是想这样做的,只是微信昵称,群聊名称有时候带有不适合做文件名的字符,后来也是偷懒,没有这样去实现。回头我也尽量来优化一下。

from wechatexporter.

Eric-the-Red-00 avatar Eric-the-Red-00 commented on August 15, 2024
  • 微信是目前iOS上最新版本,7.0.21;这个备份文件使用WechatExport-iOS也是可以识别到3个用户。
  • 我不太清楚聊天记录数实现的原理,在右侧日志里显示的不是0,那部分数据应该至少可以部分解决问题。对了,要是可以在表头那里增加一个“点击聊天记录数排序功能”就更好了。
  • 文件名功能应该好改,非法字符抛弃掉或者填充默认字符即可,毕竟这都是少数特例。不过进度条和文件名这俩不是最重要的,只是稍微人性化一点。

from wechatexporter.

BlueMatthew avatar BlueMatthew commented on August 15, 2024

聊天记录列表上面还有一个下拉框的,是微信账号的选择,你这边列表中只有一个微信账号吗?

  • 微信是目前iOS上最新版本,7.0.21;这个备份文件使用WechatExport-iOS也是可以识别到3个用户。
  • 我不太清楚聊天记录数实现的原理,在右侧日志里显示的不是0,那部分数据应该至少可以部分解决问题。对了,要是可以在表头那里增加一个“点击聊天记录数排序功能”就更好了。
  • 文件名功能应该好改,非法字符抛弃掉或者填充默认字符即可,毕竟这都是少数特例。不过进度条和文件名这俩不是最重要的,只是稍微人性化一点。

from wechatexporter.

Eric-the-Red-00 avatar Eric-the-Red-00 commented on August 15, 2024

聊天记录列表上面还有一个下拉框的,是微信账号的选择,你这边列表中只有一个微信账号吗?

是的。

from wechatexporter.

BlueMatthew avatar BlueMatthew commented on August 15, 2024

聊天记录列表上面还有一个下拉框的,是微信账号的选择,你这边列表中只有一个微信账号吗?

是的。

好的,看来也是有未知的格式没有处理好,回头也加一些日志看看。

from wechatexporter.

Eric-the-Red-00 avatar Eric-the-Red-00 commented on August 15, 2024

刚刚提交的v1.7.4 iTunes版本号不显示,昨天也是,我也以为是偶然的bug,似乎是非预期的行为。
iTunes已安装,版本:
不过不影响使用。

from wechatexporter.

BlueMatthew avatar BlueMatthew commented on August 15, 2024

刚刚提交的v1.7.4 iTunes版本号不显示,昨天也是,我也以为是偶然的bug,似乎是非预期的行为。
iTunes已安装,版本:
不过不影响使用。

有空再试试1.7.6版本,看看微信里的多个账号是不是都能识别到,我做了一些优化。

from wechatexporter.

Eric-the-Red-00 avatar Eric-the-Red-00 commented on August 15, 2024
  • 多个账号可以识别到了(v7.0.21)。
  • 一部分聊天记录数显示为0的问题还没有解决。
  • 此版本似乎不检测MS版本iTunes,显示“iTunes 未安装”。
  • 一个新的bug:我将D:\Backup 移动(仅仅是移动)A:\#Data\Backup_Related\Backup会导致 备份可以被识别但无法读出数据,移动回D盘又恢复正常。 此问题影响v1.7.4-1.7.6,非常奇怪。具体表现如下图。
    image

from wechatexporter.

BlueMatthew avatar BlueMatthew commented on August 15, 2024
  • 多个账号可以识别到了(v7.0.21)。
  • 一部分聊天记录数显示为0的问题还没有解决。
  • 此版本似乎不检测MS版本iTunes,显示“iTunes 未安装”。
  • 一个新的bug:我将D:\Backup 移动(仅仅是移动)A:\#Data\Backup_Related\Backup会导致 备份可以被识别但无法读出数据,移动回D盘又恢复正常。 此问题影响v1.7.4-1.7.6,非常奇怪。具体表现如下图。
    image

确实是在打开sqlite数据库是,数据库文件路径上带有特殊字符(#),未进行编码导致打开失败了。顺便查了一下路径中带中文字符也还存在一些问题,在后面的1.7.7中会一起修复。聊天记录数为0的问题也会一起解决。

MS Store的iTunes我再看看,回头再打些日志,请你帮忙试试。

你帮助发现了很多bugs。非常感谢 :)

from wechatexporter.

Eric-the-Red-00 avatar Eric-the-Red-00 commented on August 15, 2024

嗯好,项目我也watch着呢,有debug版本也可随时发上来。

from wechatexporter.

BlueMatthew avatar BlueMatthew commented on August 15, 2024

嗯好,项目我也watch着呢,有debug版本也可随时发上来。

Eric, 1.7.7修了之前提到的一些问题。不过iTunes是否安装的检测,只是增加了多个注册表路径的检查,不过还都是基于我自己的环境增加的检测,不确定不同环境里是不是能工作。你有空帮忙再试试这个debug版本,

检测的时候会显示一些信息的对话框。

谢谢啦。

v1.7.7_dbg.zip

from wechatexporter.

Eric-the-Red-00 avatar Eric-the-Red-00 commented on August 15, 2024
  • MS-iTunes可以检测到了,但是读不出版本号(“iTunes已安装,版本:”)。
  • 其他之前提到的bug(聊天记录数、特殊路径)均已解决,软件功能基本正常。

几个新发现的预期之外的行为:

  • 在同一路径导出多个账号的数据时,index.html中只能显示第一个被导出的账号。
  • 进度条(绿色矩形循环滑动)在导出结束后不会立即清除,可能停止在任意位置。
  • 聊天记录中我的头像没了(”暂时无法查看“),但应该是包含在备份文件里的。

一个新的优化建议:

  • 大备份文件加载时间长,软件呈假卡死状态,如果有读取进度提示就更好了。

from wechatexporter.

BlueMatthew avatar BlueMatthew commented on August 15, 2024
  • MS-iTunes可以检测到了,但是读不出版本号(“iTunes已安装,版本:”)。
  • 其他之前提到的bug(聊天记录数、特殊路径)均已解决,软件功能基本正常。

几个新发现的预期之外的行为:

  • 在同一路径导出多个账号的数据时,index.html中只能显示第一个被导出的账号。
  • 进度条(绿色矩形循环滑动)在导出结束后不会立即清除,可能停止在任意位置。
  • 聊天记录中我的头像没了(”暂时无法查看“),但应该是包含在备份文件里的。

一个新的优化建议:

  • 大备份文件加载时间长,软件呈假卡死状态,如果有读取进度提示就更好了。
  1. 看来不同的平台的iTunes检测貌似还蛮多问题的,准备不检测iTunes了,下个版本改成直接检查iTunes备份文件中的iTunes版本号可能是更好的方式,这个版本号也是更准确的数据。

  2. 是的,目前只能选择一个微信账户,我会改一下,能导出所有的微信账户

  3. 结束时候的进度条状态已经修复,会进下个版本

  4. 头像暂时无法查看是指?日志中已经提示所有文件都下载完成了吗?

  5. 是的,切换备份目录时加载微信的基本信息(用户,群基本信息)的这部分没有放到线程中处理,会卡住主线程蛮长一段时间。晚点再来优化。

from wechatexporter.

Eric-the-Red-00 avatar Eric-the-Red-00 commented on August 15, 2024
  1. 的确,iTunes是否安装没关系,有备份文件就行。
  2. 太好了。
  3. 太好了。
  4. 是指,导出聊天记录结束后,在浏览器中打开一个私聊的html文件并完成网页加载后,我的头像位置显示一张错误提示图片,文字为”暂时无法查看“。导出的时候日志中并没有”无法下载“、”无法提取“之类的任何错误提示。
  5. 好的,好在目前没出现过彻底挂起的情况,多等一等就加载出来了。

from wechatexporter.

BlueMatthew avatar BlueMatthew commented on August 15, 2024
  1. iTunes是否安装已经移除了,改为输出生成iTunes备份文件的iTunes版本号(不同backup的iTunes版本号可能不一样,也和当前安装的iTunes版本可能不一样)
  2. 微信账户支持选择全部账户了
  3. 进度条修复了bug。精准进度条方式做了一些代码层面的准备工作,后续再改。
  4. 头像还没有仔细看,不过大概率是微信服务器输出了错误的图片,程序未能识别出来,如果重新导出一次还是如此吗?
  5. 选择了iTunes backup目录后的一段时间挂起,做了优化,像我这个微信的数据还比较多的,大概从原先的6秒左右降低到了2s左右,效果好一些,也做了一些代码层面的调整,为最终改成线程做了准备。

from wechatexporter.

Eric-the-Red-00 avatar Eric-the-Red-00 commented on August 15, 2024
  1. iTunes版本输出正确。
  2. 这里还是有bug,现在日志显示可以识别到我的三个账户,但是选择框和最终输出结果都只有一个账户的数据,如下图1。
  3. 目前看似乎OK。
  4. 是的,重新导出还是如此,如下图2。我用同类软件就可以看到我的头像,估计还是哪里有问题。
  5. 我这边是20G的备份,可能IO瓶颈太严重了,感知不大,没关系优化了就好。

image
image

from wechatexporter.

BlueMatthew avatar BlueMatthew commented on August 15, 2024

刚刚发现一个大的bug,windows版本如果文件目录或者好友/群名称包含unicode字符,譬如中文,音频未能导出。需要用1.7.11重新导出一次。

你的微信账户没有在列表中的问题,我晚点多加一些日志,再麻烦你试一下。

from wechatexporter.

Eric-the-Red-00 avatar Eric-the-Red-00 commented on August 15, 2024

刚刚发现一个大的 bug,windows 版本如果文件目录或者好友 / 群名称包含 unicode 字符,譬如中文,音频未能导出。需要用 1.7.11 重新导出一次。

你的微信账户没有在列表中的问题,我晚点多加一些日志,再麻烦你试一下。

好的,那我就不试v1.7.11了,之后拿到debug版本统一反馈。

from wechatexporter.

BlueMatthew avatar BlueMatthew commented on August 15, 2024

刚刚发现一个大的 bug,windows 版本如果文件目录或者好友 / 群名称包含 unicode 字符,譬如中文,音频未能导出。需要用 1.7.11 重新导出一次。
你的微信账户没有在列表中的问题,我晚点多加一些日志,再麻烦你试一下。

好的,那我就不试v1.7.11了,之后拿到debug版本统一反馈。

嗯,反馈不急的,回头找你帮忙测试了一起,主要是说,如果你以前有已经导出来的聊天记录要备份的,那需要重新导出一次。

from wechatexporter.

Eric-the-Red-00 avatar Eric-the-Red-00 commented on August 15, 2024

刚刚发现一个大的 bug,windows 版本如果文件目录或者好友 / 群名称包含 unicode 字符,譬如中文,音频未能导出。需要用 1.7.11 重新导出一次。
你的微信账户没有在列表中的问题,我晚点多加一些日志,再麻烦你试一下。

好的,那我就不试 v1.7.11 了,之后拿到 debug 版本统一反馈。

嗯,反馈不急的,回头找你帮忙测试了一起,主要是说,如果你以前有已经导出来的聊天记录要备份的,那需要重新导出一次。

这没问题,每次我都是重新导出的,不然咋测试,后台挂着就行不是很麻烦。结果也在优化,win-win。

from wechatexporter.

BlueMatthew avatar BlueMatthew commented on August 15, 2024

Eric,新年好。

在解析用户和聊天记录信息的代码中,我增加了一些日志。麻烦你有空的时候,再执行一下附件的debug版本v1.7.13_x64_win_dbg.zip,不用点导出按钮,只需要打开之后的日志。在日志框获得焦点的时候,按CTRL+A能选中全部,CTRL+C能拷贝日志到剪贴板

谢谢啦

from wechatexporter.

Eric-the-Red-00 avatar Eric-the-Red-00 commented on August 15, 2024

新年好。
遗憾的是,这个版本的日志和选择框都只能识别到一个账户了。
22:47:00.203: Start loading users and sessions.
22:47:01.214: [DBG] ITunes Database loaded.
22:47:01.214: iTunes版本:12.11.0.26, iOS版本:14.3, 微信版本:7.0.21
22:47:01.215: [DBG] LoginInfo2.dat: *XX*
22:47:01.215: [DBG] Wechat Users loaded.
22:47:05.250: [DBG] Wechat Sessions for: XX loaded.
22:47:05.251: [DBG] 1 users
22:47:05.251: [DBG] Display Sessions Start
22:47:05.254: [DBG] Display Sessions End

from wechatexporter.

BlueMatthew avatar BlueMatthew commented on August 15, 2024

新年好。
遗憾的是,这个版本的日志和选择框都只能识别到一个账户了。
22:47:00.203: Start loading users and sessions.
22:47:01.214: [DBG] ITunes Database loaded.
22:47:01.214: iTunes版本:12.11.0.26, iOS版本:14.3, 微信版本:7.0.21
22:47:01.215: [DBG] LoginInfo2.dat: *XX*
22:47:01.215: [DBG] Wechat Users loaded.
22:47:05.250: [DBG] Wechat Sessions for: XX loaded.
22:47:05.251: [DBG] 1 users
22:47:05.251: [DBG] Display Sessions Start
22:47:05.254: [DBG] Display Sessions End

呃呃呃,确实是我后来做优化的时候把itunes备份数据中的纯目录记录过滤掉了,导致后续解析用户目录失败了,所以一个保护的代码没有执行到。我先找其他人测试测试,晚点稳定了再找你帮忙测试。

from wechatexporter.

Eric-the-Red-00 avatar Eric-the-Red-00 commented on August 15, 2024

基于 v1.7.18.1 的总结:功能实现基本完整,没有发现影响使用的 bug,且易用性大幅提升。
这个长 issue 在此就关闭了,之后的版本更新如果再发现新的问题再开 issue 吧。
最后提供几个进一步优化的点,实现起来可能不是很容易,仅供参考:

  • 左下角进度条如果按照百分比做会更直观,近似值也可。
  • 大备份文件加载时间长,虽然软件不会阻塞,不过如果有读取进度百分比就更好了。
  • 进一步支持特殊格式的导出(如有)。
  • 进一步优化 html 格式,例如,提供图片和视频的筛选功能,如同 APP 端”查找聊天记录“功能。

感谢作者的 contribution!

from wechatexporter.

BlueMatthew avatar BlueMatthew commented on August 15, 2024

基于 v1.7.18.1 的总结:功能实现基本完整,没有发现影响使用的 bug,且易用性大幅提升。
这个长 issue 在此就关闭了,之后的版本更新如果再发现新的问题再开 issue 吧。
最后提供几个进一步优化的点,实现起来可能不是很容易,仅供参考:

  • 左下角进度条如果按照百分比做会更直观,近似值也可。
  • 大备份文件加载时间长,虽然软件不会阻塞,不过如果有读取进度百分比就更好了。
  • 进一步支持特殊格式的导出(如有)。
  • 进一步优化 html 格式,例如,提供图片和视频的筛选功能,如同 APP 端”查找聊天记录“功能。

感谢作者的 contribution!

Eric,你多个账号解析不出来的问题,后来没有眉目,汗。

  1. 进度更精准的两个问题,后面会考虑,之前已经在调整代码结构,应该能够实现了。
  2. 图片和视频的筛选,搜索功能,已经改好了,commits已经提交了,不过版本还没有发布出来,这几天就会最后搞定
  3. 还在考虑把解析不支持的消息类型,提示给使用者,请使用者发送出来,这样也能够持续进行维护,主要的问题是消息数据涉及大家的隐私,考虑怎么能让使用者核对过数据之后,愿意把无关隐私的信息发出来。

from wechatexporter.

Eric-the-Red-00 avatar Eric-the-Red-00 commented on August 15, 2024

OKOK,get到了,挺好的。
另,多个账户已经可以正常解析了,应该是v1.7.13-v1.7.18之中的某一个版本(不经意?)修复了问题。
后面再等几个版本我再来测试哈。

from wechatexporter.

BlueMatthew avatar BlueMatthew commented on August 15, 2024

OKOK,get到了,挺好的。
另,多个账户已经可以正常解析了,应该是v1.7.13-v1.7.18之中的某一个版本(不经意?)修复了问题。
后面再等几个版本我再来测试哈。

总算可以放下一块大石头了 :)

from wechatexporter.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.