From a4696923589fc6d81c1872846b96b1e390f04c0b Mon Sep 17 00:00:00 2001 From: ayflying Date: Wed, 2 Apr 2025 16:20:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=9A=8F=E6=9C=BA=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/logic/ip2region/ip2region.go | 5 +++-- tools/random.go | 6 ++++-- tools/tools.go | 4 ++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/internal/logic/ip2region/ip2region.go b/internal/logic/ip2region/ip2region.go index b57f522..9df2e4a 100644 --- a/internal/logic/ip2region/ip2region.go +++ b/internal/logic/ip2region/ip2region.go @@ -38,13 +38,14 @@ func init() { // @receiver s *sIp2region: sIp2region的实例。 func (s *sIp2region) Load() { var err error + + var url = "https://github.com/ayflying/resource/raw/refs/heads/main/attachment/ip2region.xdb" var dbPath = "runtime/library/ip2region.xdb" if gfile.IsEmpty(dbPath) { g.Log().Debug(ctx, "等待下载ip库文件") //下载文件 - putData, err2 := g.Client().Discovery(nil). - Get(ctx, "https://resource.luoe.cn/attachment/ip2region.xdb") + putData, err2 := g.Client().Discovery(nil).Get(ctx, url) if err2 != nil { return } diff --git a/tools/random.go b/tools/random.go index fb81fd7..d60a622 100644 --- a/tools/random.go +++ b/tools/random.go @@ -56,9 +56,11 @@ func (m *randMod) RandomAll(data map[int]int, n int) []int { // RandByArrInt 根据传入的 interface 切片中的整数值按权重随机返回一个索引 // 参数 s: 一个包含整数的 interface 切片,切片中的每个元素代表一个权重 // 返回值: 随机选中的元素的索引 -func RandByArrInt(s []interface{}) int { +func (m *randMod) RandByArrInt(_s interface{}) int { // 初始化总权重为 0 sv := 0 + s := gconv.Ints(_s) + // 遍历切片,累加每个元素的权重 for i := range s { sv += gconv.Int(s[i]) @@ -73,7 +75,7 @@ func RandByArrInt(s []interface{}) int { var all int // 再次遍历切片,累加权重 for i := range s { - all += gconv.Int(s[i]) + all += s[i] // 如果当前累加的权重大于随机数,则返回当前索引 if all > r { return i diff --git a/tools/tools.go b/tools/tools.go index c0b91a5..f682cf2 100644 --- a/tools/tools.go +++ b/tools/tools.go @@ -132,7 +132,7 @@ func RemoveSlice[t Number](slice []t, value ...t) []t { // 从后向前遍历切片 for i := len(slice) - 1; i >= 0; i-- { // 检查当前元素是否等于需要移除的值 - if InArray(slice[i], value) { + if InArray[t](value, slice[i]) { // 如果相等,移除该元素 // 使用append和切片操作符来实现移除操作,将i之前和i之后的元素合并到一起 slice = append(slice[:i], slice[i+1:]...) @@ -149,7 +149,7 @@ func RemoveSlice[t Number](slice []t, value ...t) []t { // @param value 需要查找的值 // @param array 进行查找的切片 // @return bool 返回是否存在 -func InArray[t Number](value t, array []t) bool { +func InArray[t Number](array []t, value t) bool { for _, v := range array { if v == value { return true