Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var AwardsAddHandler = &framework.EventListener{ Name: "Award Add", HandlerConstructor: func(h *framework.Hanamaru) interface{} { return func(s *discordgo.Session, r *discordgo.MessageReactionAdd) { award := AwardType(r.Emoji.Name) m, _ := s.ChannelMessage(r.ChannelID, r.MessageID) if name, err := award.Name(); err == nil { hdb.MutateAwardCount(h.Db, r.GuildID, m.Author.ID, name, hdb.AwardIncrement) } } }, }
View Source
var AwardsRemoveHandler = &framework.EventListener{ Name: "Award Remove", HandlerConstructor: func(h *framework.Hanamaru) interface{} { return func(s *discordgo.Session, r *discordgo.MessageReactionRemove) { award := AwardType(r.Emoji.Name) m, _ := s.ChannelMessage(r.ChannelID, r.MessageID) if name, err := award.Name(); err == nil { hdb.MutateAwardCount(h.Db, r.GuildID, m.Author.ID, name, hdb.AwardDecrement) } } }, }
View Source
var BigEmoji = &framework.EventListener{ Name: "BigEmoji", HandlerConstructor: func(h *framework.Hanamaru) interface{} { return func(s *discordgo.Session, m *discordgo.MessageCreate) { if m.Author.Bot { return } emojis := util.ParseEmojis(m.Content) if len(emojis) == 1 && isSingleEmoji(m.Content) { s.ChannelMessageSendEmbed(m.ChannelID, constructEmojiEmbed(emojis[0], m.Author)) s.ChannelMessageDelete(m.ChannelID, m.Message.ID) } } }, }
View Source
var (
ErrInvalidAwardType = errors.New("invalid award type")
)
View Source
var Nhentai = &framework.EventListener{ Name: "NHentai", HandlerConstructor: func(h *framework.Hanamaru) interface{} { return func(s *discordgo.Session, m *discordgo.MessageCreate) { content := m.Content if m.Author.Bot || len(m.Mentions) > 0 { return } if strings.HasPrefix(m.Content, h.Prefix) { return } if channel, _ := s.Channel(m.ChannelID); channel != nil && !channel.NSFW { return } content = strings.TrimSpace(content) matches, err := ParseStringWithSixDigits(content) if err != nil { return } for _, match := range matches { n, err := util.ParseNhentai(match) if err != nil { s.ChannelMessageSend(m.ChannelID, strconv.Itoa(match)+": Not Found") } _, err = s.ChannelMessageSendEmbed(m.ChannelID, ConstructEmbed(n)) if err != nil { s.ChannelMessageSend(m.ChannelID, err.Error()) } } } }, }
View Source
var ReactionExpansion = &framework.EventListener{ Name: "Reaction Expansion", HandlerConstructor: func(h *framework.Hanamaru) interface{} { return func(s *discordgo.Session, r *discordgo.MessageReactionAdd) { if expansion, ok := expansionMap[r.Emoji.Name]; ok { s.MessageReactionRemove(r.ChannelID, r.MessageID, r.Emoji.APIName(), r.UserID) for _, emojiId := range expansion { s.MessageReactionAdd(r.ChannelID, r.MessageID, emojiId) } } } }, }
View Source
var Roboragi = &framework.EventListener{ Name: "Roboragi", HandlerConstructor: func(h *framework.Hanamaru) interface{} { return func(s *discordgo.Session, m *discordgo.MessageCreate) { if m.Author.Bot { return } if strings.HasPrefix(m.Content, h.Prefix) { return } for _, regex := range regexes { if matches := regex.FindAllStringSubmatch(m.Content, -1); len(matches) > 0 { var err error var media util.ALMedia if regex == animeRegex { media, err = util.GetAnimeInfoFromTitle(matches[0][1]) } if regex == mangaRegex { media, err = util.GetMangaInfoFromTitle(matches[0][1]) } if err != nil { return } _, err = s.ChannelMessageSendEmbed(m.ChannelID, roboragiEmbed(media)) if err != nil { s.ChannelMessageSend(m.ChannelID, err.Error()) return } return } } } }, }
Functions ¶
func ConstructEmbed ¶
func ConstructEmbed(n util.NHentai) *discordgo.MessageEmbed
Types ¶
Click to show internal directories.
Click to hide internal directories.