/
cron.go
151 lines (122 loc) · 3.12 KB
/
cron.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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
package gostuff
import (
"fmt"
"log"
"os"
"github.com/robfig/cron"
)
func StartCron() {
c := cron.New()
c.AddFunc("@daily", updateRD)
// c.AddFunc("@weekly", ExportDatabase)
c.AddFunc("@hourly", UpdateHighScore)
c.Start()
}
func updateRD() { //increase rating RD by one in database if its less then 250, default is 350
problems, err := os.OpenFile("logs/mainLog.txt", os.O_APPEND|os.O_WRONLY, 0666)
defer problems.Close()
log := log.New(problems, "", log.LstdFlags|log.Lshortfile)
//check if database connection is open
if db.Ping() != nil {
fmt.Println("DATABASE DOWN! @updateRating() ping")
return
}
stmt, err := db.Prepare("update rating set bulletRD=bulletRD+1 where bulletRD < 250")
defer stmt.Close()
if err != nil {
log.Println(err)
return
}
_, err = stmt.Exec()
if err != nil {
log.Println(err)
return
}
stmt, err = db.Prepare("update rating set blitzRD=blitzRD+1 where blitzRD < 250")
if err != nil {
log.Println(err)
return
}
_, err = stmt.Exec()
if err != nil {
log.Println(err)
return
}
stmt, err = db.Prepare("update rating set standardRD=standardRD+1 where standardRD < 250")
if err != nil {
log.Println(err)
return
}
_, err = stmt.Exec()
if err != nil {
log.Println(err)
return
}
}
//remove games older then 180 days to clean up profile page, activated only on server startup
func RemoveOldGames(days string) {
problems, err := os.OpenFile("logs/mainLog.txt", os.O_APPEND|os.O_WRONLY, 0666)
defer problems.Close()
log := log.New(problems, "", log.LstdFlags|log.Lshortfile)
//check if database connection is open
if db.Ping() != nil {
log.Println("DATABASE DOWN!")
return
}
stmt, err := db.Prepare("DELETE FROM games WHERE date < NOW() - INTERVAL " + days + " DAY")
defer stmt.Close()
if err != nil {
log.Println(err)
return
}
_, err = stmt.Exec()
if err != nil {
log.Println(err)
return
}
}
// Remove old entries in activate table in database
func RemoveOldActivate(days string) {
problems, err := os.OpenFile("logs/mainLog.txt", os.O_APPEND|os.O_WRONLY, 0666)
defer problems.Close()
log := log.New(problems, "", log.LstdFlags|log.Lshortfile)
//check if database connection is open
if db.Ping() != nil {
log.Println("DATABASE DOWN!")
return
}
stmt, err := db.Prepare("DELETE FROM activate WHERE expire < NOW() - INTERVAL " + days + " DAY")
defer stmt.Close()
if err != nil {
log.Println(err)
return
}
_, err = stmt.Exec()
if err != nil {
log.Println(err)
return
}
}
// Remove old entries in the forgot table in the database
// If the entry is older then the days parameter then it will be deleted
func RemoveOldForgot(days string) {
problems, err := os.OpenFile("logs/mainLog.txt", os.O_APPEND|os.O_WRONLY, 0666)
defer problems.Close()
log := log.New(problems, "", log.LstdFlags|log.Lshortfile)
//check if database connection is open
if db.Ping() != nil {
log.Println("DATABASE DOWN!")
return
}
stmt, err := db.Prepare("DELETE FROM forgot WHERE expire < NOW() - INTERVAL " + days + " DAY")
defer stmt.Close()
if err != nil {
log.Println(err)
return
}
_, err = stmt.Exec()
if err != nil {
log.Println(err)
return
}
}