Spaces:
Runtime error
Runtime error
| package operation_setting | |
| import "github.com/QuantumNous/new-api/setting/config" | |
| // 额度展示类型 | |
| const ( | |
| QuotaDisplayTypeUSD = "USD" | |
| QuotaDisplayTypeCNY = "CNY" | |
| QuotaDisplayTypeTokens = "TOKENS" | |
| QuotaDisplayTypeCustom = "CUSTOM" | |
| ) | |
| type GeneralSetting struct { | |
| DocsLink string `json:"docs_link"` | |
| PingIntervalEnabled bool `json:"ping_interval_enabled"` | |
| PingIntervalSeconds int `json:"ping_interval_seconds"` | |
| // 当前站点额度展示类型:USD / CNY / TOKENS | |
| QuotaDisplayType string `json:"quota_display_type"` | |
| // 自定义货币符号,用于 CUSTOM 展示类型 | |
| CustomCurrencySymbol string `json:"custom_currency_symbol"` | |
| // 自定义货币与美元汇率(1 USD = X Custom) | |
| CustomCurrencyExchangeRate float64 `json:"custom_currency_exchange_rate"` | |
| } | |
| // 默认配置 | |
| var generalSetting = GeneralSetting{ | |
| DocsLink: "https://docs.newapi.pro", | |
| PingIntervalEnabled: false, | |
| PingIntervalSeconds: 60, | |
| QuotaDisplayType: QuotaDisplayTypeUSD, | |
| CustomCurrencySymbol: "¤", | |
| CustomCurrencyExchangeRate: 1.0, | |
| } | |
| func init() { | |
| // 注册到全局配置管理器 | |
| config.GlobalConfig.Register("general_setting", &generalSetting) | |
| } | |
| func GetGeneralSetting() *GeneralSetting { | |
| return &generalSetting | |
| } | |
| // IsCurrencyDisplay 是否以货币形式展示(美元或人民币) | |
| func IsCurrencyDisplay() bool { | |
| return generalSetting.QuotaDisplayType != QuotaDisplayTypeTokens | |
| } | |
| // IsCNYDisplay 是否以人民币展示 | |
| func IsCNYDisplay() bool { | |
| return generalSetting.QuotaDisplayType == QuotaDisplayTypeCNY | |
| } | |
| // GetQuotaDisplayType 返回额度展示类型 | |
| func GetQuotaDisplayType() string { | |
| return generalSetting.QuotaDisplayType | |
| } | |
| // GetCurrencySymbol 返回当前展示类型对应符号 | |
| func GetCurrencySymbol() string { | |
| switch generalSetting.QuotaDisplayType { | |
| case QuotaDisplayTypeUSD: | |
| return "$" | |
| case QuotaDisplayTypeCNY: | |
| return "¥" | |
| case QuotaDisplayTypeCustom: | |
| if generalSetting.CustomCurrencySymbol != "" { | |
| return generalSetting.CustomCurrencySymbol | |
| } | |
| return "¤" | |
| default: | |
| return "" | |
| } | |
| } | |
| // GetUsdToCurrencyRate 返回 1 USD = X <currency> 的 X(TOKENS 不适用) | |
| func GetUsdToCurrencyRate(usdToCny float64) float64 { | |
| switch generalSetting.QuotaDisplayType { | |
| case QuotaDisplayTypeUSD: | |
| return 1 | |
| case QuotaDisplayTypeCNY: | |
| return usdToCny | |
| case QuotaDisplayTypeCustom: | |
| if generalSetting.CustomCurrencyExchangeRate > 0 { | |
| return generalSetting.CustomCurrencyExchangeRate | |
| } | |
| return 1 | |
| default: | |
| return 1 | |
| } | |
| } | |