https://github.com/robertgzr/joe-bolt-memory
Bolt memory for the Joe bot library
https://github.com/robertgzr/joe-bolt-memory
boltdb bot joe
Last synced: about 1 month ago
JSON representation
Bolt memory for the Joe bot library
- Host: GitHub
- URL: https://github.com/robertgzr/joe-bolt-memory
- Owner: robertgzr
- License: bsd-3-clause
- Created: 2019-09-09T06:53:42.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-03-14T11:23:40.000Z (about 3 years ago)
- Last Synced: 2025-03-22T22:17:06.016Z (about 1 year ago)
- Topics: boltdb, bot, joe
- Language: Go
- Size: 10.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Joe Bot - Bolt Memory
Integration Joe with Bolt. https://github.com/go-joe/joe
---
This repository contains a module for the [Joe Bot library][joe]. Built using
[etcd-io/bbolt][bbolt].
## Getting Started
This library is packaged using [Go modules][go-modules]. You can get it via:
```
go get github.com/robertgzr/joe-bolt-memory
```
### Example usage
```go
package main
import (
"github.com/go-joe/joe"
"github.com/robertgzr/joe-bolt-memory"
)
func main() {
b := joe.New("example-bot",
bolt.Memory(os.Getenv("DB_PATH")),
…
)
b.Respond("remember (.+) is (.+)", b.Remember)
b.Respond("what is (.+)", b.WhatIs)
err := b.Run()
if err != nil {
b.Logger.Fatal(err.Error())
}
}
func (b *Bot) Remember(msg joe.Message) error {
key, value := msg.Matches[0], msg.Matches[1]
msg.Respond("OK, I'll remember %s is %s", key, value)
return b.Store.Set(key, value)
}
func (b *Bot) WhatIs(msg joe.Message) error {
key := msg.Matches[0]
var value string
ok, err := b.Store.Get(key, &value)
if err != nil {
return errors.Wrapf(err, "failed to retrieve key %q from brain", key)
}
if ok {
msg.Respond("%s is %s", key, value)
} else {
msg.Respond("I do not remember %q", key)
}
return nil
}
```
## License
[BSD-3-Clause](LICENSE)
[joe]: https://github.com/go-joe/joe
[bbolt]: https://github.com/etcd-io/bbolt
[go-modules]: https://github.com/golang/go/wiki/Modules