/
success.go
124 lines (104 loc) · 2.69 KB
/
success.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
package polls
import (
"fmt"
"log"
"time"
"github.com/Nv7-Github/Nv7Haven/eod/types"
"github.com/bwmarrin/discordgo"
)
func (b *Polls) pollSuccess(p *types.Poll, dg *discordgo.Session) {
// Get news channel
var news string
var votecnt int
err := b.db.QueryRow(`SELECT news, votecnt FROM config WHERE guild=$1`, p.Guild).Scan(&news, &votecnt)
if err != nil {
log.Println("news err", err)
return
}
newsFunc := func(msg string) {
if votecnt != 0 && float32(p.Downvotes)/float32(votecnt) >= 0.3 { // Controversial
msg += " 🌩️"
}
// Send
_, err = dg.ChannelMessageSend(news, msg)
if err != nil {
log.Println("news err", err)
}
}
switch p.Kind {
case types.PollKindCombo:
err := b.elemCreate(p, newsFunc)
if err != nil {
log.Println("create error", err)
}
case types.PollKindImage:
err := b.elemImageSuccess(p, newsFunc)
if err != nil {
log.Println("image error", err)
}
case types.PollKindCategorize:
err := b.categorizeSuccess(p, newsFunc)
if err != nil {
log.Println("categorize error", err)
}
case types.PollKindUncategorize:
err := b.unCategorizeSuccess(p, newsFunc)
if err != nil {
log.Println("uncategorize error", err)
}
case types.PollKindComment:
err := b.elemMarkSuccess(p, newsFunc)
if err != nil {
log.Println("comment error", err)
}
case types.PollKindColor:
err := b.elemColorSuccess(p, newsFunc)
if err != nil {
log.Println("color error", err)
}
case types.PollKindCatImage:
err := b.catImageSuccess(p, newsFunc)
if err != nil {
log.Println("cat image error", err)
}
case types.PollKindCatComment:
err := b.catMarkSuccess(p, newsFunc)
if err != nil {
log.Println("cat comment error", err)
}
case types.PollKindCatColor:
err := b.catColorSuccess(p, newsFunc)
if err != nil {
log.Println("cat color error", err)
}
case types.PollKindQuery:
err := b.queryCreateSuccess(p, newsFunc)
if err != nil {
log.Println("query create error", err)
}
case types.PollKindDelQuery:
err := b.queryDeleteSuccess(p, newsFunc)
if err != nil {
log.Println("query delete error", err)
}
case types.PollKindQueryComment:
err := b.queryMarkSuccess(p, newsFunc)
if err != nil {
log.Println("query comment error", err)
}
case types.PollKindQueryColor:
err := b.queryColorSuccess(p, newsFunc)
if err != nil {
log.Println("query color error", err)
}
case types.PollKindQueryImage:
err := b.queryImageSuccess(p, newsFunc)
if err != nil {
log.Println("query image error", err)
}
}
b.deletePoll(p, dg)
}
func (b *Polls) pollContextMsg(p *types.Poll) string {
return fmt.Sprintf("(Lasted **%s** • By <@%s>)", time.Since(p.CreatedOn).Round(time.Second).String(), p.Creator)
}