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,70 +103,30 @@ func (h *HiClient) SendMessage(
|
||||||
_, err := h.SetState(ctx, roomID, event.Type{Type: parts[1], Class: event.StateEventType}, parts[2], content)
|
_, err := h.SetState(ctx, roomID, event.Type{Type: parts[1], Class: event.StateEventType}, parts[2], content)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if strings.HasPrefix(text, "/ban ") {
|
for _, state := range []string{"/invite ", "/ban ", "/kick "} {
|
||||||
text = strings.TrimPrefix(text, "/ban ")
|
if strings.HasPrefix(text, state) {
|
||||||
parts := strings.SplitN(text, " ", 1) // mxid, reason
|
text = strings.TrimPrefix(text, state)
|
||||||
// reason is optional
|
parts := strings.SplitN(text, " ", 1)
|
||||||
if len(parts) < 1 {
|
mxid := parts[0]
|
||||||
return nil, fmt.Errorf("invalid /ban command")
|
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.Reason = parts[1]
|
||||||
|
}
|
||||||
|
_, err := h.SetState(
|
||||||
|
ctx,
|
||||||
|
roomID,
|
||||||
|
event.Type{Type: "m.room.member", Class: event.StateEventType},
|
||||||
|
mxid,
|
||||||
|
content,
|
||||||
|
)
|
||||||
|
return nil, err
|
||||||
}
|
}
|
||||||
mxid := parts[0]
|
|
||||||
var content event.MemberEventContent
|
|
||||||
if len(parts) == 2 {
|
|
||||||
content = event.MemberEventContent{
|
|
||||||
Membership: event.MembershipBan,
|
|
||||||
Reason: parts[1],
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
content = event.MemberEventContent{
|
|
||||||
Membership: event.MembershipBan,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
_, err := h.SetState(
|
|
||||||
ctx,
|
|
||||||
roomID,
|
|
||||||
event.Type{Type: "m.room.member", Class: event.StateEventType},
|
|
||||||
mxid,
|
|
||||||
content,
|
|
||||||
)
|
|
||||||
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
|
var content event.MessageEventContent
|
||||||
msgType := event.MsgText
|
msgType := event.MsgText
|
||||||
|
|
Loading…
Add table
Reference in a new issue