Working double puppeting

This commit is contained in:
2023-09-11 21:58:26 -05:00
parent d9fc3014b4
commit 9fdf405504
4 changed files with 125 additions and 67 deletions

53
user.go
View File

@@ -102,12 +102,6 @@ func (cl ChatList) Swap(i, j int) {
cl[i], cl[j] = cl[j], cl[i]
}
type FakeMessage struct {
Text string
ID string
Alert bool
}
// Public Properties
func (user *User) GetPermissionLevel() bridgeconfig.PermissionLevel {
@@ -471,7 +465,13 @@ func (user *User) HandleChatList() {
user.log.Errorln("chat sync error", err) //TODO: handle
return
}
user.log.Debugln("Group")
for _, chat := range chats {
user.log.Debugln(" " + chat.Name)
for _, mem := range chat.Members {
user.log.Debugln(" " + mem.Nickname)
}
chatMap[chat.ID] = chat
}
user.GroupList = chatMap
@@ -487,24 +487,22 @@ func (user *User) HandleChatList() {
}
user.ChatList = dmMap
//userMap := map[groupme.ID]groupme.User{}
//users, err := user.Client.IndexAllRelations()
//if err != nil {
// user.log.Errorln("Error syncing user list, continuing sync", err)
//}
//fmt.Println("Relations:")
//for _, u := range users {
// fmt.Println(" " + u.ID.String() + " " + u.Name)
// puppet := user.bridge.GetPuppetByGMID(u.ID)
// // "" for overall user not related to one group
// puppet.Sync(user, &groupme.Member{
// UserID: u.ID,
// Nickname: u.Name,
// ImageURL: u.AvatarURL,
// }, false, false)
// userMap[u.ID] = *u
//}
//user.RelationList = userMap
userMap := map[groupme.ID]*groupme.User{}
users, err := user.Client.IndexAllRelations()
if err != nil {
user.log.Errorln("Error syncing user list, continuing sync", err)
}
for _, u := range users {
puppet := user.bridge.GetPuppetByGMID(u.ID)
// "" for overall user not related to one group
puppet.Sync(user, &groupme.Member{
UserID: u.ID,
Nickname: u.Name,
ImageURL: u.AvatarURL,
}, false, false)
userMap[u.ID] = u
}
user.RelationList = userMap
user.log.Infoln("Chat list received")
user.chatListReceived <- struct{}{}
@@ -527,10 +525,6 @@ func (user *User) handleMessageLoop() {
ImageURL: msg.data.AvatarURL,
}, false, false)
}
//err := puppet.IntentFor(portal).EnsureJoined(portal.MXID)
//if err != nil {
// user.log.Warnln("Unable to ensure user puppet joined")
//}
portal.messages <- msg
case <-user.syncStart:
user.log.Debugln("Processing of incoming messages is locked")
@@ -790,7 +784,8 @@ func (user *User) getDirectChats() map[id.UserID][]id.RoomID {
return res
}
func (user *User) updateAvatar(gmdi groupme.ID, avatarID *string, avatarURL *id.ContentURI, avatarSet *bool, log log.Logger, intent *appservice.IntentAPI) bool {
func (user *User) updateAvatar(gmdi groupme.ID, avatarID *string, avatarURL *id.ContentURI, avatarSet *bool,
log log.Logger, intent *appservice.IntentAPI) bool {
return false
}