chore: 暴露数据给前端

This commit is contained in:
adlyq
2022-05-17 16:47:21 +08:00
parent 0742f7db26
commit c4408612b3
5 changed files with 57 additions and 13 deletions

View File

@ -18,6 +18,7 @@ type GEOIP struct {
adapter string
noResolveIP bool
geoIPMatcher *router.GeoIPMatcher
recodeSize int
}
func (g *GEOIP) RuleType() C.RuleType {
@ -65,6 +66,10 @@ func (g *GEOIP) GetIPMatcher() *router.GeoIPMatcher {
return g.geoIPMatcher
}
func (g *GEOIP) GetRecodeSize() int {
return g.recodeSize
}
func NewGEOIP(country string, adapter string, noResolveIP bool) (*GEOIP, error) {
if !C.GeodataMode {
geoip := &GEOIP{
@ -76,18 +81,19 @@ func NewGEOIP(country string, adapter string, noResolveIP bool) (*GEOIP, error)
return geoip, nil
}
geoIPMatcher, recordsCount, err := geodata.LoadGeoIPMatcher(country)
geoIPMatcher, size, err := geodata.LoadGeoIPMatcher(country)
if err != nil {
return nil, fmt.Errorf("[GeoIP] %s", err.Error())
}
log.Infoln("Start initial GeoIP rule %s => %s, records: %d", country, adapter, recordsCount)
log.Infoln("Start initial GeoIP rule %s => %s, records: %d", country, adapter, size)
geoip := &GEOIP{
Base: &Base{},
country: country,
adapter: adapter,
noResolveIP: noResolveIP,
geoIPMatcher: geoIPMatcher,
recodeSize: size,
}
return geoip, nil
}

View File

@ -14,9 +14,10 @@ import (
type GEOSITE struct {
*Base
country string
adapter string
matcher *router.DomainMatcher
country string
adapter string
matcher *router.DomainMatcher
recodeSize int
}
func (gs *GEOSITE) RuleType() C.RuleType {
@ -44,19 +45,24 @@ func (gs *GEOSITE) GetDomainMatcher() *router.DomainMatcher {
return gs.matcher
}
func (gs *GEOSITE) GetRecodeSize() int {
return gs.recodeSize
}
func NewGEOSITE(country string, adapter string) (*GEOSITE, error) {
matcher, recordsCount, err := geodata.LoadGeoSiteMatcher(country)
matcher, size, err := geodata.LoadGeoSiteMatcher(country)
if err != nil {
return nil, fmt.Errorf("load GeoSite data error, %s", err.Error())
}
log.Infoln("Start initial GeoSite rule %s => %s, records: %d", country, adapter, recordsCount)
log.Infoln("Start initial GeoSite rule %s => %s, records: %d", country, adapter, size)
geoSite := &GEOSITE{
Base: &Base{},
country: country,
adapter: adapter,
matcher: matcher,
Base: &Base{},
country: country,
adapter: adapter,
matcher: matcher,
recodeSize: size,
}
return geoSite, nil