move nsfw to command package
This commit is contained in:
73
cmd/nsfw.go
Normal file
73
cmd/nsfw.go
Normal file
@ -0,0 +1,73 @@
|
||||
package cmd
|
||||
|
||||
import (
|
||||
"github.com/kf5grd/keybasebot"
|
||||
"github.com/kf5grd/keybasebot/pkg/kvstore"
|
||||
"samhofi.us/x/keybase/v2/types/chat1"
|
||||
)
|
||||
|
||||
var NsfwAd = chat1.UserBotCommandInput{
|
||||
Name: "nsfw",
|
||||
Usage: "<add/del> <here,convid>",
|
||||
Description: "Enables or Disables NSFW commands for conversations",
|
||||
}
|
||||
|
||||
func SetNsfw(m chat1.MsgSummary, b *keybasebot.Bot) (bool, error) {
|
||||
b.KB.SendMessageByConvID(m.ConvID, "Pong!")
|
||||
b.Logger.Info("owner command in convid %s", m.ConvID)
|
||||
return true, nil
|
||||
}
|
||||
|
||||
func addNsfwTeam(b *keybasebot.Bot, c chat1.ConvIDStr) bool {
|
||||
allowedTeams := make(map[chat1.ConvIDStr]bool)
|
||||
// get the allowed teams
|
||||
data, ok := b.Meta["nsfwAllowed"]
|
||||
if !ok {
|
||||
// the key doesn't exist yet so go ahead and create it
|
||||
allowedTeams[c] = true
|
||||
} else {
|
||||
// the key exists and needs to be updated
|
||||
allowedTeams := data.(map[chat1.ConvIDStr]bool)
|
||||
allowedTeams[c] = true
|
||||
}
|
||||
// write the key to meta
|
||||
b.Meta["nsfwAllowed"] = allowedTeams
|
||||
// write the key to kvStore if enabled
|
||||
data, ok = b.Meta["kvstore"]
|
||||
if ok {
|
||||
team := data.(string)
|
||||
kvKey := kvstore.New("nsfwAllowed", allowedTeams, -1)
|
||||
err := kvstore.Put(b.KB, team, "ssh0le", kvKey)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
func delNsfwTeam(b *keybasebot.Bot, c chat1.ConvIDStr) bool {
|
||||
allowedTeams := make(map[chat1.ConvIDStr]bool)
|
||||
// get the allowed teams
|
||||
data, ok := b.Meta["nsfwAllowed"]
|
||||
if !ok {
|
||||
// the key doesn't exist yet so go return
|
||||
return true
|
||||
} else {
|
||||
// the key exists and needs to be updated
|
||||
allowedTeams := data.(map[chat1.ConvIDStr]bool)
|
||||
delete(allowedTeams, c)
|
||||
}
|
||||
// write the key to meta
|
||||
b.Meta["nsfwAllowed"] = allowedTeams
|
||||
// write the key to kvStore if enabled
|
||||
data, ok = b.Meta["kvstore"]
|
||||
if ok {
|
||||
team := data.(string)
|
||||
kvKey := kvstore.New("nsfwAllowed", allowedTeams, -1)
|
||||
err := kvstore.Put(b.KB, team, "ssh0le", kvKey)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
Reference in New Issue
Block a user