恐慌:运行时错误:索引超出范围[-2]

问题描述 投票:0回答:1

我无法解决这个问题,有人可以帮忙吗?

机器人不和谐狙击硝基来自 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
}
go discord
1个回答
0
投票

您提供的链接通向

    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]

© www.soinside.com 2019 - 2024. All rights reserved.