代码拉取完成,页面将自动刷新
// 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
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。