all repos — paprika @ 39dcd5ae478cf7795e4bdd5a919eaf608bd416a1

go rewrite of taigabot

plugins/listenbrainz/db.go (view raw)

 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
package listenbrainz

import (
	"fmt"

	"git.icyphox.sh/taigobot/db"
	"github.com/dgraph-io/badger/v3"
)

// Store the Listenbrainz username against the nick.
func Setup(lbzUser, nick string) error {
	err := db.DB.Update(func(txn *badger.Txn) error {
		err := txn.Set([]byte(fmt.Sprintf("lbz/%s", nick)), []byte(lbzUser))
		return err
	})
	if err != nil {
		return err
	}

	return nil
}

// Gets the Listenbrainz username from the DB.
func GetUser(nick string) (string, error) {
	var user string
	err := db.DB.View(func(txn *badger.Txn) error {
		item, err := txn.Get([]byte(fmt.Sprintf("lbz/%s", nick)))
		if err != nil {
			return err
		}

		err = item.Value(func(val []byte) error {
			user = string(val)
			return nil
		})
		return nil
	})

	if err != nil {
		return "", err
	}
	return user, nil
}