1 Star 1 Fork 0

linngc / center.gf

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
maven_sync.go 1.40 KB
一键复制 编辑 原始数据 按行查看 历史
linngc 提交于 2023-08-25 16:49 . style:contrib插件重构
// Package business
// @Link https://gitee.com/linngc/center.gf
// @Copyright Copyright (c) 2022 center CLI
// @Author linngc
// @License
package business
import (
"context"
"fmt"
"gitee.com/linngc/center.gf/contrib/plugins/xproxy/internal/utility"
"regexp"
)
// GetSyncMirrors 同步官网数据
// 请求示例: http://mirrors.ustc.edu.cn/alpine/v3.18/main/x86_64/7zip-22.01-r5.apk
func (c *cMavenProxy) GetSyncMirrors(ctx context.Context) {
//wg := &sync.WaitGroup{}
//begin := time.Now()
cfg := utility.MavenConfig()
central := cfg.Central
//cache := cfg.Cache
//dial := clientv1.Dial(ctx, cache, "alpine")
for _, pub := range central {
links := c.getResponsePub(ctx, pub)
// 遍历链接
for _, v := range links {
moduleName := v[6 : len(v)-1]
//todo 功能待实现(需要递归获取路径)
//https://repo1.maven.org/maven2/HTTPClient/HTTPClient/maven-metadata.xml
fmt.Print("moduleName=======" + moduleName)
}
}
}
// getResponsePub 处理每个Mirrors镜像主站地址数据
func (c *cMavenProxy) getResponsePub(ctx context.Context, uri string) (links []string) {
if get, err := client.Get(ctx, uri); err == nil {
if get != nil && get.Body != nil {
defer get.Body.Close()
}
if get.StatusCode == 200 {
// 链接 正则
reLink := regexp.MustCompile(`title="(.*?)"`)
// 找到所有链接
links = reLink.FindAllString(get.ReadAllString(), -1)
}
}
return
}
Go
1
https://gitee.com/linngc/center.gf.git
git@gitee.com:linngc/center.gf.git
linngc
center.gf
center.gf
52e4a05782b6

搜索帮助

53164aa7 5694891 3bd8fe86 5694891