Add sar and ping role when posting puzzle
CI / build (push) Has been cancelled

This commit is contained in:
Dustin Pianalto
2020-09-02 01:49:29 -08:00
parent fb4d7977aa
commit 4db28f5c0b
9 changed files with 430 additions and 5 deletions
+46
View File
@@ -20,6 +20,14 @@ var postfixes = []postfix{
Name: "1_Update_Tags_Content_Length",
Invoke: updateTagsContentLength,
},
postfix{
Name: "2_Add_Table_Roles",
Invoke: addTableRoles,
},
postfix{
Name: "3_Update_Guild_Add_Puzzle_Role",
Invoke: updateGuildsAddPuzzleRole,
},
}
func RunPostfixes() {
@@ -96,3 +104,41 @@ func updateTagsContentLength(revert bool) error {
}
return nil
}
func addTableRoles(revert bool) error {
var queryString string
if !revert {
queryString = `CREATE TABLE roles(
id varchar(30) primary key,
guild_id varchar(30) not null references guilds(id),
self_assignable bool not null default false,
admin bool not null default false,
moderator bool not null default false
)`
} else {
queryString = `DROP TABLE roles`
}
_, err := Database.Exec(queryString)
if err != nil {
log.Println(err)
return err
}
return nil
}
func updateGuildsAddPuzzleRole(revert bool) error {
var queryString string
if !revert {
queryString = `ALTER TABLE guilds
ADD COLUMN puzzle_role varchar(30) references roles(id)`
} else {
queryString = `ALTER TABLE guilds
DROP COLUMN puzzle_role`
}
_, err := Database.Exec(queryString)
if err != nil {
log.Println(err)
return err
}
return nil
}
+13 -4
View File
@@ -49,14 +49,14 @@ func ProcessPuzzleEmail(mr *mail.Reader, dg *discordgo.Session) {
},
}
var guilds []Guild
queryString := `SELECT id, puzzle_channel from guilds`
queryString := `SELECT id, puzzle_channel, puzzle_role from guilds`
rows, err := Database.Query(queryString)
if err != nil {
log.Println(err)
}
for rows.Next() {
var guild Guild
err := rows.Scan(&guild.ID, &guild.PuzzleChannel)
err := rows.Scan(&guild.ID, &guild.PuzzleChannel, &guild.PuzzleRole)
if err != nil {
log.Println(err)
continue
@@ -74,8 +74,17 @@ func ProcessPuzzleEmail(mr *mail.Reader, dg *discordgo.Session) {
if g.PuzzleChannel == "" {
continue
}
msg := discordgo.MessageSend{
Embed: &e,
var msg discordgo.MessageSend
role, err := dg.State.Role(g.ID, g.PuzzleRole.String)
if err != nil {
msg = discordgo.MessageSend{
Embed: &e,
}
} else {
msg = discordgo.MessageSend{
Content: role.Mention(),
Embed: &e,
}
}
m, err := dg.ChannelMessageSendComplex(g.PuzzleChannel, &msg)
if err != nil {
+3
View File
@@ -1,5 +1,7 @@
package utils
import "database/sql"
type Guild struct {
ID string
WelcomeMessage string
@@ -7,4 +9,5 @@ type Guild struct {
LoggingChannel string
WelcomeChannel string
PuzzleChannel string
PuzzleRole sql.NullString
}