80 lines
1.9 KiB
Go
80 lines
1.9 KiB
Go
package consts
|
|
|
|
import (
|
|
"encoding/json"
|
|
"net/http"
|
|
|
|
"github.com/diamondburned/arikawa/v3/discord"
|
|
"github.com/diamondburned/arikawa/v3/gateway"
|
|
)
|
|
|
|
const Name = "discordo"
|
|
|
|
const (
|
|
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,
|
|
}
|
|
}
|