This commit is contained in:
12600k-rog-d4
2025-12-09 20:33:57 +08:00
parent 144ed3cbdf
commit 8f4d399cfd
1498 changed files with 3778 additions and 3654 deletions

View File

@@ -0,0 +1,53 @@
package spam
import (
"bbs-go/internal/models"
"log/slog"
)
var strategies []Strategy
func init() {
strategies = append(strategies, &EmailVerifyStrategy{})
strategies = append(strategies, &CaptchaStrategy{})
// strategies = append(strategies, &PostFrequencyStrategy{})
}
func CheckTopic(user *models.User, form models.CreateTopicForm) error {
if len(strategies) == 0 {
return nil
}
for _, strategy := range strategies {
if err := strategy.CheckTopic(user, form); err != nil {
slog.Warn("[Topic]命中策略", slog.Any("strategy", strategy.Name()), slog.Any("userId", user.Id))
return err
}
}
return nil
}
func CheckArticle(user *models.User, form models.CreateArticleForm) error {
if len(strategies) == 0 {
return nil
}
for _, strategy := range strategies {
if err := strategy.CheckArticle(user, form); err != nil {
slog.Warn("[Article]命中策略", slog.Any("strategy", strategy.Name()), slog.Any("userId", user.Id))
return err
}
}
return nil
}
func CheckComment(user *models.User, form models.CreateCommentForm) error {
if len(strategies) == 0 {
return nil
}
for _, strategy := range strategies {
if err := strategy.CheckComment(user, form); err != nil {
slog.Warn("[Comment]命中策略", slog.Any("strategy", strategy.Name()), slog.Any("userId", user.Id))
return err
}
}
return nil
}