2024-05-03 21:25:42 +02:00
|
|
|
package services
|
2024-05-03 17:39:11 +02:00
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"encoding/json"
|
|
|
|
|
"github.com/bwmarrin/discordgo"
|
|
|
|
|
"os"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type Server struct {
|
|
|
|
|
Name string `json:"name"`
|
|
|
|
|
GuildID string `json:"GuildID"`
|
|
|
|
|
Webhooks []*discordgo.Webhook `json:"Webhooks"`
|
|
|
|
|
}
|
|
|
|
|
|
2024-05-03 18:07:31 +02:00
|
|
|
var ServerList []Server
|
|
|
|
|
|
2024-05-03 21:25:42 +02:00
|
|
|
func InitServers() {
|
2024-05-03 18:07:31 +02:00
|
|
|
ServerList = readJson()
|
|
|
|
|
}
|
|
|
|
|
|
2024-05-03 17:39:11 +02:00
|
|
|
func AddServer(GuildID string, s *discordgo.Session) Server {
|
2024-05-03 23:29:06 +02:00
|
|
|
ServerList = readJson()
|
2024-05-03 17:39:11 +02:00
|
|
|
preview, err := s.GuildPreview(GuildID)
|
|
|
|
|
if err != nil {
|
|
|
|
|
}
|
|
|
|
|
Webhooks, _ := s.GuildWebhooks(GuildID)
|
|
|
|
|
|
|
|
|
|
server := Server{
|
|
|
|
|
Name: preview.Name,
|
|
|
|
|
GuildID: GuildID,
|
|
|
|
|
Webhooks: Webhooks,
|
|
|
|
|
}
|
|
|
|
|
var exists bool
|
|
|
|
|
|
2024-05-03 23:29:06 +02:00
|
|
|
for i, oldServer := range ServerList {
|
2024-05-03 17:39:11 +02:00
|
|
|
if oldServer.GuildID == server.GuildID {
|
2024-05-03 23:29:06 +02:00
|
|
|
ServerList[i] = server
|
2024-05-03 17:39:11 +02:00
|
|
|
exists = true
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if !exists {
|
2024-05-03 23:29:06 +02:00
|
|
|
ServerList = append(ServerList, server)
|
2024-05-03 17:39:11 +02:00
|
|
|
}
|
|
|
|
|
|
2024-05-03 23:29:06 +02:00
|
|
|
rankingsJson, _ := json.Marshal(ServerList)
|
2024-05-03 17:39:11 +02:00
|
|
|
err = os.WriteFile("servers.json", rankingsJson, 0644)
|
|
|
|
|
return server
|
|
|
|
|
}
|