Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
V4NSH4J
GitHub Repository: V4NSH4J/discord-mass-DM-GO
Path: blob/main/instance/build.go
310 views
1
// Credits: https://github.com/bytixo/
2
3
package instance
4
5
import (
6
"io"
7
"net/http"
8
"regexp"
9
"strings"
10
"time"
11
12
"github.com/V4NSH4J/discord-mass-dm-GO/utilities"
13
)
14
15
var (
16
buildNumber = make(map[string]string)
17
//buildHash map[string]string
18
)
19
20
// UpdateDiscordBuildInfo fetches the latest build info for every discord builds
21
// such as PTB, Canary and Stable. see https://github.com/KiyonoKara/Discord-Build-Info-PY/blob/main/discord_build_info_py/clientInfo.py
22
func UpdateDiscordBuildInfo() error {
23
jsFileRegex := regexp.MustCompile(`([a-zA-z0-9]+)\.js`)
24
buildInfoRegex := regexp.MustCompile(`Build Number: "\)\.concat\("([0-9]{4,8})"`)
25
26
client := &http.Client{Timeout: 10 * time.Second}
27
28
res, err := client.Get("https://discord.com/app")
29
if err != nil {
30
return err
31
}
32
33
defer res.Body.Close()
34
body, err := io.ReadAll(res.Body)
35
if err != nil {
36
return err
37
}
38
39
r := jsFileRegex.FindAllString(string(body), -1)
40
asset := r[len(r)-1]
41
if strings.Contains(asset, "invisible") {
42
asset = r[len(r)-2]
43
}
44
45
resp, err := client.Get("https://discord.com/assets/" + asset)
46
if err != nil {
47
return err
48
}
49
50
defer resp.Body.Close()
51
b, err := io.ReadAll(resp.Body)
52
if err != nil {
53
return err
54
}
55
56
z := buildInfoRegex.FindAllString(string(b), -1)
57
e := strings.ReplaceAll(z[0], " ", "")
58
buildInfos := strings.Split(e, ",")
59
60
buildNum := strings.Split(buildInfos[0], `("`)
61
buildNumber["stable"] = strings.ReplaceAll(buildNum[len(buildNum)-1],`"`, ``)
62
63
return nil
64
}
65
66
// GetDiscordBuildNumber returns the current buildNumber for the specified version
67
func GetDiscordBuildNumber(discord string) string {
68
return buildNumber[discord]
69
}
70
71
/*
72
// GetDiscordBuildHash returns the current buildHash for the specified version
73
func GetDiscordBuildHash(discord string) string {
74
return buildHash[discord]
75
}
76
*/
77
78
// func main() {
79
// err := UpdateDiscordBuildInfo()
80
// if err != nil {
81
// fmt.Println(err)
82
// }
83
// fmt.Println(GetDiscordBuildNumber("stable"))
84
// }
85
86