mux

package
v0.0.0-...-77c539c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 4, 2021 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Context

type Context struct {
	Fields          []string
	Content         string
	IsDirected      bool
	IsPrivate       bool
	HasPrefix       bool
	HasMention      bool
	HasMentionFirst bool
}

Context holds a bit of extra data we pass along to route handlers This way processing some of this only needs to happen once.

type HandlerFunc

type HandlerFunc func(*discordgo.Session, *discordgo.Message, *Context)

HandlerFunc is the function signature required for a message route handler.

type Mux

type Mux struct {
	Routes  []*Route
	Default *Route
	Prefix  string
}

Mux is the main struct for all mux methods.

func New

func New() *Mux

New returns a new Discord message route mux

func (*Mux) FuzzyMatch

func (m *Mux) FuzzyMatch(msg string) (*Route, []string)

FuzzyMatch attempts to find the best route match for a given message.

func (*Mux) Help

func (m *Mux) Help(ds *discordgo.Session, dm *discordgo.Message, ctx *Context)

Help function provides a build in "help" command that will display a list of all registered routes (commands). To use this function it must first be registered with the Mux.Route function.

func (*Mux) NotifRegister

func (m *Mux) NotifRegister(ds *discordgo.Session, dm *discordgo.Message, ctx *Context)

NotifRegister is used to register for notifications

func (*Mux) OnMessageCreate

func (m *Mux) OnMessageCreate(ds *discordgo.Session, mc *discordgo.MessageCreate)

OnMessageCreate is a DiscordGo Event Handler function. This must be registered using the DiscordGo.Session.AddHandler function. This function will receive all Discord messages and parse them for matches to registered routes.

func (*Mux) OngoingEvents

func (m *Mux) OngoingEvents(ds *discordgo.Session, dm *discordgo.Message, ctx *Context)

OngoingEvents returns ongoing events from the database

func (*Mux) Route

func (m *Mux) Route(pattern, desc string, cb HandlerFunc) (*Route, error)

Route allows you to register a route

func (*Mux) UpcomingEvents

func (m *Mux) UpcomingEvents(ds *discordgo.Session, dm *discordgo.Message, ctx *Context)

UpcomingEvents returns 3 upcoming events from the database

type Route

type Route struct {
	Pattern     string      // match pattern that should trigger this route handler
	Description string      // short description of this route
	Help        string      // detailed help string for this route
	Run         HandlerFunc // route handler function to call
}

Route holds information about a specific message route handler

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL