forked from YonatanDEV1/nitro-sniper
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhttp.go
More file actions
76 lines (57 loc) · 2.6 KB
/
http.go
File metadata and controls
76 lines (57 loc) · 2.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package main
import (
"github.com/valyala/fasthttp"
"crypto/tls"
"io/ioutil"
"net/http"
"bytes"
"time"
)
func createFastHttpClient() *fasthttp.Client {
return &fasthttp.Client{} // We don't use fasthttp for sniping so don't need to make the client anything special
}
func createNetHttpClient() *http.Client {
return &http.Client{
Transport: &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: true,},
DisableKeepAlives: false,
MaxIdleConnsPerHost: 1000,
ForceAttemptHTTP2: true,
DisableCompression: true,
IdleConnTimeout: 0,
MaxIdleConns: 0,
MaxConnsPerHost: 0,
},
Timeout: 0,
}
}
func buildClaimHeaders() {
claimRequestHeaders = http.Header{
"Content-Type": {"application/json"},
"Authorization": {claimToken},
"User-Agent": {userAgent},
}
}
func snipeNitro(giftId string, start time.Time) (int, string, time.Duration) {
var request, requestErr = http.NewRequest("POST", "https://discord.com/api/v" + apiVersion + "/entitlements/gift-codes/" + giftId + "/redeem", bytes.NewBuffer([]byte(`{}`)))
if requestErr != nil { return 0, requestErr.Error(), time.Now().Sub(start) }
request.Header = claimRequestHeaders
var response, responseErr = discordClient.Do(request)
if responseErr != nil { return 0, responseErr.Error(), time.Now().Sub(start) }
defer response.Body.Close(); bodyBytes, _ := ioutil.ReadAll(response.Body)
return response.StatusCode, string(bodyBytes), time.Now().Sub(start)
// Update how 2 things are handled in this function and it'll improve speeds by a lot (figure it out xo)
}
func checkRateLimit() (bool, string) {
var request, requestErr = http.NewRequest("GET", "https://discord.com/api/v" + apiVersion + "/invites/xo", nil)
if requestErr != nil { return true, "Unknown" }
var response, responseErr = discordClient.Do(request)
if responseErr != nil { return true, "Unknown" }
defer response.Body.Close();
if response.StatusCode == 429 {
return true, response.Header.Get("retry-after");
} else {
return false, ""
}
}
func discordPost(url string, data string) { var request *fasthttp.Request = fasthttp.AcquireRequest(); defer fasthttp.ReleaseRequest(request); request.Header.SetMethod("POST"); request.SetRequestURI(url); request.Header.Set("User-Agent", "Tsukuyomi/XO"); request.Header.Set("Content-Type", "application/json"); request.SetBody([]byte(data)); webhookClient.Do(request, nil); }