|
|
@@ -1,5 +1,80 @@
|
|
|
package consts
|
|
|
|
|
|
+import (
|
|
|
+ "encoding/json"
|
|
|
+ "net/http"
|
|
|
+
|
|
|
+ "github.com/diamondburned/arikawa/v3/discord"
|
|
|
+ "github.com/diamondburned/arikawa/v3/gateway"
|
|
|
+)
|
|
|
+
|
|
|
+const Name = "discordo"
|
|
|
+
|
|
|
const (
|
|
|
- Name = "discordo"
|
|
|
+ identifyPropertiesURL = "https://cordapi.dolfi.es/api/v2/properties/web"
|
|
|
+ loginURL = "https://discord.com/login"
|
|
|
)
|
|
|
+
|
|
|
+var defaultIdentifyProps = gateway.IdentifyProperties{
|
|
|
+ Device: "",
|
|
|
+
|
|
|
+ Browser: "Chrome",
|
|
|
+ BrowserUserAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36",
|
|
|
+ BrowserVersion: "138.0.0.0",
|
|
|
+
|
|
|
+ OS: "Windows",
|
|
|
+ OSVersion: "10",
|
|
|
+
|
|
|
+ ClientBuildNumber: 415522,
|
|
|
+ ReleaseChannel: "stable",
|
|
|
+
|
|
|
+ SystemLocale: discord.EnglishUS,
|
|
|
+ HasClientMods: false,
|
|
|
+}
|
|
|
+
|
|
|
+func GetIdentifyProps() gateway.IdentifyProperties {
|
|
|
+ resp, err := http.Get(identifyPropertiesURL)
|
|
|
+ if err != nil {
|
|
|
+ return defaultIdentifyProps
|
|
|
+ }
|
|
|
+ defer resp.Body.Close()
|
|
|
+
|
|
|
+ var props struct {
|
|
|
+ Client struct {
|
|
|
+ Type string `json:"type"`
|
|
|
+ BuildNumber int `json:"build_number"`
|
|
|
+ BuildHash string `json:"build_hash"`
|
|
|
+ ReleaseChannel string `json:"release_channel"`
|
|
|
+ } `json:"client"`
|
|
|
+
|
|
|
+ Browser struct {
|
|
|
+ Type string `json:"type"`
|
|
|
+ UserAgent string `json:"user_agent"`
|
|
|
+ Version string `json:"version"`
|
|
|
+ OS struct {
|
|
|
+ Type string `json:"type"`
|
|
|
+ Version string `json:"version"`
|
|
|
+ } `json:"os"`
|
|
|
+ } `json:"browser"`
|
|
|
+ }
|
|
|
+ if err := json.NewDecoder(resp.Body).Decode(&props); err != nil {
|
|
|
+ return defaultIdentifyProps
|
|
|
+ }
|
|
|
+
|
|
|
+ return gateway.IdentifyProperties{
|
|
|
+ Device: "",
|
|
|
+
|
|
|
+ Browser: props.Browser.Type,
|
|
|
+ BrowserUserAgent: props.Browser.UserAgent,
|
|
|
+ BrowserVersion: props.Browser.Version,
|
|
|
+
|
|
|
+ OS: props.Browser.OS.Type,
|
|
|
+ OSVersion: props.Browser.OS.Version,
|
|
|
+
|
|
|
+ ClientBuildNumber: props.Client.BuildNumber,
|
|
|
+ ReleaseChannel: props.Client.ReleaseChannel,
|
|
|
+
|
|
|
+ SystemLocale: discord.EnglishUS,
|
|
|
+ HasClientMods: false,
|
|
|
+ }
|
|
|
+}
|