github.com/keybase/client/go@v0.0.0-20240309051027-028f7c731f8b/chat/commands/headline.go (about) 1 package commands 2 3 import ( 4 "context" 5 6 "github.com/keybase/client/go/chat/globals" 7 "github.com/keybase/client/go/chat/types" 8 "github.com/keybase/client/go/chat/utils" 9 "github.com/keybase/client/go/protocol/chat1" 10 "github.com/keybase/client/go/protocol/gregor1" 11 ) 12 13 type Headline struct { 14 *baseCommand 15 } 16 17 func NewHeadline(g *globals.Context) *Headline { 18 return &Headline{ 19 baseCommand: newBaseCommand(g, "headline", "<description>", 20 "Set the team channel topic", false, "topic"), 21 } 22 } 23 24 func (s *Headline) Execute(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID, 25 tlfName, text string, replyTo *chat1.MessageID) (err error) { 26 defer s.Trace(ctx, &err, "Execute")() 27 if !s.Match(ctx, text) { 28 return ErrInvalidCommand 29 } 30 defer func() { 31 if err != nil { 32 _ = s.getChatUI().ChatCommandStatus(ctx, convID, "Failed to set channel headline", 33 chat1.UICommandStatusDisplayTyp_ERROR, nil) 34 } 35 }() 36 _, msg, err := s.commandAndMessage(text) 37 if err != nil { 38 return err 39 } 40 conv, err := utils.GetVerifiedConv(ctx, s.G(), uid, convID, types.InboxSourceDataSourceAll) 41 if err != nil { 42 return err 43 } 44 return s.G().ChatHelper.SendMsgByID(ctx, convID, tlfName, 45 chat1.NewMessageBodyWithHeadline(chat1.MessageHeadline{ 46 Headline: msg, 47 }), chat1.MessageType_HEADLINE, conv.Info.Visibility) 48 }