This commit is contained in:
awei
2025-03-03 17:43:50 +08:00
commit 113756eaae
1497 changed files with 127997 additions and 0 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
}