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)
|
|
|
|
}
|
|
|
|
}
|