Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
V4NSH4J
GitHub Repository: V4NSH4J/discord-mass-DM-GO
Path: blob/main/client/errors.go
310 views
1
package client
2
3
import (
4
"fmt"
5
"net"
6
"net/url"
7
"os"
8
"strconv"
9
"strings"
10
)
11
12
type errorMessage struct {
13
StatusCode int
14
debugger string
15
ErrorMsg string
16
Op string
17
}
18
19
func lastString(ss []string) string {
20
return ss[len(ss)-1]
21
}
22
23
// func createErrorString(err: string) (msg, debugger string) {
24
func createErrorString(err error) (msg, debugger string) {
25
msg = fmt.Sprintf("Request returned a Syscall Error: %s", err)
26
debugger = fmt.Sprintf("%#v\n", err)
27
return
28
}
29
30
func createErrorMessage(StatusCode int, err error, op string) errorMessage {
31
msg := fmt.Sprintf("Request returned a Syscall Error: %s", err)
32
debugger := fmt.Sprintf("%#v\n", err)
33
return errorMessage{StatusCode: StatusCode, debugger: debugger, ErrorMsg: msg, Op: op}
34
}
35
36
func parseError(err error) (errormessage errorMessage) {
37
var op string
38
39
httpError := string(err.Error())
40
status := lastString(strings.Split(httpError, "StatusCode:"))
41
StatusCode, _ := strconv.Atoi(status)
42
if StatusCode != 0 {
43
msg, debugger := createErrorString(err)
44
return errorMessage{StatusCode: StatusCode, debugger: debugger, ErrorMsg: msg}
45
}
46
if uerr, ok := err.(*url.Error); ok {
47
if noerr, ok := uerr.Err.(*net.OpError); ok {
48
op = noerr.Op
49
if SyscallError, ok := noerr.Err.(*os.SyscallError); ok {
50
if noerr.Timeout() {
51
return createErrorMessage(408, SyscallError, op)
52
}
53
return createErrorMessage(401, SyscallError, op)
54
} else if AddrError, ok := noerr.Err.(*net.AddrError); ok {
55
return createErrorMessage(405, AddrError, op)
56
} else if DNSError, ok := noerr.Err.(*net.DNSError); ok {
57
return createErrorMessage(421, DNSError, op)
58
} else {
59
return createErrorMessage(421, noerr, op)
60
}
61
}
62
if uerr.Timeout() {
63
return createErrorMessage(408, uerr, op)
64
}
65
}
66
return
67
}
68
69
type errExtensionNotExist struct {
70
Context string
71
}
72
73
func (w *errExtensionNotExist) Error() string {
74
return fmt.Sprintf("Extension {{ %s }} is not Supported by CycleTLS please raise an issue", w.Context)
75
}
76
77
func raiseExtensionError(info string) *errExtensionNotExist {
78
return &errExtensionNotExist{
79
Context: info,
80
}
81
}
82
83