-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathinitFS.go
75 lines (63 loc) · 1.76 KB
/
initFS.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
68
69
70
71
72
73
74
75
package fs
import (
"github.com/golang/freetype"
"github.com/golang/freetype/truetype"
"github.com/rakyll/statik/fs"
"linkshortener/i18n"
"linkshortener/lib/ip2location"
"linkshortener/lib/uap"
"linkshortener/log"
"net/http"
)
var StatikFS http.FileSystem
var CaptchaFont *truetype.Font
func InitFs() {
var err error
StatikFS, err = fs.New()
if err != nil {
log.PanicPrint("Init StatikFS failed", err)
}
}
func InitFont() {
fontBytes, err := fs.ReadFile(StatikFS, "/resources/arphic.ttf")
if err != nil {
log.PanicPrint("Init Font failed", err)
}
CaptchaFont, err = freetype.ParseFont(fontBytes)
if err != nil {
log.PanicPrint("Init Font failed", err)
}
}
func InitUap() {
uapBytes, err := fs.ReadFile(StatikFS, "/resources/uaparser.yaml")
if err != nil {
log.PanicPrint("Init UAInfo failed", err)
}
uap.InitUap(uapBytes)
}
func InitIPData() {
geoip2CityBytes, err := fs.ReadFile(StatikFS, "/resources/GeoIP2-City.mmdb")
if err != nil {
log.PanicPrint("Init IPData-City failed", err)
}
geoip2IspBytes, err := fs.ReadFile(StatikFS, "/resources/GeoIP2-ISP.mmdb")
if err != nil {
log.PanicPrint("Init IPData-ISP failed", err)
}
ip2location.IPData.InitIPData(geoip2CityBytes, geoip2IspBytes)
}
func InitI18n() {
jpBytes, err := fs.ReadFile(StatikFS, "/resources/lang/ja-JP.json")
if err != nil {
log.PanicPrint("Loading embedded language pack(ja-JP) exception: %s", err)
}
cnBytes, err := fs.ReadFile(StatikFS, "/resources/lang/zh-CN.json")
if err != nil {
log.PanicPrint("Loading embedded language pack(zh-CN) exception: %s", err)
}
usBytes, err := fs.ReadFile(StatikFS, "/resources/lang/en-US.json")
if err != nil {
log.PanicPrint("Loading embedded language pack(en-US) exception: %s", err)
}
i18n.InitI18n(jpBytes, cnBytes, usBytes)
}