You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
1.9 KiB
73 lines
1.9 KiB
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 |
|
}
|
|
|