-
Notifications
You must be signed in to change notification settings - Fork 2.7k
WIP: 保存历史记录 #159
base: master
Are you sure you want to change the base?
WIP: 保存历史记录 #159
Conversation
这个帅,但是貌似用处不大的样子。 |
@FradSer 😂,是Issues看到的,就pr了,也没时间跟进。 |
这个好东西. 周末我来合并到我的代码中试试. 登录时的用户ID会变. 但是uin不会变吖. 可以用uin来保存历史信息吧. |
@FradSer 对于用电脑时间长过于手机的我来说 非常有用. 手机上的wechat用的较少. 非工作时间就不用这货了. |
这个功能比较复杂,面向所有用户肯定是不合适的,看看以后有没有合适的方式可以添加。 |
希望能够有一个简单的logger一样的功能,把所有收到的response都缓存了,下次登录replay一遍 |
@eleveni386 uin不会变,但是每条微信消息中, 我的 fork https://github.com/dongyuwei/electronic-wechat 借鉴了 @iamcc 同学的部分思路,目前已经能保存文本和表情消息历史记录(图片消息还有问题),具体看 dongyuwei@594693e 这个提交。我的实现依赖于web微信暴露出的一个全局变量 如果哪天 |
@dongyuwei 你要说明依赖 localforage呢. 我就掉这个坑了.我拿你的代码,直接运行一直卡在splash. 后来无意中发现我没有localforage. |
如果把 electronic-wechat/package.json 中 |
re @eleveni386 看到 @dongyuwei 的 package.json 里有说明 localforage 的依赖呀,,, |
各位,我的fork https://github.com/dongyuwei/electronic-wechat 目前已经达到可用状态了,我测试了文本,图片,表情这几类聊天消息的存储和重新展现。存储使用IndexedDB(dexie.js),存储时按NickName+RemarkName及Content建了索引,所以理论上支持按照内容的关键词来搜索聊天历史记录。 |
@dongyuwei 如果希望这个功能进入主分支的话可以发一个 Pull Request ,过几天忙完了 merge 进来。 |
|
@geeeeeeeeek 功能可用不代表代码质量可接受,等我重构到自己满意了再提 Pull Request吧,谢谢。 @ripples-alive 改昵称了会有影响。可以通过db migration来迁移数据,这个理论上可行,实际上可能比较麻烦。效率应该不会有问题,IndexedDB值得信赖,咱还用了索引。目前存储的聊天消息中无用冗余字段比较多,如果简化一下应该能省不少存储空间。 |
@dongyuwei 好的,谢谢 |
@dongyuwei 饿,我提效率其实不是想说 db 的效率,大概是要说一些显示之类的效率,比如历史记录会显示多少,如果显示的多了的话你显示出来会不会太慢,导致界面卡神马的,如果只显示部分的话,我往回翻历史记录的时候,加载之前没显示的纪录效率如何之类的。 |
@ripples-alive 好问题,我还没有考虑这么多,目前是全部显示。数据多了怎么显示是个大问题。 |
@ripples-alive 你担心已经实现了. 因为@dongyuwei 是一次性加载所有历史记录. 所以导致了某个聊天对象窗口卡死. 可以考虑一次加载一部分. 当用户继续向上翻页时. 再加载一部分. 长度可以固定下来. 这样就完美了. |
弱弱问一下,现在可以存储历史聊天记录和历史文件了吗,可以的话,可以告诉怎么设置吗 |
@dongyuwei 有空的时候提个pr吧.:D |
@eleveni386 因为微信官方mac客户端可以记录聊天历史了,所以一直就没有动力继续了。我那个实现还有些bug。 |
@dongyuwei :( 我等Linuxer 还等待解救. 你那个实现 存在单用户历史消息过多而卡死界面问题. 如果可以分页滚动显示历史消息就不会卡死界面, 就完美了. 可惜我不会electron和nodejs. |
8102年前来考古 |
WIP:提供一个保存历史记录的思路,但是目前存在问题,每次登录的时候用户ID都会变。