mirror of
https://github.com/router-for-me/CLIProxyAPI.git
synced 2026-02-03 04:50:52 +08:00
rebuild branch
This commit is contained in:
46
sdk/cliproxy/providers.go
Normal file
46
sdk/cliproxy/providers.go
Normal file
@@ -0,0 +1,46 @@
|
||||
package cliproxy
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/router-for-me/CLIProxyAPI/v6/internal/config"
|
||||
"github.com/router-for-me/CLIProxyAPI/v6/internal/watcher"
|
||||
)
|
||||
|
||||
// NewFileTokenClientProvider returns the default token-backed client loader.
|
||||
func NewFileTokenClientProvider() TokenClientProvider {
|
||||
return &fileTokenClientProvider{}
|
||||
}
|
||||
|
||||
type fileTokenClientProvider struct{}
|
||||
|
||||
func (p *fileTokenClientProvider) Load(ctx context.Context, cfg *config.Config) (*TokenClientResult, error) {
|
||||
// Stateless executors handle tokens
|
||||
_ = ctx
|
||||
_ = cfg
|
||||
return &TokenClientResult{SuccessfulAuthed: 0}, nil
|
||||
}
|
||||
|
||||
// NewAPIKeyClientProvider returns the default API key client loader that reuses existing logic.
|
||||
func NewAPIKeyClientProvider() APIKeyClientProvider {
|
||||
return &apiKeyClientProvider{}
|
||||
}
|
||||
|
||||
type apiKeyClientProvider struct{}
|
||||
|
||||
func (p *apiKeyClientProvider) Load(ctx context.Context, cfg *config.Config) (*APIKeyClientResult, error) {
|
||||
glCount, claudeCount, codexCount, openAICompat := watcher.BuildAPIKeyClients(cfg)
|
||||
if ctx != nil {
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
return nil, ctx.Err()
|
||||
default:
|
||||
}
|
||||
}
|
||||
return &APIKeyClientResult{
|
||||
GeminiKeyCount: glCount,
|
||||
ClaudeKeyCount: claudeCount,
|
||||
CodexKeyCount: codexCount,
|
||||
OpenAICompatCount: openAICompat,
|
||||
}, nil
|
||||
}
|
||||
Reference in New Issue
Block a user