mirror of
https://github.com/tulir/gomuks.git
synced 2025-04-20 18:43:41 -05:00
Unify invite/ban/kick commands
This commit is contained in:
parent
a267516b14
commit
7195a086b3
1 changed files with 23 additions and 63 deletions
|
@ -103,24 +103,20 @@ func (h *HiClient) SendMessage(
|
|||
_, err := h.SetState(ctx, roomID, event.Type{Type: parts[1], Class: event.StateEventType}, parts[2], content)
|
||||
return nil, err
|
||||
}
|
||||
if strings.HasPrefix(text, "/ban ") {
|
||||
text = strings.TrimPrefix(text, "/ban ")
|
||||
parts := strings.SplitN(text, " ", 1) // mxid, reason
|
||||
// reason is optional
|
||||
if len(parts) < 1 {
|
||||
return nil, fmt.Errorf("invalid /ban command")
|
||||
}
|
||||
for _, state := range []string{"/invite ", "/ban ", "/kick "} {
|
||||
if strings.HasPrefix(text, state) {
|
||||
text = strings.TrimPrefix(text, state)
|
||||
parts := strings.SplitN(text, " ", 1)
|
||||
mxid := parts[0]
|
||||
var content event.MemberEventContent
|
||||
content := event.MemberEventContent{}
|
||||
memberships := map[string]event.Membership{
|
||||
"/invite ": event.MembershipInvite,
|
||||
"/ban ": event.MembershipBan,
|
||||
"/kick ": event.MembershipLeave,
|
||||
}
|
||||
content.Membership = memberships[state]
|
||||
if len(parts) == 2 {
|
||||
content = event.MemberEventContent{
|
||||
Membership: event.MembershipBan,
|
||||
Reason: parts[1],
|
||||
}
|
||||
} else {
|
||||
content = event.MemberEventContent{
|
||||
Membership: event.MembershipBan,
|
||||
}
|
||||
content.Reason = parts[1]
|
||||
}
|
||||
_, err := h.SetState(
|
||||
ctx,
|
||||
|
@ -131,42 +127,6 @@ func (h *HiClient) SendMessage(
|
|||
)
|
||||
return nil, err
|
||||
}
|
||||
if strings.HasPrefix(text, "/kick ") {
|
||||
text = strings.TrimPrefix(text, "/kick ")
|
||||
parts := strings.SplitN(text, " ", 2) // mxid, reason
|
||||
mxid := parts[0]
|
||||
var content event.MemberEventContent
|
||||
if len(parts) == 2 {
|
||||
content = event.MemberEventContent{
|
||||
Membership: event.MembershipLeave,
|
||||
Reason: parts[1],
|
||||
}
|
||||
} else {
|
||||
content = event.MemberEventContent{
|
||||
Membership: event.MembershipLeave,
|
||||
}
|
||||
}
|
||||
_, err := h.SetState(
|
||||
ctx,
|
||||
roomID,
|
||||
event.Type{Type: "m.room.member", Class: event.StateEventType},
|
||||
mxid,
|
||||
content,
|
||||
)
|
||||
return nil, err
|
||||
}
|
||||
if strings.HasPrefix(text, "/invite ") {
|
||||
text = strings.TrimPrefix(text, "/invite ")
|
||||
_, err := h.SetState(
|
||||
ctx,
|
||||
roomID,
|
||||
event.Type{Type: "m.room.member", Class: event.StateEventType},
|
||||
text,
|
||||
event.MemberEventContent{
|
||||
Membership: event.MembershipInvite,
|
||||
},
|
||||
)
|
||||
return nil, err
|
||||
}
|
||||
var content event.MessageEventContent
|
||||
msgType := event.MsgText
|
||||
|
|
Loading…
Add table
Reference in a new issue