/
load.go
67 lines (54 loc) · 1.95 KB
/
load.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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package app
import (
"github.com/CharLemAznable/gokits"
"github.com/CharLemAznable/varys/base"
"github.com/kataras/golog"
"time"
)
var tokenURL = "https://api.weixin.qq.com/cgi-bin/token"
var configLifeSpan = time.Minute * 60 // config cache 60 min default
var tokenLifeSpan = time.Minute * 5 // stable token cache 5 min default
var tokenTempLifeSpan = time.Minute * 1 // temporary token cache 1 min default
const DefaultProxyURL = "https://api.weixin.qq.com/"
const DefaultMpLoginProxyURL = "https://api.weixin.qq.com/sns/"
var proxyURL = DefaultProxyURL
var mpLoginProxyURL = DefaultMpLoginProxyURL
type Config struct {
WechatAppTokenURL string
WechatAppConfigLifeSpan gokits.Duration
WechatAppTokenLifeSpan gokits.Duration
WechatAppTokenTempLifeSpan gokits.Duration
WechatAppProxyURL string
WechatAppMpLoginProxyURL string
}
var config = &Config{}
func init() {
base.RegisterLoader(func(configFile string) {
base.LoadConfig(configFile, config)
fixConfig()
cacheInitialize()
proxyInitialize()
mpLoginProxyInitialize()
})
}
func fixConfig() {
gokits.If("" != config.WechatAppTokenURL, func() {
tokenURL = config.WechatAppTokenURL
})
gokits.If(0 != config.WechatAppConfigLifeSpan.Duration, func() {
configLifeSpan = config.WechatAppConfigLifeSpan.Duration
})
gokits.If(0 != config.WechatAppTokenLifeSpan.Duration, func() {
tokenLifeSpan = config.WechatAppTokenLifeSpan.Duration
})
gokits.If(0 != config.WechatAppTokenTempLifeSpan.Duration, func() {
tokenTempLifeSpan = config.WechatAppTokenTempLifeSpan.Duration
})
gokits.If("" != config.WechatAppProxyURL, func() {
proxyURL = config.WechatAppProxyURL
})
gokits.If("" != config.WechatAppMpLoginProxyURL, func() {
mpLoginProxyURL = config.WechatAppMpLoginProxyURL
})
golog.Infof("wechat/app config: %+v", *config)
}