-
Notifications
You must be signed in to change notification settings - Fork 0
/
MessageHandle.go
136 lines (129 loc) · 4.81 KB
/
MessageHandle.go
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
package main
import (
"Intercite/config"
"regexp"
"strings"
"github.com/bwmarrin/discordgo"
)
func BroadCastMessage(msg string, msgID string, channelName string, originalServer string) {
var sentChannels []string
for i := range config.Sessions {
sess := config.Sessions[i]
for j := range sess.State.Guilds {
if sess.State.Guilds[j].ID != originalServer {
for k := range sess.State.Guilds[j].Channels {
if sess.State.Guilds[j].Channels[k].Type == discordgo.ChannelTypeGuildCategory && strings.ToLower(sess.State.Guilds[j].Channels[k].Name) == config.CategoryName {
InterID := sess.State.Guilds[j].Channels[k].ID
for l := range sess.State.Guilds[j].Channels {
if sess.State.Guilds[j].Channels[l].Type == discordgo.ChannelTypeGuildText && sess.State.Guilds[j].Channels[l].Name == channelName && sess.State.Guilds[j].Channels[l].ParentID == InterID {
exist := false
for alreadysent := range sentChannels {
if sentChannels[alreadysent] == sess.State.Guilds[j].Channels[l].ID {
exist = true
break
}
}
if !exist {
Sent, err := sess.ChannelMessageSend(sess.State.Guilds[j].Channels[l].ID, msg)
if err != nil {
//
} else {
sentChannels = append(sentChannels, Sent.ChannelID)
config.MessageCache[Sent.ID] = make(map[string]string)
config.MessageCache[Sent.ID]["content"] = Sent.Content
config.MessageCache[Sent.ID]["authorname"] = Sent.Author.Username
config.MessageCache[Sent.ID]["authorid"] = config.MessageCache[msgID]["authorid"]
config.MessageCache[Sent.ID]["guildOrigin"] = originalServer
}
break
}
}
}
}
}
}
}
}
}
func BroadCastDelete(msg string, msgID string, channelName string, originalServer string) {
for i := range config.Sessions {
sess := config.Sessions[i]
for j := range sess.State.Guilds {
if sess.State.Guilds[j].ID != originalServer {
for k := range sess.State.Guilds[j].Channels {
if sess.State.Guilds[j].Channels[k].Type == discordgo.ChannelTypeGuildCategory && strings.ToLower(sess.State.Guilds[j].Channels[k].Name) == config.CategoryName {
InterID := sess.State.Guilds[j].Channels[k].ID
for l := range sess.State.Guilds[j].Channels {
if sess.State.Guilds[j].Channels[l].Type == discordgo.ChannelTypeGuildText && sess.State.Guilds[j].Channels[l].Name == channelName && sess.State.Guilds[j].Channels[l].ParentID == InterID {
Messages, err := sess.ChannelMessages(sess.State.Guilds[j].Channels[l].ID, 10, "", "", msgID)
if err != nil {
//
}
for m := range Messages {
if Messages[m].Content == msg {
err = sess.ChannelMessageDelete(sess.State.Guilds[j].Channels[l].ID, Messages[m].ID)
if err != nil {
//
}
delete(config.MessageCache, Messages[m].ID)
break
}
}
}
}
}
}
}
}
}
}
func BroadCastEdit(msg string, msgID string, newMsg string, channelName string, originalServer string) {
for i := range config.Sessions {
sess := config.Sessions[i]
for j := range sess.State.Guilds {
if sess.State.Guilds[j].ID != originalServer {
for k := range sess.State.Guilds[j].Channels {
if sess.State.Guilds[j].Channels[k].Type == discordgo.ChannelTypeGuildCategory && strings.ToLower(sess.State.Guilds[j].Channels[k].Name) == config.CategoryName {
InterID := sess.State.Guilds[j].Channels[k].ID
for l := range sess.State.Guilds[j].Channels {
if sess.State.Guilds[j].Channels[l].Type == discordgo.ChannelTypeGuildText && sess.State.Guilds[j].Channels[l].Name == channelName && sess.State.Guilds[j].Channels[l].ParentID == InterID {
Messages, err := sess.ChannelMessages(sess.State.Guilds[j].Channels[l].ID, 10, "", "", msgID)
if err != nil {
//
}
for m := range Messages {
if Messages[m].Content == msg {
_, err = sess.ChannelMessageEdit(sess.State.Guilds[j].Channels[l].ID, Messages[m].ID, newMsg)
if err != nil {
//
}
break
}
}
}
}
}
}
}
}
}
}
func RawToFormatted(RawMessage string, UserName string, ServerName string, Attachments []*discordgo.MessageAttachment) string {
var re = regexp.MustCompile(`:`)
ServerName = re.ReplaceAllString(ServerName, "")
UserName = re.ReplaceAllString(UserName, "")
for i := range Attachments {
RawMessage += "" + "\n" + Attachments[i].URL
}
Msg := "[_" + ServerName + "_]\n"
Msg += "**" + UserName + "** : " + RawMessage
return Msg
}
func FormattedToRaw(FormattedMessage string) string {
SplitMsg := strings.Split(FormattedMessage, ": ")
if len(SplitMsg) > 1 {
Msg := strings.Split(SplitMsg[1], "")[0]
return Msg
}
return ""
}