Documentation
¶
Index ¶
- Constants
- Variables
- func APIEnabled(types string) gin.HandlerFunc
- func AdminAuth() func(c *gin.Context)
- func CORS() gin.HandlerFunc
- func Cache() func(c *gin.Context)
- func ClaudeAuth() func(c *gin.Context)
- func ContextUserId() func(c *gin.Context)
- func CriticalRateLimit() func(c *gin.Context)
- func Distribute() func(c *gin.Context)
- func DownloadRateLimit() func(c *gin.Context)
- func DynamicRedisRateLimiter() gin.HandlerFunc
- func GeminiAuth() func(c *gin.Context)
- func GinzapWithConfig() gin.HandlerFunc
- func GlobalAPIRateLimit() func(c *gin.Context)
- func GlobalWebRateLimit() func(c *gin.Context)
- func MetricsWithBasicAuth() gin.HandlerFunc
- func MjAuth() func(c *gin.Context)
- func OpenaiAuth() func(c *gin.Context)
- func PricesAuth() gin.HandlerFunc
- func RelayCluadePanicRecover() gin.HandlerFunc
- func RelayGeminiPanicRecover() gin.HandlerFunc
- func RelayKlingPanicRecover() gin.HandlerFunc
- func RelayMJPanicRecover() gin.HandlerFunc
- func RelayPanicRecover() gin.HandlerFunc
- func RelaySunoPanicRecover() gin.HandlerFunc
- func RequestId() func(c *gin.Context)
- func RootAuth() func(c *gin.Context)
- func SetUpLogger(server *gin.Engine)
- func SpecifiedChannel() func(c *gin.Context)
- func Telegram() func(c *gin.Context)
- func TrySetUserBySession() func(c *gin.Context)
- func TurnstileCheck() gin.HandlerFunc
- func UploadRateLimit() func(c *gin.Context)
- func UserAuth() func(c *gin.Context)
- type GroupDistributor
Constants ¶
View Source
const ( LIMIT_KEY = "api-limiter:%d" INTERNAL = 1 * time.Minute RATE_LIMIT_EXCEEDED_MSG = "您的速率达到上限,请稍后再试。" SERVER_ERROR_MSG = "Server error" )
Variables ¶
View Source
var ( GlobalApiRateLimitNum = 300 GlobalApiRateLimitDuration int64 = 3 * 60 GlobalWebRateLimitNum = 180 GlobalWebRateLimitDuration int64 = 3 * 60 UploadRateLimitNum = 10 UploadRateLimitDuration int64 = 60 DownloadRateLimitNum = 10 DownloadRateLimitDuration int64 = 60 CriticalRateLimitNum = 20 CriticalRateLimitDuration int64 = 20 * 60 )
All duration's unit is seconds Shouldn't larger then RateLimitKeyExpirationDuration
Functions ¶
func APIEnabled ¶
func APIEnabled(types string) gin.HandlerFunc
func CORS ¶
func CORS() gin.HandlerFunc
func ClaudeAuth ¶
func ContextUserId ¶
ContextId adds the user ID from the Gin context to the request context
func CriticalRateLimit ¶
func Distribute ¶
func DownloadRateLimit ¶
func DynamicRedisRateLimiter ¶
func DynamicRedisRateLimiter() gin.HandlerFunc
func GeminiAuth ¶
func GinzapWithConfig ¶
func GinzapWithConfig() gin.HandlerFunc
func GlobalAPIRateLimit ¶
func GlobalWebRateLimit ¶
func MetricsWithBasicAuth ¶
func MetricsWithBasicAuth() gin.HandlerFunc
func OpenaiAuth ¶
func PricesAuth ¶
func PricesAuth() gin.HandlerFunc
func RelayCluadePanicRecover ¶
func RelayCluadePanicRecover() gin.HandlerFunc
func RelayGeminiPanicRecover ¶
func RelayGeminiPanicRecover() gin.HandlerFunc
func RelayKlingPanicRecover ¶
func RelayKlingPanicRecover() gin.HandlerFunc
func RelayMJPanicRecover ¶
func RelayMJPanicRecover() gin.HandlerFunc
func RelayPanicRecover ¶
func RelayPanicRecover() gin.HandlerFunc
func RelaySunoPanicRecover ¶
func RelaySunoPanicRecover() gin.HandlerFunc
func SetUpLogger ¶
func SpecifiedChannel ¶
func TrySetUserBySession ¶
func TurnstileCheck ¶
func TurnstileCheck() gin.HandlerFunc
func UploadRateLimit ¶
Types ¶
type GroupDistributor ¶
type GroupDistributor struct {
// contains filtered or unexported fields
}
GroupDistributor 统一分组分发逻辑
func NewGroupDistributor ¶
func NewGroupDistributor(c *gin.Context) *GroupDistributor
NewGroupDistributor 创建分组分发器
func (*GroupDistributor) SetupGroups ¶
func (gd *GroupDistributor) SetupGroups() error
SetupGroups 设置用户分组和令牌分组
Click to show internal directories.
Click to hide internal directories.