diff --git a/internal/wechatdb/datasource/darwinv3/datasource.go b/internal/wechatdb/datasource/darwinv3/datasource.go index 3171f35..26f9cf3 100644 --- a/internal/wechatdb/datasource/darwinv3/datasource.go +++ b/internal/wechatdb/datasource/darwinv3/datasource.go @@ -25,7 +25,7 @@ const ( Media = "media" ) -var Groups = []dbm.Group{ +var Groups = []*dbm.Group{ { Name: Message, Pattern: `^msg_([0-9]?[0-9])?\.db$`, @@ -114,6 +114,10 @@ func (ds *DataSource) initMessageDbs() error { dbPaths, err := ds.dbm.GetDBPath(Message) if err != nil { + if strings.Contains(err.Error(), "db file not found") { + ds.talkerDBMap = make(map[string]string) + return nil + } return err } // 处理每个数据库文件 @@ -155,6 +159,10 @@ func (ds *DataSource) initMessageDbs() error { func (ds *DataSource) initChatRoomDb() error { db, err := ds.dbm.GetDB(ChatRoom) if err != nil { + if strings.Contains(err.Error(), "db file not found") { + ds.user2DisplayName = make(map[string]string) + return nil + } return err } diff --git a/internal/wechatdb/datasource/dbm/dbm.go b/internal/wechatdb/datasource/dbm/dbm.go index fc4efd9..f3f1fd7 100644 --- a/internal/wechatdb/datasource/dbm/dbm.go +++ b/internal/wechatdb/datasource/dbm/dbm.go @@ -34,7 +34,7 @@ func NewDBManager(path string) *DBManager { } } -func (d *DBManager) AddGroup(g Group) error { +func (d *DBManager) AddGroup(g *Group) error { fg, err := filemonitor.NewFileGroup(g.Name, d.path, g.Pattern, g.BlackList) if err != nil { return err diff --git a/internal/wechatdb/datasource/dbm/dbm_test.go b/internal/wechatdb/datasource/dbm/dbm_test.go index 25764a9..67aa9db 100644 --- a/internal/wechatdb/datasource/dbm/dbm_test.go +++ b/internal/wechatdb/datasource/dbm/dbm_test.go @@ -9,7 +9,7 @@ import ( func TestXxx(t *testing.T) { path := "/Users/sarv/Documents/chatlog/bigjun_9e7a" - g := Group{ + g := &Group{ Name: "session", Pattern: `session\.db$`, BlackList: []string{}, diff --git a/internal/wechatdb/datasource/v4/datasource.go b/internal/wechatdb/datasource/v4/datasource.go index f330956..b837047 100644 --- a/internal/wechatdb/datasource/v4/datasource.go +++ b/internal/wechatdb/datasource/v4/datasource.go @@ -27,7 +27,7 @@ const ( Voice = "voice" ) -var Groups = []dbm.Group{ +var Groups = []*dbm.Group{ { Name: Message, Pattern: `^message_([0-9]?[0-9])?\.db$`, @@ -113,6 +113,10 @@ func (ds *DataSource) SetCallback(name string, callback func(event fsnotify.Even func (ds *DataSource) initMessageDbs() error { dbPaths, err := ds.dbm.GetDBPath(Message) if err != nil { + if strings.Contains(err.Error(), "db file not found") { + ds.messageInfos = make([]MessageDBInfo, 0) + return nil + } return err } diff --git a/internal/wechatdb/datasource/windowsv3/datasource.go b/internal/wechatdb/datasource/windowsv3/datasource.go index 92d62e4..eeeb17e 100644 --- a/internal/wechatdb/datasource/windowsv3/datasource.go +++ b/internal/wechatdb/datasource/windowsv3/datasource.go @@ -27,7 +27,7 @@ const ( Voice = "voice" ) -var Groups = []dbm.Group{ +var Groups = []*dbm.Group{ { Name: Message, Pattern: `^MSG([0-9]?[0-9])?\.db$`, @@ -122,6 +122,10 @@ func (ds *DataSource) initMessageDbs() error { // 获取所有消息数据库文件路径 dbPaths, err := ds.dbm.GetDBPath(Message) if err != nil { + if strings.Contains(err.Error(), "db file not found") { + ds.messageInfos = make([]MessageDBInfo, 0) + return nil + } return err }