|
|
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 |
|
|
} |
|
|
} |
|
|
|