diff --git a/cmd/nsfw.go b/cmd/nsfw.go index c611be2..f45b9b3 100644 --- a/cmd/nsfw.go +++ b/cmd/nsfw.go @@ -79,7 +79,11 @@ func addNsfwTeam(b *keybasebot.Bot, c chat1.ConvIDStr) bool { // the key doesn't exist yet so go ahead and create it allowedTeams[c] = true } else { - // the key exists and needs to be updated + // the key exists + if allowedTeams[c] == true { + // its already allowed so just return + return true + } allowedTeams = data.(map[chat1.ConvIDStr]bool) allowedTeams[c] = true } @@ -95,6 +99,19 @@ func addNsfwTeam(b *keybasebot.Bot, c chat1.ConvIDStr) bool { return false } } + // now we need to add the key to the Commands/Ads and re-advertise + b.ClearCommands() + b.Commands = append(b.Commands, + keybasebot.BotCommand{ + Name: "boobs", + Ad: &BoobsAd, + AdType: "conv", + AdTeamName: "", + AdConv: c, + Run: FakeNsfwAction, + }, + ) + b.AdvertiseCommands() return true } @@ -122,9 +139,23 @@ func delNsfwTeam(b *keybasebot.Bot, c chat1.ConvIDStr) bool { return false } } + // then delete the advertisement + b.ClearCommands() + oldCommands := b.Commands + b.Commands = nil + for _, cmd := range oldCommands { + if cmd.AdConv != c { + b.Commands = append(b.Commands, cmd) + } + } + b.AdvertiseCommands() return true } +func FakeNsfwAction(m chat1.MsgSummary, b *keybasebot.Bot) (bool, error) { + return false, nil +} + func isConversationId(s string) bool { if len(s) != 64 { return false diff --git a/main.go b/main.go index efed0b2..047b75d 100644 --- a/main.go +++ b/main.go @@ -96,7 +96,7 @@ func run(c *cli.Context) error { // set reddit login, which enables reddit commands if c.String("reddit-user") != "" && c.String("reddit-pass") != "" { b.Meta["reddit-user"] = c.String("reddit-user") - b.Meta["reddit-pass"] = c.String("reddit-user") + b.Meta["reddit-pass"] = c.String("reddit-pass") } // register the bot commands @@ -183,11 +183,12 @@ func run(c *cli.Context) error { fmt.Printf("NSFW allowed in %s\n", string(convID)) b.Commands = append(b.Commands, keybasebot.BotCommand{ - Name: "boobs", - Ad: &cmd.BoobsAd, - AdType: "conv", - AdConv: convID, - Run: fakeAction, + Name: "boobs", + Ad: &cmd.BoobsAd, + AdType: "conv", + AdTeamName: "", + AdConv: convID, + Run: cmd.FakeNsfwAction, }, ) } @@ -226,7 +227,3 @@ func loadNsfwAllowed(b *keybasebot.Bot) (allowedTeams map[chat1.ConvIDStr]bool) } return } - -func fakeAction(m chat1.MsgSummary, b *keybasebot.Bot) (bool, error) { - return false, nil -}