| | 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"` |
| | |
| | QuotaDisplayType string `json:"quota_display_type"` |
| | |
| | CustomCurrencySymbol string `json:"custom_currency_symbol"` |
| | |
| | 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 |
| | } |
| |
|
| | |
| | func IsCurrencyDisplay() bool { |
| | return generalSetting.QuotaDisplayType != QuotaDisplayTypeTokens |
| | } |
| |
|
| | |
| | func IsCNYDisplay() bool { |
| | return generalSetting.QuotaDisplayType == QuotaDisplayTypeCNY |
| | } |
| |
|
| | |
| | func GetQuotaDisplayType() string { |
| | return generalSetting.QuotaDisplayType |
| | } |
| |
|
| | |
| | func GetCurrencySymbol() string { |
| | switch generalSetting.QuotaDisplayType { |
| | case QuotaDisplayTypeUSD: |
| | return "$" |
| | case QuotaDisplayTypeCNY: |
| | return "¥" |
| | case QuotaDisplayTypeCustom: |
| | if generalSetting.CustomCurrencySymbol != "" { |
| | return generalSetting.CustomCurrencySymbol |
| | } |
| | return "¤" |
| | default: |
| | return "" |
| | } |
| | } |
| |
|
| | |
| | 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 |
| | } |
| | } |
| |
|