grim/wasdead

I forgot to push the database code
draft
2019-03-22, Ruin
052f0fba0be0
Parents 1dceadde8ee2
Children 40fde058596a
I forgot to push the database code
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/database/bitcask.go Fri Mar 22 15:09:24 2019 -0700
@@ -0,0 +1,35 @@
+package database
+
+import (
+ "github.com/prologic/bitcask"
+)
+
+type db_bitcask struct {
+ database *bitcask.Bitcask
+}
+
+func init() {
+ database, _ := bitcask.Open("./db")
+
+ Register("bitcask", db_bitcask{
+ database: database,
+ })
+}
+
+func (db db_bitcask) GetChannel(guildid string) string {
+ data, err := db.database.Get(guildid)
+
+ if err != nil {
+ return ""
+ }
+
+ return string(data)
+}
+
+func (db db_bitcask) SetChannel(guildid, channel string) {
+ db.database.Put(guildid, []byte(channel))
+}
+
+func (db db_bitcask) Close() {
+ db.database.Close()
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/database/database.go Fri Mar 22 15:09:24 2019 -0700
@@ -0,0 +1,21 @@
+package database
+
+type Database interface {
+ SetChannel(guildid, channel string)
+ GetChannel(guildid string) string
+ Close()
+}
+
+var supported map[string]Database
+
+func Register(name string, db Database) {
+ if len(supported) <= 0 {
+ supported = make(map[string]Database)
+ }
+
+ supported[name] = db
+}
+
+func Get(name string) Database {
+ return supported[name]
+}