Files
hfb_sys/backend/internal/modules/listing/service_config.go
T
2026-06-27 22:26:37 +08:00

64 lines
1.4 KiB
Go

package listing
import (
"context"
"encoding/json"
"strconv"
"strings"
"time"
)
func (s *Service) reviewRequired(ctx context.Context) (bool, error) {
if s.config == nil {
return false, nil
}
value, err := s.config.FindValue(ctx, reviewRequiredConfigKey)
if err != nil {
return false, err
}
required, err := strconv.ParseBool(strings.TrimSpace(value))
if err != nil {
return false, nil
}
return required, nil
}
func (s *Service) publishRules(ctx context.Context) (publishRules, error) {
rules := publishRules{FireLevelMin: defaultFireLevelMin}
if s.config == nil {
return rules, nil
}
value, err := s.config.FindValue(ctx, publishOptionsConfigKey)
if err != nil {
return rules, err
}
var raw struct {
FireLevelMin int `json:"fire_level_min"`
}
if err := json.Unmarshal([]byte(value), &raw); err != nil {
return rules, nil
}
if raw.FireLevelMin > 0 {
rules.FireLevelMin = raw.FireLevelMin
}
return rules, nil
}
func (s *Service) publishCooldown(ctx context.Context) (time.Duration, error) {
if s.config == nil {
return time.Duration(defaultPublishCooldownMinutes) * time.Minute, nil
}
value, err := s.config.FindValue(ctx, publishCooldownMinutesKey)
if err != nil {
return 0, err
}
minutes, err := strconv.Atoi(strings.TrimSpace(value))
if err != nil {
return time.Duration(defaultPublishCooldownMinutes) * time.Minute, nil
}
if minutes <= 0 {
return 0, nil
}
return time.Duration(minutes) * time.Minute, nil
}