mirror of https://github.com/velour/catbase.git
47 lines
1.1 KiB
Go
47 lines
1.1 KiB
Go
package db
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
"os"
|
|
"time"
|
|
|
|
"github.com/rs/zerolog/log"
|
|
|
|
"github.com/velour/catbase/bot"
|
|
"github.com/velour/catbase/bot/msg"
|
|
"github.com/velour/catbase/config"
|
|
)
|
|
|
|
type DBPlugin struct {
|
|
bot bot.Bot
|
|
config *config.Config
|
|
}
|
|
|
|
func New(b bot.Bot) *DBPlugin {
|
|
p := &DBPlugin{b, b.Config()}
|
|
p.registerWeb()
|
|
return p
|
|
}
|
|
|
|
func (p *DBPlugin) Message(message msg.Message) bool { return false }
|
|
func (p *DBPlugin) Event(kind string, message msg.Message) bool { return false }
|
|
func (p *DBPlugin) ReplyMessage(msg.Message, string) bool { return false }
|
|
func (p *DBPlugin) BotMessage(message msg.Message) bool { return false }
|
|
func (p *DBPlugin) Help(channel string, parts []string) {}
|
|
|
|
func (p *DBPlugin) registerWeb() {
|
|
http.HandleFunc("/db/catbase.db", p.serveQuery)
|
|
}
|
|
|
|
func (p *DBPlugin) serveQuery(w http.ResponseWriter, r *http.Request) {
|
|
f, err := os.Open(p.bot.Config().DBFile)
|
|
defer f.Close()
|
|
if err != nil {
|
|
log.Error().Err(err).Msg("Error opening DB for web service")
|
|
fmt.Fprintf(w, "Error opening DB")
|
|
return
|
|
}
|
|
http.ServeContent(w, r, "catbase.db", time.Now(), f)
|
|
}
|