Documentation ¶
Index ¶
- Constants
- Variables
- type Db
- func (db *Db) AddCategory(name string) (id int, err error)
- func (db *Db) AddExplanation(e *Explanation) (ex *Explanation, err error)
- func (db *Db) AddTerm(t *Term) (*Term, error)
- func (db *Db) AddToBlacklist(guildID, channelID string) (err error)
- func (db *Db) CategoryID(s string) (id int, err error)
- func (db *Db) CreateServerIfNotExists(guildID string) (err error)
- func (db *Db) CtxInBlacklist(ctx *crouter.Ctx) bool
- func (db *Db) GetAllExplanations() (e []*Explanation, err error)
- func (db *Db) GetBlacklist(guildID string) (b []string, err error)
- func (db *Db) GetExplanation(s string) (e *Explanation, err error)
- func (db *Db) GetTerm(id int) (t *Term, err error)
- func (db *Db) GetTerms(mask TermFlag) (terms []*Term, err error)
- func (db *Db) IsBlacklisted(guildID, channelID string) (b bool)
- func (db *Db) RandomTerm() (t *Term, err error)
- func (db *Db) RemoveFromBlacklist(guildID, channelID string) (err error)
- func (db *Db) RemoveTerm(id int) (err error)
- func (db *Db) Search(input string, limit int) (terms []*Term, err error)
- func (db *Db) SetFlags(id int, flags TermFlag) (err error)
- type Explanation
- type Term
- type TermFlag
Constants ¶
const DBVersion = 2
DBVersion is the current database version
const EmbedColour = 0xe00d7a
EmbedColour is the embed colour used throughout the bot
Variables ¶
var ( ErrorAlreadyBlacklisted = errors.New("channel is already blacklisted") ErrorNotBlacklisted = errors.New("channel is not blacklisted") )
Errors for setting the blacklist
var DBVersions []string = []string{
`alter table public.terms add column flags integer not null default 0;
update public.info set schema_version = 2;`,
}
DBVersions is a slice of schemas for every database version
var (
ErrorNoRowsAffected = errors.New("no rows affected")
)
Errors related to database operations
Functions ¶
This section is empty.
Types ¶
type Db ¶
type Db struct { Pool *pgxpool.Pool Sugar *zap.SugaredLogger GuildCache *ttlcache.Cache }
Db ...
func (*Db) AddExplanation ¶
func (db *Db) AddExplanation(e *Explanation) (ex *Explanation, err error)
AddExplanation adds an explanation to the database
func (*Db) AddToBlacklist ¶
AddToBlacklist adds the given channelID to the blacklist for guildID
func (*Db) CategoryID ¶
CategoryID gets the ID from a category name
func (*Db) CreateServerIfNotExists ¶
CreateServerIfNotExists ...
func (*Db) CtxInBlacklist ¶
CtxInBlacklist is a wrapper around IsBlacklisted for crouter
func (*Db) GetAllExplanations ¶
func (db *Db) GetAllExplanations() (e []*Explanation, err error)
GetAllExplanations ...
func (*Db) GetBlacklist ¶
GetBlacklist returns the channel blacklist for guildID
func (*Db) GetExplanation ¶
func (db *Db) GetExplanation(s string) (e *Explanation, err error)
GetExplanation ...
func (*Db) IsBlacklisted ¶
IsBlacklisted returns true if a channel is blacklisted
func (*Db) RandomTerm ¶
RandomTerm gets a random term from the database
func (*Db) RemoveFromBlacklist ¶
RemoveFromBlacklist removes the given channelID from the blacklist for guildID
func (*Db) RemoveTerm ¶
RemoveTerm removes a term from the database
type Explanation ¶
type Explanation struct { ID int Name string Aliases []string Description string Created time.Time }
Explanation is a single explanation
type Term ¶
type Term struct { ID int `json:"id"` Category int `json:"-"` CategoryName string `json:"category"` Name string `json:"name"` Aliases []string `json:"aliases"` Description string `json:"description"` Source string `json:"source"` Created time.Time `json:"created"` Flags TermFlag `json:"flags"` // Rank is only populated with db.Search() Rank float64 `json:"-"` // Headline is only populated with db.Search() Headline string `json:"-"` }
Term holds info on a single term
func (*Term) RandomHidden ¶
RandomHidden returns true if the term is hidden from the random command
func (*Term) SearchHidden ¶
SearchHidden returns true if the term is hidden from search results
func (*Term) TermEmbed ¶
func (t *Term) TermEmbed() *discordgo.MessageEmbed
TermEmbed creates a Discord embed from a term object