-
Notifications
You must be signed in to change notification settings - Fork 0
/
settings.go
41 lines (36 loc) · 1015 Bytes
/
settings.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package settings
import (
"github.com/hashicorp/hcl/v2/hclsimple"
"log"
)
type Settings struct {
Timezone string `hcl:"timezone"`
Apiurl string `hcl:"apiurl"`
Bottoken string `hcl:"bottoken"`
Chatid []int64 `hcl:"chatid"`
Usersid []int64 `hcl:"usersid"`
Gpt4id []int64 `hcl:"gpt4id"`
Ouremail string `hcl:"ouremail"`
OpenaiApikey string `hcl:"openaiapikey"`
Linksmsg string `hcl:"linksmsg"`
GeminiApiKey string `hcl:"geminiapikey"`
ClaudeApiKey string `hcl:"claudeapikey"`
}
// LoadSettings unmarshals the HCL config file and returns our Settings.
func LoadSettings(filename string) Settings {
var Config Settings
err := hclsimple.DecodeFile(filename, nil, &Config)
if err != nil {
log.Fatalf("Failed to load configuration: %s", err)
}
return Config
}
// ListContainsID checks if an array contains a specific value
func ListContainsID(list []int64, a int64) bool {
for _, b := range list {
if b == a {
return true
}
}
return false
}