Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
V4NSH4J
GitHub Repository: V4NSH4J/discord-mass-DM-GO
Path: blob/main/instance/check_token.go
310 views
1
// Copyright (C) 2021 github.com/V4NSH4J
2
//
3
// This source code has been released under the GNU Affero General Public
4
// License v3.0. A copy of this license is available at
5
// https://www.gnu.org/licenses/agpl-3.0.en.html
6
7
package instance
8
9
import (
10
"encoding/json"
11
"fmt"
12
"io/ioutil"
13
14
http "github.com/Danny-Dasilva/fhttp"
15
)
16
17
func (in *Instance) CheckToken() int {
18
url := "https://discord.com/api/v9/users/@me/affinities/guilds"
19
req, err := http.NewRequest("GET", url, nil)
20
if err != nil {
21
return -1
22
}
23
req.Header.Set("authorization", in.Token)
24
25
resp, err := in.Client.Do(CommonHeaders(req))
26
if err != nil {
27
return -1
28
}
29
return resp.StatusCode
30
31
}
32
33
func (in *Instance) CheckTokenNew() (int, error) {
34
url := "https://discord.com/api/v9/users/@me/affinities/guilds"
35
req, err := http.NewRequest("GET", url, nil)
36
if err != nil {
37
return 0, err
38
}
39
cookie, err := in.GetCookieString()
40
if err != nil {
41
return 0, err
42
}
43
resp, err := in.Client.Do(in.AtMeHeaders(req, cookie))
44
if err != nil {
45
return 0, err
46
}
47
return resp.StatusCode, nil
48
49
}
50
51
func (in *Instance) AtMe() (int, TokenInfo, error) {
52
url := "https://discord.com/api/v9/users/@me"
53
req, err := http.NewRequest("GET", url, nil)
54
if err != nil {
55
return -1, TokenInfo{}, fmt.Errorf("error while making request %v", err)
56
}
57
cookie, err := in.GetCookieString()
58
if err != nil {
59
return -1, TokenInfo{}, fmt.Errorf("error while getting cookie %v", err)
60
}
61
req = in.AtMeHeaders(req, cookie)
62
resp, err := in.Client.Do(req)
63
if err != nil {
64
return -1, TokenInfo{}, fmt.Errorf("error while sending request %v", err)
65
}
66
defer resp.Body.Close()
67
body, err := ioutil.ReadAll(resp.Body)
68
if err != nil {
69
return -1, TokenInfo{}, fmt.Errorf("error while reading response %v", err)
70
}
71
var info TokenInfo
72
err = json.Unmarshal(body, &info)
73
if err != nil {
74
return -1, TokenInfo{}, fmt.Errorf("error while unmarshalling response %v", err)
75
}
76
return resp.StatusCode, info, nil
77
}
78
79
func (in *Instance) Guilds() (int, int, []string, error) {
80
url := "https://discord.com/api/v9/users/@me/guilds"
81
req, err := http.NewRequest("GET", url, nil)
82
if err != nil {
83
return -1, -1, nil, fmt.Errorf("error while making request %v", err)
84
}
85
cookie, err := in.GetCookieString()
86
if err != nil {
87
return -1, -1, nil, fmt.Errorf("error while getting cookie %v", err)
88
}
89
req = in.AtMeHeaders(req, cookie)
90
resp, err := in.Client.Do(req)
91
if err != nil {
92
return -1, -1, nil, fmt.Errorf("error while sending request %v", err)
93
}
94
defer resp.Body.Close()
95
body, err := ioutil.ReadAll(resp.Body)
96
if err != nil {
97
return -1, -1, nil, fmt.Errorf("error while reading response %v", err)
98
}
99
var info []Guilds
100
err = json.Unmarshal(body, &info)
101
if err != nil {
102
return -1, -1, nil, fmt.Errorf("error while unmarshalling response %v", err)
103
}
104
var guilds []string
105
for i := 0; i < len(info); i++ {
106
guilds = append(guilds, info[i].ID)
107
}
108
return resp.StatusCode, len(info), guilds, nil
109
}
110
111
func (in *Instance) Channels() (int, int, []Guilds, error) {
112
url := "https://discord.com/api/v9/users/@me/channels"
113
req, err := http.NewRequest("GET", url, nil)
114
if err != nil {
115
return -1, -1, nil, fmt.Errorf("error while making request %v", err)
116
}
117
cookie, err := in.GetCookieString()
118
if err != nil {
119
return -1, -1, nil, fmt.Errorf("error while getting cookie %v", err)
120
}
121
req = in.AtMeHeaders(req, cookie)
122
resp, err := in.Client.Do(req)
123
if err != nil {
124
return -1, -1, nil, fmt.Errorf("error while sending request %v", err)
125
}
126
defer resp.Body.Close()
127
body, err := ioutil.ReadAll(resp.Body)
128
if err != nil {
129
return -1, -1, nil, fmt.Errorf("error while reading response %v", err)
130
}
131
var info []Guilds
132
err = json.Unmarshal(body, &info)
133
if err != nil {
134
return -1, -1, nil, fmt.Errorf("error while unmarshalling response %v", err)
135
}
136
return resp.StatusCode, len(info), info, nil
137
}
138
139
func (in *Instance) Relationships() (int, int, int, int, int, []Guilds, error) {
140
url := "https://discord.com/api/v9/users/@me/relationships"
141
req, err := http.NewRequest("GET", url, nil)
142
if err != nil {
143
return -1, -1, -1, -1, -1, nil, fmt.Errorf("error while making request %v", err)
144
}
145
cookie, err := in.GetCookieString()
146
if err != nil {
147
return -1, -1, -1, -1, -1, nil, fmt.Errorf("error while getting cookie %v", err)
148
}
149
req = in.AtMeHeaders(req, cookie)
150
resp, err := in.Client.Do(req)
151
if err != nil {
152
return -1, -1, -1, -1, -1, nil, fmt.Errorf("error while sending request %v", err)
153
}
154
defer resp.Body.Close()
155
body, err := ioutil.ReadAll(resp.Body)
156
if err != nil {
157
return -1, -1, -1, -1, -1, nil, fmt.Errorf("error while reading response %v", err)
158
}
159
var info []Guilds
160
err = json.Unmarshal(body, &info)
161
if err != nil {
162
return -1, -1, -1, -1, -1, nil, fmt.Errorf("error while unmarshalling response %v", err)
163
}
164
var friend, blocked, incoming, outgoing int
165
for i := 0; i < len(info); i++ {
166
if info[i].Type == 1 {
167
friend++
168
} else if info[i].Type == 2 {
169
blocked++
170
} else if info[i].Type == 3 {
171
incoming++
172
} else if info[i].Type == 4 {
173
outgoing++
174
}
175
}
176
return resp.StatusCode, friend, blocked, incoming, outgoing, info, nil
177
178
}
179
180