From 2ee66cb6bc81d7ab20a63bc9c2c676ed7214db94 Mon Sep 17 00:00:00 2001 From: nexy7574 Date: Sun, 12 Jan 2025 15:49:07 +0000 Subject: [PATCH] Make reason optional --- pkg/hicli/send.go | 38 ++++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/pkg/hicli/send.go b/pkg/hicli/send.go index fabba2b..250d19a 100644 --- a/pkg/hicli/send.go +++ b/pkg/hicli/send.go @@ -106,18 +106,27 @@ func (h *HiClient) SendMessage( if strings.HasPrefix(text, "/ban ") { text = strings.TrimPrefix(text, "/ban ") parts := strings.SplitN(text, " ", 1) // mxid, reason - if len(parts) < 1 || len(parts[0]) == 0 { + // reason is optional + if len(parts) < 1 { return nil, fmt.Errorf("invalid /ban command") } - content := event.MemberEventContent{ - Membership: event.MembershipBan, - Reason: parts[1], + 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}, - parts[0], + mxid, content, ) return nil, err @@ -125,18 +134,23 @@ func (h *HiClient) SendMessage( if strings.HasPrefix(text, "/kick ") { text = strings.TrimPrefix(text, "/kick ") parts := strings.SplitN(text, " ", 2) // mxid, reason - if len(parts) < 1 || len(parts[0]) == 0 { - return nil, fmt.Errorf("invalid /kick command") - } - content := event.MemberEventContent{ - Membership: event.MembershipLeave, - Reason: parts[1], + 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}, - parts[0], + mxid, content, ) return nil, err