From 9d68d4bf21507a733ca2f836241cc6e4be52dbc4 Mon Sep 17 00:00:00 2001 From: Steve McCoy Date: Tue, 28 Aug 2018 15:03:54 -0400 Subject: [PATCH] I did only as catbase commanded, and made it worse --- plugins/picker/picker.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/plugins/picker/picker.go b/plugins/picker/picker.go index c242f6e..55060b5 100644 --- a/plugins/picker/picker.go +++ b/plugins/picker/picker.go @@ -39,6 +39,36 @@ func (p *PickerPlugin) Message(message msg.Message) bool { p.Bot.SendMessage(message.Channel, out) + return true + } else if strings.HasPrefix(body, "pick") && strings.HasSuffix(body, sfx) { + var n int + var q string + _, err := fmt.Sscanf(body, "pick %d %s", n, q) + if err != nil || q != "{" { + return false + } + + prefix := fmt.Sprintf("pick %d %s", n, q) + body = strings.TrimSuffix(strings.TrimPrefix(body, prefix), sfx) + + items := strings.Split(body, ",") + if n < 1 || n > len(items) { + return false + } + + rand.Shuffle(len(items), func(i, j int) { + items[i], items[j] = items[j], items[i] + }) + items = items[:n] + + var b strings.Builder + b.WriteString("I've chosen these hot picks for you: { ") + for _, item := range items { + fmt.Fprintf(&b, "%q ", item) + } + b.WriteString("}") + p.Bot.SendMessage(message.Channel, b.String()) + return true } return false