Documentation ¶
Overview ¶
Package fetch provides functionalities to fetch roles, channels, members and users by so called resolavbles. That means, these functions try to match a member, role or channel by their names, displaynames, IDs or mentions as greedy as prossible.
Index ¶
- Variables
- func FetchChannel(s DataOutlet, guildID, resolvable string, ...) (*discordgo.Channel, error)
- func FetchMember(s DataOutlet, guildID, resolvable string, ...) (*discordgo.Member, error)
- func FetchRole(s DataOutlet, guildID, resolvable string, ...) (*discordgo.Role, error)
- type DataOutlet
- type DgrsDataOutlet
- func (o DgrsDataOutlet) GuildChannels(guildID string, options ...discordgo.RequestOption) (st []*discordgo.Channel, err error)
- func (o DgrsDataOutlet) GuildMembers(guildID string, _ string, _ int, options ...discordgo.RequestOption) (st []*discordgo.Member, err error)
- func (o DgrsDataOutlet) GuildRoles(guildID string, options ...discordgo.RequestOption) ([]*discordgo.Role, error)
Constants ¶
This section is empty.
Variables ¶
var ( RoleCheckFuncs = []func(*discordgo.Role, string) bool{ func(r *discordgo.Role, resolvable string) bool { return r.ID == resolvable }, func(r *discordgo.Role, resolvable string) bool { return r.Name == resolvable }, func(r *discordgo.Role, resolvable string) bool { return strings.EqualFold(r.Name, resolvable) }, func(r *discordgo.Role, resolvable string) bool { return strings.HasPrefix(strings.ToLower(r.Name), strings.ToLower(resolvable)) }, func(r *discordgo.Role, resolvable string) bool { return strings.Contains(strings.ToLower(r.Name), strings.ToLower(resolvable)) }, } MemberCheckFuncs = []func(*discordgo.Member, string) bool{ func(r *discordgo.Member, resolvable string) bool { return r.User.ID == resolvable }, func(r *discordgo.Member, resolvable string) bool { return r.User.Username == resolvable }, func(r *discordgo.Member, resolvable string) bool { return strings.EqualFold(r.User.Username, resolvable) }, func(r *discordgo.Member, resolvable string) bool { return strings.HasPrefix(strings.ToLower(r.User.Username), strings.ToLower(resolvable)) }, func(r *discordgo.Member, resolvable string) bool { return strings.Contains(strings.ToLower(r.User.Username), strings.ToLower(resolvable)) }, func(r *discordgo.Member, resolvable string) bool { return r.Nick == resolvable }, func(r *discordgo.Member, resolvable string) bool { return r.Nick != "" && strings.EqualFold(r.Nick, resolvable) }, func(r *discordgo.Member, resolvable string) bool { return r.Nick != "" && strings.HasPrefix(strings.ToLower(r.Nick), strings.ToLower(resolvable)) }, func(r *discordgo.Member, resolvable string) bool { return r.Nick != "" && strings.Contains(strings.ToLower(r.Nick), strings.ToLower(resolvable)) }, } ChannelCheckFuncs = []func(*discordgo.Channel, string) bool{ func(r *discordgo.Channel, resolvable string) bool { return r.ID == resolvable }, func(r *discordgo.Channel, resolvable string) bool { l := len(resolvable) return l > 3 && r.ID == resolvable[2:l-1] }, func(r *discordgo.Channel, resolvable string) bool { return r.Name == resolvable }, func(r *discordgo.Channel, resolvable string) bool { return strings.EqualFold(r.Name, resolvable) }, func(r *discordgo.Channel, resolvable string) bool { return strings.HasPrefix(strings.ToLower(r.Name), strings.ToLower(resolvable)) }, func(r *discordgo.Channel, resolvable string) bool { return strings.Contains(strings.ToLower(r.Name), strings.ToLower(resolvable)) }, } GuildCheckFuncs = []func(*discordgo.Guild, string) bool{ func(r *discordgo.Guild, resolvable string) bool { return r.ID == resolvable }, func(r *discordgo.Guild, resolvable string) bool { l := len(resolvable) return l > 3 && r.ID == resolvable[2:l-1] }, func(r *discordgo.Guild, resolvable string) bool { return r.Name == resolvable }, func(r *discordgo.Guild, resolvable string) bool { return strings.EqualFold(r.Name, resolvable) }, func(r *discordgo.Guild, resolvable string) bool { return strings.HasPrefix(strings.ToLower(r.Name), strings.ToLower(resolvable)) }, func(r *discordgo.Guild, resolvable string) bool { return strings.Contains(strings.ToLower(r.Name), strings.ToLower(resolvable)) }, } )
var ( // ErrNotFound is returned when an object could // not be found ErrNotFound = errors.New("not found") )
Functions ¶
func FetchChannel ¶
func FetchChannel(s DataOutlet, guildID, resolvable string, condition ...func(*discordgo.Channel) bool) (*discordgo.Channel, error)
FetchChannel tries to fetch a channel on the specified guild by given resolvable and returns this channel, when found. You can pass a condition function which ignores the result if this functions returns false on the given object. If no object was found, ErrNotFound is returned. If any other unexpected error occurs during fetching, this error is returned as well.
func FetchMember ¶
func FetchMember(s DataOutlet, guildID, resolvable string, condition ...func(*discordgo.Member) bool) (*discordgo.Member, error)
FetchMember tries to fetch a member on the specified guild by given resolvable and returns this member, when found. You can pass a condition function which ignores the result if this functions returns false on the given object. If no object was found, ErrNotFound is returned. If any other unexpected error occurs during fetching, this error is returned as well.
func FetchRole ¶
func FetchRole(s DataOutlet, guildID, resolvable string, condition ...func(*discordgo.Role) bool) (*discordgo.Role, error)
FetchRole tries to fetch a role on the specified guild by given resolvable and returns this role, when found. You can pass a condition function which ignores the result if this functions returns false on the given object. If no object was found, ErrNotFound is returned. If any other unexpected error occurs during fetching, this error is returned as well.
Types ¶
type DataOutlet ¶
type DataOutlet interface { GuildRoles(guildID string, options ...discordgo.RequestOption) ([]*discordgo.Role, error) GuildMembers(guildID string, after string, limit int, options ...discordgo.RequestOption) (st []*discordgo.Member, err error) GuildChannels(guildID string, options ...discordgo.RequestOption) (st []*discordgo.Channel, err error) }
type DgrsDataOutlet ¶
type DgrsDataOutlet struct {
// contains filtered or unexported fields
}
func (DgrsDataOutlet) GuildChannels ¶
func (o DgrsDataOutlet) GuildChannels(guildID string, options ...discordgo.RequestOption) (st []*discordgo.Channel, err error)
func (DgrsDataOutlet) GuildMembers ¶
func (o DgrsDataOutlet) GuildMembers(guildID string, _ string, _ int, options ...discordgo.RequestOption) (st []*discordgo.Member, err error)
func (DgrsDataOutlet) GuildRoles ¶
func (o DgrsDataOutlet) GuildRoles(guildID string, options ...discordgo.RequestOption) ([]*discordgo.Role, error)