khatru-pyramid/utils.go

49 lines
933 B
Go
Raw Normal View History

2023-09-06 20:49:18 +02:00
package main
2023-09-13 19:48:24 +02:00
import (
"context"
"github.com/nbd-wtf/go-nostr"
)
2023-09-06 20:49:18 +02:00
func isPkInWhitelist(targetPk string) bool {
for i := 0; i < len(whitelist); i++ {
if whitelist[i].Pk == targetPk {
return true
}
}
return false
}
func deleteFromWhitelistRecursively (target string) {
var updatedWhitelist []User
var queue []string
2023-09-13 19:48:24 +02:00
// Remove from whitelist
2023-09-06 20:49:18 +02:00
for _, user := range whitelist {
if user.Pk != target {
updatedWhitelist = append(updatedWhitelist, user)
}
if user.InvitedBy == target {
queue = append(queue, user.Pk);
}
}
whitelist = updatedWhitelist
2023-09-13 19:48:24 +02:00
// Remove all events
go func () {
var filter nostr.Filter = nostr.Filter{
Authors: []string{target},
}
events, _ := db.QueryEvents(context.TODO(), filter)
for ev := range events {
db.DeleteEvent(context.TODO(), ev)
}
}()
// Recursive
2023-09-06 20:49:18 +02:00
for _, pk := range queue {
deleteFromWhitelistRecursively(pk)
}
}