Skip to content

Commit a2cd4b8

Browse files
committed
更新readme,同时支持获取聊天好友的最后聊天时间
1 parent a4bffe9 commit a2cd4b8

File tree

4 files changed

+28
-9
lines changed

4 files changed

+28
-9
lines changed

README.md

+7-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* @Date: 2023-02-17 18:04:27
44
* @version:
55
* @LastEditors: SpenserCai
6-
* @LastEditTime: 2023-02-20 16:06:13
6+
* @LastEditTime: 2023-02-21 15:28:09
77
* @Description: file content
88
-->
99
# GoWxDump
@@ -29,6 +29,12 @@ GoWxDump.exe
2929
### 1.支持获取数据目录
3030
### 2.支持自动解密
3131
由AdminTest0发布的<a href="https://mp.weixin.qq.com/s/4DbXOS5jDjJzM2PN0Mp2JA">解密脚本</a>翻译成Go语言而来,支持自动解密。
32+
### 3.支持交互式命令
33+
```bash
34+
show_info 获取微信基础信息
35+
decrypt 解密数据
36+
friends_list 获取好友列表 (目前支持:获取最近十个聊天的好友信息,需要解密后才能获取)
37+
```
3238
## 免责声明
3339
本项目仅允许在授权情况下对数据库进行备份,严禁用于非法目的,否则自行承担所有相关责任。使用该工具则代表默认同意该条款;
3440

Release/GoWxDump.exe

2.51 KB
Binary file not shown.

cmd_action.go

+10-3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"fmt"
66
"os"
77
"path/filepath"
8+
"time"
89
)
910

1011
func GetWeChatInfo() error {
@@ -132,9 +133,14 @@ func FriendsListCmd() {
132133
fmt.Println("GetNearChatFriends error: ", err)
133134
return
134135
}
136+
// fmt.Println(nearChatList)
135137
// 如果NearChatList不为空
136138
if len(nearChatList) > 0 {
137-
userList, err := weChatDb.GetFriendInfoListWithUserList(nearChatList)
139+
userNameList := make([]string, 0)
140+
for _, v := range nearChatList {
141+
userNameList = append(userNameList, v.Username)
142+
}
143+
userList, err := weChatDb.GetFriendInfoListWithUserList(userNameList)
138144
if err != nil {
139145
fmt.Println("GetFriendInfoListWithUserList error: ", err)
140146
return
@@ -143,8 +149,9 @@ func FriendsListCmd() {
143149
for _, v := range nearChatList {
144150
// 找到userList中Alias为v的元素
145151
for _, v1 := range userList {
146-
if v1.UserName == v {
147-
fmt.Printf("NickName: %s \nRemark: %s \nAlias: %s \nUserName: %s \n-------------------------------- \n", v1.NickName, v1.Remark, v1.Alias, v1.UserName)
152+
if v1.UserName == v.Username {
153+
lastTime := time.Unix(v.LastReadedCreateTime/1000, 0).Format("2006-01-02 15:04:05")
154+
fmt.Printf("NickName: %s \nRemark: %s \nAlias: %s \nUserName: %s \nLastTime: %s\n-------------------------------- \n", v1.NickName, v1.Remark, v1.Alias, v1.UserName, lastTime)
148155
break
149156
}
150157
}

db/db.go

+11-5
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* @Date: 2023-02-21 11:35:50
44
* @version:
55
* @LastEditors: SpenserCai
6-
* @LastEditTime: 2023-02-21 14:02:29
6+
* @LastEditTime: 2023-02-21 14:59:42
77
* @Description: file content
88
*/
99
package db
@@ -22,6 +22,12 @@ type FriendInfo struct {
2222
Remark string
2323
}
2424

25+
type ChatInfo struct {
26+
Username string
27+
LastReadedSvrId int64
28+
LastReadedCreateTime int64
29+
}
30+
2531
// 创建一个数据库操作对象
2632

2733
type WeChatDb struct {
@@ -58,14 +64,14 @@ func (w *WeChatDb) Close() error {
5864
}
5965

6066
// 查询最近聊天的好友
61-
func (w *WeChatDb) GetNearChatFriends(topNumber int) ([]string, error) {
67+
func (w *WeChatDb) GetNearChatFriends(topNumber int) ([]ChatInfo, error) {
6268
// 查询ChatInfo表,UserName中不含有@的,LastReadedCreateTime最大的前topNumber条记录,只需要UserName字段
63-
var userNameList []string
64-
err := w.Db.Table("ChatInfo").Select("UserName").Where("UserName NOT LIKE ?", "%@%").Order("LastReadedCreateTime DESC").Limit(topNumber).Find(&userNameList).Error
69+
var chatInfoList []ChatInfo
70+
err := w.Db.Table("ChatInfo").Where("UserName NOT LIKE ?", "%@%").Order("LastReadedCreateTime DESC").Limit(topNumber).Find(&chatInfoList).Error
6571
if err != nil {
6672
return nil, err
6773
}
68-
return userNameList, nil
74+
return chatInfoList, nil
6975
}
7076

7177
// 通过UserName列表查询好友详细信息

0 commit comments

Comments
 (0)