Fix the problem that members cannot be added when creating a group
This commit is contained in:
parent
8ff600bd23
commit
99c47fe6aa
|
@ -1151,9 +1151,7 @@ func (handler *CommandHandler) CommandCreate(ce *CommandEvent) {
|
|||
|
||||
handler.log.Debugln("Create Group", topic, "with", members)
|
||||
err := user.Conn.HandleGroupCreate(members)
|
||||
|
||||
inputArr := strings.Split(ce.Args[1], ",")
|
||||
inputArr = inputArr[1:]
|
||||
members = skype.Members{}
|
||||
for _, memberId := range inputArr {
|
||||
members.Members = append(members.Members, skype.Member{
|
||||
|
@ -1161,7 +1159,10 @@ func (handler *CommandHandler) CommandCreate(ce *CommandEvent) {
|
|||
Role: "Admin",
|
||||
})
|
||||
}
|
||||
err = user.Conn.AddMember(members, "")
|
||||
conversationId, ok := <-user.Conn.CreateChan
|
||||
if ok {
|
||||
err = user.Conn.AddMember(members, conversationId)
|
||||
}
|
||||
if err != nil {
|
||||
ce.Reply("Please confirm that parameters is correct.")
|
||||
} else {
|
||||
|
|
45
portal.go
45
portal.go
|
@ -752,10 +752,10 @@ func (portal *Portal) ChangeAdminStatus(jids []string, setAdmin bool) {
|
|||
//}
|
||||
|
||||
func (portal *Portal) membershipRemove(content string) {
|
||||
xmlFormat := skype.XmlContent{}
|
||||
xmlFormat := skype.XmlDeleteMember{}
|
||||
err := xml.Unmarshal([]byte(content), &xmlFormat)
|
||||
|
||||
member := portal.bridge.GetPuppetByJID(xmlFormat.Target)
|
||||
for _, target := range xmlFormat.Targets {
|
||||
member := portal.bridge.GetPuppetByJID(target)
|
||||
|
||||
memberMaxid := strings.Replace(string(member.MXID), "@skype&8:", "@skype&8-", 1)
|
||||
_, err = portal.MainIntent().KickUser(portal.MXID, &mautrix.ReqKickUser{
|
||||
|
@ -764,38 +764,21 @@ func (portal *Portal) membershipRemove(content string) {
|
|||
if err != nil {
|
||||
portal.log.Errorln("Error %v member from whatsapp:", err)
|
||||
}
|
||||
//for _, chat := range user.Conn.Store.Chats {
|
||||
// group := portal.bridge.GetPuppetByJID(chat.Id.(string))
|
||||
// fmt.Println("member")
|
||||
// fmt.Println(group)
|
||||
// fmt.Println("用户信息:")
|
||||
// fmt.Println(chat.Id.(string))
|
||||
//
|
||||
// if group == nil {
|
||||
// portal.log.Errorln("%s is not exist", jid)
|
||||
// continue
|
||||
// }
|
||||
// if group.JID == jid {
|
||||
// _, err := portal.MainIntent().KickUser(portal.MXID, &mautrix.ReqKickUser{
|
||||
// UserID: group.MXID,
|
||||
// })
|
||||
// if err != nil {
|
||||
// portal.log.Errorln("Error %v member from whatsapp:", err)
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
func (portal *Portal) membershipAdd(user *User, jid string) {
|
||||
chatMap := make(map[string]skype.Conversation)
|
||||
for _, chat := range user.Conn.Store.Chats {
|
||||
if chat.Id == jid {
|
||||
cid, _ := chat.Id.(string)
|
||||
chatMap[cid] = chat
|
||||
func (portal *Portal) membershipAdd(content string) {
|
||||
xmlFormat := skype.XmlAddMember{}
|
||||
err := xml.Unmarshal([]byte(content), &xmlFormat)
|
||||
|
||||
for _, target := range xmlFormat.Targets {
|
||||
puppet := portal.bridge.GetPuppetByJID(target)
|
||||
fmt.Println("membershipAdd puppet jid", target)
|
||||
err = puppet.IntentFor(portal).EnsureJoined(portal.MXID)
|
||||
if err != nil {
|
||||
portal.log.Errorln("Error %v joined member from skype:", err)
|
||||
}
|
||||
}
|
||||
fmt.Println("membershipAddzsl:", chatMap)
|
||||
user.syncPortals(chatMap, false)
|
||||
}
|
||||
|
||||
func (portal *Portal) membershipCreate(user *User, cmd skypeExt.ChatUpdate) {
|
||||
|
|
|
@ -285,13 +285,7 @@ func (ext *ExtendedConn) HandleGroupKick(groupJid string, numbers[]string) (err
|
|||
}
|
||||
|
||||
func (ext *ExtendedConn) HandleGroupCreate(numbers skype.Members) (err error) {
|
||||
//var parts []string
|
||||
//parts = append(parts, numbers...)
|
||||
err = ext.Conn.CreateConversationGroup(numbers)
|
||||
//if err != nil {
|
||||
// fmt.Printf("%s HandleGroupCreate err", err)
|
||||
//}
|
||||
return
|
||||
return ext.Conn.CreateConversationGroup(numbers)
|
||||
}
|
||||
|
||||
func (ext *ExtendedConn) HandleGroupLeave(groupJid string) (err error) {
|
||||
|
|
6
user.go
6
user.go
|
@ -1077,16 +1077,14 @@ func (user *User) HandleChatUpdate(cmd skype.Resource) {
|
|||
}
|
||||
go portal.UpdateAvatar(user, avatar)
|
||||
case skypeExt.ChatMemberAdd:
|
||||
fmt.Println("portal.MXID")
|
||||
fmt.Println(portal.MXID)
|
||||
fmt.Println(user)
|
||||
user.log.Debugfln("chat member add")
|
||||
if len(portal.MXID) == 0 {
|
||||
err := portal.CreateMatrixRoom(user)
|
||||
if err != nil {
|
||||
fmt.Println("create room failed")
|
||||
}
|
||||
}
|
||||
go portal.membershipAdd(user, cmd.Jid)
|
||||
go portal.membershipAdd(cmd.Content)
|
||||
case skypeExt.ChatMemberDelete:
|
||||
go portal.membershipRemove(cmd.Content)
|
||||
//case skypeExt.ChatActionAddTopic:
|
||||
|
|
Loading…
Reference in New Issue