Files
chatlog/internal/model/chatroom_darwinv3.go
Shen Junzheng 80c7e67106 x
2025-03-24 22:42:31 +08:00

98 lines
3.3 KiB
Go

package model
import "strings"
// CREATE TABLE GroupContact(
// m_nsUsrName TEXT PRIMARY KEY ASC,
// m_uiConType INTEGER,
// nickname TEXT,
// m_nsFullPY TEXT,
// m_nsShortPY TEXT,
// m_nsRemark TEXT,
// m_nsRemarkPYFull TEXT,
// m_nsRemarkPYShort TEXT,
// m_uiCertificationFlag INTEGER,
// m_uiSex INTEGER,
// m_uiType INTEGER,
// m_nsImgStatus TEXT,
// m_uiImgKey INTEGER,
// m_nsHeadImgUrl TEXT,
// m_nsHeadHDImgUrl TEXT,
// m_nsHeadHDMd5 TEXT,
// m_nsChatRoomMemList TEXT,
// m_nsChatRoomAdminList TEXT,
// m_uiChatRoomStatus INTEGER,
// m_nsChatRoomDesc TEXT,
// m_nsDraft TEXT,
// m_nsBrandIconUrl TEXT,
// m_nsGoogleContactName TEXT,
// m_nsAliasName TEXT,
// m_nsEncodeUserName TEXT,
// m_uiChatRoomVersion INTEGER,
// m_uiChatRoomMaxCount INTEGER,
// m_uiChatRoomType INTEGER,
// m_patSuffix TEXT,
// richChatRoomDesc TEXT,
// _packed_WCContactData BLOB,
// openIMInfo BLOB
// )
type ChatRoomDarwinV3 struct {
M_nsUsrName string `json:"m_nsUsrName"`
Nickname string `json:"nickname"`
M_nsRemark string `json:"m_nsRemark"`
M_nsChatRoomMemList string `json:"m_nsChatRoomMemList"`
M_nsChatRoomAdminList string `json:"m_nsChatRoomAdminList"`
// M_uiConType int `json:"m_uiConType"`
// M_nsFullPY string `json:"m_nsFullPY"`
// M_nsShortPY string `json:"m_nsShortPY"`
// M_nsRemarkPYFull string `json:"m_nsRemarkPYFull"`
// M_nsRemarkPYShort string `json:"m_nsRemarkPYShort"`
// M_uiCertificationFlag int `json:"m_uiCertificationFlag"`
// M_uiSex int `json:"m_uiSex"`
// M_uiType int `json:"m_uiType"`
// M_nsImgStatus string `json:"m_nsImgStatus"`
// M_uiImgKey int `json:"m_uiImgKey"`
// M_nsHeadImgUrl string `json:"m_nsHeadImgUrl"`
// M_nsHeadHDImgUrl string `json:"m_nsHeadHDImgUrl"`
// M_nsHeadHDMd5 string `json:"m_nsHeadHDMd5"`
// M_uiChatRoomStatus int `json:"m_uiChatRoomStatus"`
// M_nsChatRoomDesc string `json:"m_nsChatRoomDesc"`
// M_nsDraft string `json:"m_nsDraft"`
// M_nsBrandIconUrl string `json:"m_nsBrandIconUrl"`
// M_nsGoogleContactName string `json:"m_nsGoogleContactName"`
// M_nsAliasName string `json:"m_nsAliasName"`
// M_nsEncodeUserName string `json:"m_nsEncodeUserName"`
// M_uiChatRoomVersion int `json:"m_uiChatRoomVersion"`
// M_uiChatRoomMaxCount int `json:"m_uiChatRoomMaxCount"`
// M_uiChatRoomType int `json:"m_uiChatRoomType"`
// M_patSuffix string `json:"m_patSuffix"`
// RichChatRoomDesc string `json:"richChatRoomDesc"`
// Packed_WCContactData []byte `json:"_packed_WCContactData"`
// OpenIMInfo []byte `json:"openIMInfo"`
}
func (c *ChatRoomDarwinV3) Wrap(user2DisplayName map[string]string) *ChatRoom {
split := strings.Split(c.M_nsChatRoomMemList, ";")
users := make([]ChatRoomUser, 0, len(split))
_user2DisplayName := make(map[string]string)
for _, v := range split {
users = append(users, ChatRoomUser{
UserName: v,
})
if name, ok := user2DisplayName[v]; ok {
_user2DisplayName[v] = name
}
}
return &ChatRoom{
Name: c.M_nsUsrName,
Owner: c.M_nsChatRoomAdminList,
Remark: c.M_nsRemark,
NickName: c.Nickname,
Users: users,
User2DisplayName: _user2DisplayName,
}
}