spark-server/internal/bootstrap/media.go
2026-09-29 10:22:28 +08:00

31 lines
871 B
Go

package bootstrap
import (
"spark-server/internal/pkg/media"
)
// MediaPolicy builds the shared user-check / bot-compress limits from config.
func MediaPolicy(cfg *MediaConfig) media.Policy {
if cfg == nil {
return media.Policy{}
}
return media.Policy{
Enabled: cfg.Enabled,
UserReject: cfg.UserReject,
Limits: media.Limits{
ImageMaxEdge: cfg.ImageMaxEdge,
VideoMaxEdge: cfg.VideoMaxEdge,
AvatarMaxEdge: cfg.AvatarMaxEdge,
ImageMaxBytes: cfg.ImageMaxBytes,
VideoMaxBytes: cfg.VideoMaxBytes,
AvatarMaxBytes: cfg.AvatarMaxBytes,
}.Normalize(),
}
}
// MediaCompressOptions returns limits + encoder settings for bot compressors.
func MediaCompressOptions(cfg *MediaConfig) (lim media.Limits, jpegQuality, videoCRF int, ffmpegPath string) {
p := MediaPolicy(cfg)
return p.Limits, cfg.JPEGQuality, cfg.VideoCRF, cfg.FFmpegPath
}