github.com/keybase/client/go@v0.0.0-20240309051027-028f7c731f8b/chat/commands/shrug.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/protocol/chat1" 8 "github.com/keybase/client/go/protocol/gregor1" 9 ) 10 11 type Shrug struct { 12 *baseCommand 13 } 14 15 func NewShrug(g *globals.Context) *Shrug { 16 return &Shrug{ 17 baseCommand: newBaseCommand(g, "shrug", "", `Appends ¯\_(ツ)_/¯ to your message`, false), 18 } 19 } 20 21 func (s *Shrug) Execute(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID, 22 tlfName, text string, replyTo *chat1.MessageID) (err error) { 23 defer s.Trace(ctx, &err, "Execute")() 24 if !s.Match(ctx, text) { 25 return ErrInvalidCommand 26 } 27 _, msg, err := s.commandAndMessage(text) 28 if err != nil { 29 return err 30 } 31 res := `¯\_(ツ)_/¯` 32 if len(msg) > 0 { 33 res = msg + " " + res 34 } 35 _, err = s.G().ChatHelper.SendTextByIDNonblock(ctx, convID, tlfName, res, nil, replyTo) 36 return err 37 }