changed verifier bot to marksbot
This commit is contained in:
parent
6ade34970c
commit
fa5cfaf14d
16 changed files with 302 additions and 30 deletions
55
internal/app/botverification/seed.go
Normal file
55
internal/app/botverification/seed.go
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
package botverification
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"telesrv/internal/branding"
|
||||
"telesrv/internal/domain"
|
||||
)
|
||||
|
||||
// SeedDefaultVerifier idempotently grants @marksbot (domain.VerifierBotUserID)
|
||||
// verifier status on first boot, using a custom-emoji icon the ordinary
|
||||
// sticker-seed import already writes (domain.VerifierBotDefaultIconDocumentID)
|
||||
// -- so the reference third-party verifier has something to demonstrate right
|
||||
// away instead of an empty icon catalogue and a bot that can only explain
|
||||
// itself.
|
||||
//
|
||||
// Runs at most once: if a bot_verifier_settings row for @marksbot already
|
||||
// exists -- granted by this seed on a previous boot, or hand-configured by an
|
||||
// operator who pointed it at a different icon/company -- it is left
|
||||
// completely untouched. This must never overwrite an operator's own decision
|
||||
// about their own verifier.
|
||||
// Returns true if it actually granted verifier status.
|
||||
func (s *Service) SeedDefaultVerifier(ctx context.Context) (bool, error) {
|
||||
if s == nil || !s.enabled {
|
||||
return false, nil
|
||||
}
|
||||
if _, err := s.VerifierSettings(ctx, domain.VerifierBotUserID); err == nil {
|
||||
return false, nil
|
||||
} else if !errors.Is(err, domain.ErrVerifierNotFound) {
|
||||
return false, err
|
||||
}
|
||||
icon, err := s.UpsertIcon(ctx, domain.VerificationIcon{
|
||||
DocumentID: domain.VerifierBotDefaultIconDocumentID,
|
||||
Name: "Default (bundled)",
|
||||
Active: true,
|
||||
})
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("seed default verifier icon: %w", err)
|
||||
}
|
||||
if _, err := s.GrantVerifier(ctx, domain.BotVerifierSettings{
|
||||
BotID: domain.VerifierBotUserID,
|
||||
IconDocumentID: icon.DocumentID,
|
||||
CompanyName: branding.ProductName,
|
||||
DefaultDescription: "Bundled reference verifier -- auto-granted on first boot.",
|
||||
CanModifyCustomDescription: false,
|
||||
Enabled: true,
|
||||
GrantedBy: "startup-seed",
|
||||
GrantReason: "Reference verifier auto-granted on first boot so third-party verification has something to demonstrate out of the box.",
|
||||
}); err != nil {
|
||||
return false, fmt.Errorf("seed default verifier grant: %w", err)
|
||||
}
|
||||
return true, nil
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue