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)
|
handler.log.Debugln("Create Group", topic, "with", members)
|
||||||
err := user.Conn.HandleGroupCreate(members)
|
err := user.Conn.HandleGroupCreate(members)
|
||||||
|
|
||||||
inputArr := strings.Split(ce.Args[1], ",")
|
inputArr := strings.Split(ce.Args[1], ",")
|
||||||
inputArr = inputArr[1:]
|
|
||||||
members = skype.Members{}
|
members = skype.Members{}
|
||||||
for _, memberId := range inputArr {
|
for _, memberId := range inputArr {
|
||||||
members.Members = append(members.Members, skype.Member{
|
members.Members = append(members.Members, skype.Member{
|
||||||
|
@ -1161,7 +1159,10 @@ func (handler *CommandHandler) CommandCreate(ce *CommandEvent) {
|
||||||
Role: "Admin",
|
Role: "Admin",
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
err = user.Conn.AddMember(members, "")
|
conversationId, ok := <-user.Conn.CreateChan
|
||||||
|
if ok {
|
||||||
|
err = user.Conn.AddMember(members, conversationId)
|
||||||
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ce.Reply("Please confirm that parameters is correct.")
|
ce.Reply("Please confirm that parameters is correct.")
|
||||||
} else {
|
} 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) {
|
func (portal *Portal) membershipRemove(content string) {
|
||||||
xmlFormat := skype.XmlContent{}
|
xmlFormat := skype.XmlDeleteMember{}
|
||||||
err := xml.Unmarshal([]byte(content), &xmlFormat)
|
err := xml.Unmarshal([]byte(content), &xmlFormat)
|
||||||
|
for _, target := range xmlFormat.Targets {
|
||||||
member := portal.bridge.GetPuppetByJID(xmlFormat.Target)
|
member := portal.bridge.GetPuppetByJID(target)
|
||||||
|
|
||||||
memberMaxid := strings.Replace(string(member.MXID), "@skype&8:", "@skype&8-", 1)
|
memberMaxid := strings.Replace(string(member.MXID), "@skype&8:", "@skype&8-", 1)
|
||||||
_, err = portal.MainIntent().KickUser(portal.MXID, &mautrix.ReqKickUser{
|
_, err = portal.MainIntent().KickUser(portal.MXID, &mautrix.ReqKickUser{
|
||||||
|
@ -764,38 +764,21 @@ func (portal *Portal) membershipRemove(content string) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
portal.log.Errorln("Error %v member from whatsapp:", err)
|
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) {
|
func (portal *Portal) membershipAdd(content string) {
|
||||||
chatMap := make(map[string]skype.Conversation)
|
xmlFormat := skype.XmlAddMember{}
|
||||||
for _, chat := range user.Conn.Store.Chats {
|
err := xml.Unmarshal([]byte(content), &xmlFormat)
|
||||||
if chat.Id == jid {
|
|
||||||
cid, _ := chat.Id.(string)
|
for _, target := range xmlFormat.Targets {
|
||||||
chatMap[cid] = chat
|
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) {
|
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) {
|
func (ext *ExtendedConn) HandleGroupCreate(numbers skype.Members) (err error) {
|
||||||
//var parts []string
|
return ext.Conn.CreateConversationGroup(numbers)
|
||||||
//parts = append(parts, numbers...)
|
|
||||||
err = ext.Conn.CreateConversationGroup(numbers)
|
|
||||||
//if err != nil {
|
|
||||||
// fmt.Printf("%s HandleGroupCreate err", err)
|
|
||||||
//}
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ext *ExtendedConn) HandleGroupLeave(groupJid string) (err error) {
|
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)
|
go portal.UpdateAvatar(user, avatar)
|
||||||
case skypeExt.ChatMemberAdd:
|
case skypeExt.ChatMemberAdd:
|
||||||
fmt.Println("portal.MXID")
|
user.log.Debugfln("chat member add")
|
||||||
fmt.Println(portal.MXID)
|
|
||||||
fmt.Println(user)
|
|
||||||
if len(portal.MXID) == 0 {
|
if len(portal.MXID) == 0 {
|
||||||
err := portal.CreateMatrixRoom(user)
|
err := portal.CreateMatrixRoom(user)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("create room failed")
|
fmt.Println("create room failed")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
go portal.membershipAdd(user, cmd.Jid)
|
go portal.membershipAdd(cmd.Content)
|
||||||
case skypeExt.ChatMemberDelete:
|
case skypeExt.ChatMemberDelete:
|
||||||
go portal.membershipRemove(cmd.Content)
|
go portal.membershipRemove(cmd.Content)
|
||||||
//case skypeExt.ChatActionAddTopic:
|
//case skypeExt.ChatActionAddTopic:
|
||||||
|
|
Loading…
Reference in New Issue