我无法解决这个问题,有人可以帮忙吗?
机器人不和谐狙击硝基来自 Github Here `恐慌:运行时错误:索引超出范围 [-2]
协程 1 [运行]: 狙击手/sniper.GetDiscordBuildNumber() C:/Users/HuyXingum/Documents/sniper/sniper/helper.go:61 +0x190`
func GetDiscordBuildNumber() (int, error) {
// my lazy ass :(
makeGetReq := func(urlStr string) ([]byte, error) {
ReqUrl, err := url.Parse(strings.TrimSpace(urlStr))
if err != nil {
return nil, err
}
client := &http.Client{
Timeout: time.Duration(10 * time.Second),
Transport: &http.Transport{
DisableKeepAlives: true,
IdleConnTimeout: 0,
},
}
res, err := client.Get(ReqUrl.String())
if err != nil {
return nil, err
}
defer res.Body.Close()
bodyBytes, err := io.ReadAll(res.Body)
if err != nil {
return nil, err
}
client.CloseIdleConnections()
return bodyBytes, nil
}
responeBody, err := makeGetReq("https://discord.com/app")
if err != nil {
return 0, err
}
discordFiles := regexp.MustCompile(`assets/+([a-z0-9]+)\.js`).FindAllString(string(responeBody), -1)
file_with_build_num := "https://discord.com/" + discordFiles[len(discordFiles)-2]
responeBody, err = makeGetReq(file_with_build_num)
if err != nil {
return 0, err
}
if err != nil {
return 0, err
}
client_build_number_str := strings.Replace(regexp.MustCompile(`"[0-9]{6}"`).FindAllString(string(responeBody), -1)[0], "\"", "", -1)
client_build_number, err := strconv.Atoi(client_build_number_str)
if err != nil {
return 0, err
}
return client_build_number, nil
}
您提供的链接通向
responeBody, err := makeGetReq("https://discord.com/app")
if err != nil {
return 0, err
}
discordFiles := regexp.MustCompile(`assets/+([a-z0-9]+)\.js`).FindAllString(string(responeBody), -1)
file_with_build_num := "https://discord.com/" + discordFiles[len(discordFiles)-2]
最后一行是#61。
因此,在
responeBody
中,可能没有与 assets/+([a-z0-9]+)\.js
匹配的行,而 len(discordFiles)
为零,导致 discordFiles[len(discordFiles)-2]
被评估为 discordFiles[-2]
。