chore: download geoX use inner

This commit is contained in:
Larvan2 2023-04-10 21:03:31 +08:00
parent 4d12ed491c
commit 304b4d9bcb
3 changed files with 33 additions and 12 deletions

View File

@ -1,13 +1,17 @@
package geodata package geodata
import ( import (
"context"
"fmt" "fmt"
"github.com/Dreamacro/clash/component/mmdb"
C "github.com/Dreamacro/clash/constant"
"github.com/Dreamacro/clash/log"
"io" "io"
"net/http" "net/http"
"os" "os"
"time"
clashHttp "github.com/Dreamacro/clash/component/http"
"github.com/Dreamacro/clash/component/mmdb"
C "github.com/Dreamacro/clash/constant"
"github.com/Dreamacro/clash/log"
) )
var initGeoSite bool var initGeoSite bool
@ -38,7 +42,9 @@ func InitGeoSite() error {
} }
func downloadGeoSite(path string) (err error) { func downloadGeoSite(path string) (err error) {
resp, err := http.Get(C.GeoSiteUrl) ctx, cancel := context.WithTimeout(context.Background(), time.Second*90)
defer cancel()
resp, err := clashHttp.HttpRequest(ctx, C.GeoSiteUrl, http.MethodGet, http.Header{"User-Agent": {"clash"}}, nil)
if err != nil { if err != nil {
return return
} }
@ -55,7 +61,9 @@ func downloadGeoSite(path string) (err error) {
} }
func downloadGeoIP(path string) (err error) { func downloadGeoIP(path string) (err error) {
resp, err := http.Get(C.GeoIpUrl) ctx, cancel := context.WithTimeout(context.Background(), time.Second*90)
defer cancel()
resp, err := clashHttp.HttpRequest(ctx, C.GeoIpUrl, http.MethodGet, http.Header{"User-Agent": {"clash"}}, nil)
if err != nil { if err != nil {
return return
} }

View File

@ -1,14 +1,18 @@
package mmdb package mmdb
import ( import (
"github.com/oschwald/geoip2-golang" "context"
"io" "io"
"net/http" "net/http"
"os" "os"
"sync" "sync"
"time"
clashHttp "github.com/Dreamacro/clash/component/http"
C "github.com/Dreamacro/clash/constant" C "github.com/Dreamacro/clash/constant"
"github.com/Dreamacro/clash/log" "github.com/Dreamacro/clash/log"
"github.com/oschwald/geoip2-golang"
) )
var ( var (
@ -47,7 +51,9 @@ func Instance() *geoip2.Reader {
} }
func DownloadMMDB(path string) (err error) { func DownloadMMDB(path string) (err error) {
resp, err := http.Get(C.MmdbUrl) ctx, cancel := context.WithTimeout(context.Background(), time.Second*90)
defer cancel()
resp, err := clashHttp.HttpRequest(ctx, C.MmdbUrl, http.MethodGet, http.Header{"User-Agent": {"clash"}}, nil)
if err != nil { if err != nil {
return return
} }

View File

@ -1,15 +1,20 @@
package config package config
import ( import (
"context"
"fmt" "fmt"
"github.com/Dreamacro/clash/component/geodata"
_ "github.com/Dreamacro/clash/component/geodata/standard"
C "github.com/Dreamacro/clash/constant"
"github.com/oschwald/geoip2-golang"
"io" "io"
"net/http" "net/http"
"os" "os"
"runtime" "runtime"
"time"
"github.com/Dreamacro/clash/component/geodata"
_ "github.com/Dreamacro/clash/component/geodata/standard"
clashHttp "github.com/Dreamacro/clash/component/http"
C "github.com/Dreamacro/clash/constant"
"github.com/oschwald/geoip2-golang"
) )
func UpdateGeoDatabases() error { func UpdateGeoDatabases() error {
@ -69,7 +74,9 @@ func UpdateGeoDatabases() error {
} }
func downloadForBytes(url string) ([]byte, error) { func downloadForBytes(url string) ([]byte, error) {
resp, err := http.Get(url) ctx, cancel := context.WithTimeout(context.Background(), time.Second*90)
defer cancel()
resp, err := clashHttp.HttpRequest(ctx, url, http.MethodGet, http.Header{"User-Agent": {"clash"}}, nil)
if err != nil { if err != nil {
return nil, err return nil, err
} }