sqlite
This commit is contained in:
parent
87e02c43a8
commit
e9af59d541
6
go.mod
6
go.mod
|
@ -2,10 +2,12 @@ module inaba9000
|
|||
|
||||
go 1.17
|
||||
|
||||
require github.com/bwmarrin/discordgo v0.23.2
|
||||
require (
|
||||
github.com/bwmarrin/discordgo v0.23.2
|
||||
github.com/mattn/go-sqlite3 v1.14.15
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/Clinet/discordgo-embed v0.0.0-20220113222025-bafe0c917646 // indirect
|
||||
github.com/gorilla/websocket v1.4.0 // indirect
|
||||
golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16 // indirect
|
||||
)
|
||||
|
|
4
go.sum
4
go.sum
|
@ -1,8 +1,8 @@
|
|||
github.com/Clinet/discordgo-embed v0.0.0-20220113222025-bafe0c917646 h1:KkKIDMzyOhNnW5ew6KpRvEflciWqo09NmgVGqTZEj3M=
|
||||
github.com/Clinet/discordgo-embed v0.0.0-20220113222025-bafe0c917646/go.mod h1:0ydUl+01209LCyzJk68BeRtCN1IMrNJgX4IBmwmC1f8=
|
||||
github.com/bwmarrin/discordgo v0.23.2 h1:BzrtTktixGHIu9Tt7dEE6diysEF9HWnXeHuoJEt2fH4=
|
||||
github.com/bwmarrin/discordgo v0.23.2/go.mod h1:c1WtWUGN6nREDmzIpyTp/iD3VYt4Fpx+bVyfBG7JE+M=
|
||||
github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q=
|
||||
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
|
||||
github.com/mattn/go-sqlite3 v1.14.15 h1:vfoHhTN1af61xCRSWzFIWzx2YskyMTwHLrExkBOjvxI=
|
||||
github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
|
||||
golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16 h1:y6ce7gCWtnH+m3dCjzQ1PCuwl28DDIc3VNnvY29DlIA=
|
||||
golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||
|
|
87
main.go
87
main.go
|
@ -3,6 +3,7 @@ package main
|
|||
import (
|
||||
"bufio"
|
||||
"bytes"
|
||||
"database/sql"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
|
@ -17,6 +18,7 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/bwmarrin/discordgo"
|
||||
_ "github.com/mattn/go-sqlite3"
|
||||
)
|
||||
|
||||
// Variables used for command line parameters
|
||||
|
@ -401,6 +403,63 @@ func getFiles() {
|
|||
}
|
||||
}
|
||||
|
||||
func initdb() {
|
||||
file, err := os.Create("guilds.db")
|
||||
if err != nil {
|
||||
fmt.Println(err.Error())
|
||||
return
|
||||
}
|
||||
file.Close()
|
||||
db, err := sql.Open("sqlite3", "guilds.db")
|
||||
if err != nil {
|
||||
fmt.Println(err.Error())
|
||||
return
|
||||
}
|
||||
users_table := `CREATE TABLE users (
|
||||
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||
"userID" TEXT,
|
||||
"candy" INT);`
|
||||
query, err := db.Prepare(users_table)
|
||||
if err != nil {
|
||||
fmt.Println(err.Error())
|
||||
return
|
||||
}
|
||||
query.Exec()
|
||||
}
|
||||
|
||||
func addUser(userID string, candy int) {
|
||||
db, err := sql.Open("sqlite3", "guilds.db")
|
||||
if err != nil {
|
||||
fmt.Println(err.Error())
|
||||
return
|
||||
}
|
||||
records := `INSERT INTO users(userID, candy) VALUES (?, ?)`
|
||||
query, err := db.Prepare(records)
|
||||
if err != nil {
|
||||
fmt.Println(err.Error())
|
||||
return
|
||||
}
|
||||
_, err = query.Exec(userID, candy)
|
||||
if err != nil {
|
||||
fmt.Println(err.Error())
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
func delUser(userID string) {
|
||||
db, err := sql.Open("sqlite3", "guilds.db")
|
||||
if err != nil {
|
||||
fmt.Println(err.Error())
|
||||
return
|
||||
}
|
||||
query, err := db.Prepare(`DELETE FROM users WHERE userID = ?`)
|
||||
if err != nil {
|
||||
fmt.Println(err.Error())
|
||||
return
|
||||
}
|
||||
query.Exec()
|
||||
}
|
||||
|
||||
func main() {
|
||||
commitID, err := exec.Command("git", "log", "-1", "--format=%h").Output()
|
||||
if err != nil {
|
||||
|
@ -419,6 +478,17 @@ func main() {
|
|||
fmt.Println("Checking files.")
|
||||
getFiles()
|
||||
|
||||
_, err = os.Stat("guilds.db")
|
||||
if errors.Is(err, os.ErrNotExist) {
|
||||
fmt.Println("Guilds database not found!")
|
||||
fmt.Println("Initialising database...")
|
||||
initdb()
|
||||
fmt.Println("Testing database:")
|
||||
addUser("0000000", 100)
|
||||
delUser("0000000")
|
||||
fmt.Println("Test complete.")
|
||||
}
|
||||
|
||||
// create a new discord session using the provided bot token.
|
||||
dg, err := discordgo.New("Bot " + os.Args[1])
|
||||
if err != nil {
|
||||
|
@ -495,7 +565,7 @@ func messageCreate(s *discordgo.Session, m *discordgo.MessageCreate) {
|
|||
if m.Content == "🍬 ***Some candy has appeared! React to this message to claim it.*** 🍬" {
|
||||
s.MessageReactionAdd(m.ChannelID, m.Reference().MessageID, "🍬")
|
||||
}
|
||||
for i := 0; i < 240; i++ {
|
||||
for i := 0; i < 480; i++ {
|
||||
time.Sleep(500 * time.Millisecond)
|
||||
reactions, err := s.MessageReactions(m.ChannelID, m.Reference().MessageID, "🍬", 2, "", "")
|
||||
if err != nil {
|
||||
|
@ -1086,4 +1156,19 @@ func messageCreate(s *discordgo.Session, m *discordgo.MessageCreate) {
|
|||
if m.Content == "insert candy" && m.Author.ID == "228911057316347905" {
|
||||
candy(s, m.ChannelID)
|
||||
}
|
||||
|
||||
if strings.HasPrefix(m.Content, "pp!db") && m.Author.ID == "228911057316347905" {
|
||||
db, err := sql.Open("sqlite3", "guilds.db")
|
||||
if err != nil {
|
||||
fmt.Println(err.Error())
|
||||
return
|
||||
}
|
||||
query, err := db.Prepare(parseArgs(m.Content))
|
||||
if err != nil {
|
||||
s.ChannelMessageSend(m.ChannelID, err.Error())
|
||||
return
|
||||
}
|
||||
query.Exec()
|
||||
s.ChannelMessageSend(m.ChannelID, "OK")
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue