Documentation ¶
Index ¶
- type ChatLog
- type Config
- type Memory
- func (m *Memory) AddEmojiReactionToUser(discordUserID string, emoji string) (err error)
- func (m *Memory) FetchReadmeMessage(gistID string, gistFile github.GistFilename) (message string, err error)
- func (m *Memory) GetCommandSettings(command string) (settings types.CommandSettings, found bool, err error)
- func (m *Memory) GetDiscordUserForumUser(forumUserID string) (discordUserID string, err error)
- func (m *Memory) GetDiscordUserFromForumName(forumName string) (legacyUserID string, burgerUserID string, err error)
- func (m *Memory) GetForumNameFromDiscordUser(discordUserID string) (legacyUserName string, burgerUserName string, err error)
- func (m *Memory) GetForumUserFromDiscordUser(discordUserID string) (legacyUserID string, burgerUserID string, err error)
- func (m *Memory) GetMessageByID(messageID string) (message ChatLog, err error)
- func (m *Memory) GetMessagesForUser(discordUserID string) (messages []ChatLog, err error)
- func (m *Memory) GetRandomMessage() (result ChatLog, err error)
- func (m *Memory) GetRandomMessageFromUsers([]string) (result ChatLog, err error)
- func (m *Memory) GetRandomUser() (result string, err error)
- func (m *Memory) GetReadmeMessage() (message string, err error)
- func (m *Memory) GetTopMessages(top int) (result TopMessages, err error)
- func (m *Memory) GetTopReactions(top int, reaction string) (result []TopReactionEntry, err error)
- func (m *Memory) GetUserMessageCount(discordUserID string) (messageCount int, err error)
- func (m *Memory) GetUserOrCreate(discordUserID string) (result User)
- func (m *Memory) GetUserRank(discordUserID string) (rank int, err error)
- func (m *Memory) IsUserLegacyVerified(discordUserID string) (verified bool, err error)
- func (m *Memory) IsUserVerified(discordUserID string) (verified bool, err error)
- func (m *Memory) RecordChatLog(discordUserID string, discordChannel string, message string, messageID string) (err error)
- func (m *Memory) RemoveEmojiReactionFromUser(discordUserID string, emoji string) (err error)
- func (m *Memory) RemoveUser(id string) (err error)
- func (m *Memory) SetCommandSettings(command string, settings types.CommandSettings) (err error)
- func (m *Memory) UpdateReadmeMessage(session *discordgo.Session, original *discordgo.Message, upstream string) (err error)
- func (m *Memory) UpdateUser(user User) (err error)
- func (m *Memory) UpdateUserUsername(discordUserID string, username string) (err error)
- type MongoStorer
- func (m *MongoStorer) AddEmojiReactionToUser(discordUserID string, emoji string) (err error)
- func (m *MongoStorer) FetchReadmeMessage(gistID string, gistFile github.GistFilename) (message string, err error)
- func (m *MongoStorer) GetCommandSettings(command string) (settings types.CommandSettings, found bool, err error)
- func (m *MongoStorer) GetDiscordUserForumUser(forumUserID string) (discordUserID string, err error)
- func (m *MongoStorer) GetDiscordUserFromForumName(forumName string) (legacyUserID string, burgerUserID string, err error)
- func (m *MongoStorer) GetForumNameFromDiscordUser(discordUserID string) (legacyUserName string, burgerUserName string, err error)
- func (m *MongoStorer) GetForumUserFromDiscordUser(discordUserID string) (legacyUserID string, burgerUserID string, err error)
- func (m *MongoStorer) GetMessageByID(messageID string) (message ChatLog, err error)
- func (m *MongoStorer) GetMessagesForUser(discordUserID string) (messages []ChatLog, err error)
- func (m *MongoStorer) GetRandomMessage() (log ChatLog, err error)
- func (m *MongoStorer) GetRandomMessageFromUsers(users []string) (result ChatLog, err error)
- func (m *MongoStorer) GetRandomUser() (discordUserID string, err error)
- func (m *MongoStorer) GetReadmeMessage() (message string, err error)
- func (m *MongoStorer) GetTopMessages(top int) (result TopMessages, err error)
- func (m *MongoStorer) GetTopReactions(top int, reaction string) (result []TopReactionEntry, err error)
- func (m *MongoStorer) GetUserMessageCount(discordUserID string) (messageCount int, err error)
- func (m *MongoStorer) GetUserOrCreate(discordUserID string) (user User)
- func (m *MongoStorer) GetUserRank(discordUserID string) (rank int, err error)
- func (m *MongoStorer) IsUserLegacyVerified(discordUserID string) (verified bool, err error)
- func (m *MongoStorer) IsUserVerified(discordUserID string) (verified bool, err error)
- func (m *MongoStorer) RecordChatLog(discordUserID, discordChannel, message, messageID string) (err error)
- func (m *MongoStorer) RemoveEmojiReactionFromUser(discordUserID string, emoji string) (err error)
- func (m *MongoStorer) RemoveUser(id string) (err error)
- func (m *MongoStorer) SetCommandSettings(command string, settings types.CommandSettings) (err error)
- func (m *MongoStorer) UpdateReadmeMessage(session *discordgo.Session, original *discordgo.Message, upstream string) (err error)
- func (m *MongoStorer) UpdateUser(user User) (err error)
- func (m *MongoStorer) UpdateUserUsername(discordUserID string, username string) (err error)
- type ReactionCounter
- type Readme
- type Storer
- type TopMessages
- type TopMessagesEntry
- type TopReactionEntry
- type User
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ChatLog ¶
type ChatLog struct { Timestamp int64 DiscordUserID string DiscordChannel string Message string DiscordMessageID string }
ChatLog represents a single logged chat message from Discord
type Config ¶
type Config struct { MongoHost string `split_words:"true" required:"true"` MongoPort string `split_words:"true" required:"true"` MongoName string `split_words:"true" required:"true"` MongoUser string `split_words:"true" required:"true"` MongoPass string `split_words:"true" required:"false"` }
Config represents database connection info
type Memory ¶
type Memory struct{}
func (*Memory) AddEmojiReactionToUser ¶
func (*Memory) FetchReadmeMessage ¶
func (*Memory) GetCommandSettings ¶
func (*Memory) GetDiscordUserForumUser ¶
func (*Memory) GetDiscordUserFromForumName ¶
func (*Memory) GetForumNameFromDiscordUser ¶
func (*Memory) GetForumUserFromDiscordUser ¶
func (*Memory) GetMessageByID ¶
func (*Memory) GetMessagesForUser ¶
func (*Memory) GetRandomMessage ¶
func (*Memory) GetRandomMessageFromUsers ¶
func (*Memory) GetRandomUser ¶
func (*Memory) GetReadmeMessage ¶
func (*Memory) GetTopMessages ¶
func (m *Memory) GetTopMessages(top int) (result TopMessages, err error)
func (*Memory) GetTopReactions ¶
func (m *Memory) GetTopReactions(top int, reaction string) (result []TopReactionEntry, err error)
func (*Memory) GetUserMessageCount ¶
func (*Memory) GetUserOrCreate ¶
func (*Memory) GetUserRank ¶
func (*Memory) IsUserLegacyVerified ¶
func (*Memory) IsUserVerified ¶
func (*Memory) RecordChatLog ¶
func (*Memory) RemoveEmojiReactionFromUser ¶
func (*Memory) RemoveUser ¶
func (*Memory) SetCommandSettings ¶
func (m *Memory) SetCommandSettings(command string, settings types.CommandSettings) (err error)
func (*Memory) UpdateReadmeMessage ¶
func (*Memory) UpdateUser ¶
type MongoStorer ¶
type MongoStorer struct {
// contains filtered or unexported fields
}
MongoStorer exposes a storage MongoStorer for the bot
func New ¶
func New(config Config) (m *MongoStorer, err error)
New constructs a new storage API and connects to the database
func (*MongoStorer) AddEmojiReactionToUser ¶
func (m *MongoStorer) AddEmojiReactionToUser(discordUserID string, emoji string) (err error)
AddEmojiReactionToUser records an emoji reaction to a message of a discordUser.
func (*MongoStorer) FetchReadmeMessage ¶
func (m *MongoStorer) FetchReadmeMessage(gistID string, gistFile github.GistFilename) (message string, err error)
FetchReadmeMessage fetches already sent message to upstream
func (*MongoStorer) GetCommandSettings ¶
func (m *MongoStorer) GetCommandSettings(command string) (settings types.CommandSettings, found bool, err error)
GetCommandSettings returns command settings and uses a cache
func (*MongoStorer) GetDiscordUserForumUser ¶
func (m *MongoStorer) GetDiscordUserForumUser(forumUserID string) (discordUserID string, err error)
GetDiscordUserForumUser returns a discord user, a blank string or an error
func (*MongoStorer) GetDiscordUserFromForumName ¶
func (m *MongoStorer) GetDiscordUserFromForumName(forumName string) (legacyUserID string, burgerUserID string, err error)
GetDiscordUserFromForumName returns user's name on SA-MP Forums, a blank string or an error
func (*MongoStorer) GetForumNameFromDiscordUser ¶
func (m *MongoStorer) GetForumNameFromDiscordUser(discordUserID string) (legacyUserName string, burgerUserName string, err error)
GetForumNameFromDiscordUser returns user's name on SA-MP Forums & Burgershot, a blank string or an error
func (*MongoStorer) GetForumUserFromDiscordUser ¶
func (m *MongoStorer) GetForumUserFromDiscordUser(discordUserID string) (legacyUserID string, burgerUserID string, err error)
GetForumUserFromDiscordUser returns a link to user's profile, a blank string or an error
func (*MongoStorer) GetMessageByID ¶
func (m *MongoStorer) GetMessageByID(messageID string) (message ChatLog, err error)
func (*MongoStorer) GetMessagesForUser ¶
func (m *MongoStorer) GetMessagesForUser(discordUserID string) (messages []ChatLog, err error)
GetMessagesForUser returns all messages from the given discord user.
func (*MongoStorer) GetRandomMessage ¶
func (m *MongoStorer) GetRandomMessage() (log ChatLog, err error)
GetRandomMessage returns a random message from the database.
func (*MongoStorer) GetRandomMessageFromUsers ¶
func (m *MongoStorer) GetRandomMessageFromUsers(users []string) (result ChatLog, err error)
func (*MongoStorer) GetRandomUser ¶
func (m *MongoStorer) GetRandomUser() (discordUserID string, err error)
GetRandomUser returns a random Discord user ID
func (*MongoStorer) GetReadmeMessage ¶
func (m *MongoStorer) GetReadmeMessage() (message string, err error)
GetReadmeMessage gets the readme message id from the database
func (*MongoStorer) GetTopMessages ¶
func (m *MongoStorer) GetTopMessages(top int) (result TopMessages, err error)
GetTopMessages returns n users with the most messages
func (*MongoStorer) GetTopReactions ¶
func (m *MongoStorer) GetTopReactions(top int, reaction string) (result []TopReactionEntry, err error)
GetTopReactions gets the top <top> amount of people who received reaction <reaction>
func (*MongoStorer) GetUserMessageCount ¶
func (m *MongoStorer) GetUserMessageCount(discordUserID string) (messageCount int, err error)
func (*MongoStorer) GetUserOrCreate ¶
func (m *MongoStorer) GetUserOrCreate(discordUserID string) (user User)
GetUserOrCreate gets a user or creates one and returns it
func (*MongoStorer) GetUserRank ¶
func (m *MongoStorer) GetUserRank(discordUserID string) (rank int, err error)
GetUserRank returns rank according to most messages sent with the top user having rank 1
func (*MongoStorer) IsUserLegacyVerified ¶
func (m *MongoStorer) IsUserLegacyVerified(discordUserID string) (verified bool, err error)
IsUserLegacyVerified returns a discord user, a blank string or an error Difference between IsUserVerified: this specifically checks if the user verified on SA:MP.
func (*MongoStorer) IsUserVerified ¶
func (m *MongoStorer) IsUserVerified(discordUserID string) (verified bool, err error)
IsUserVerified returns a discord user, a blank string or an error Difference between IsUserLegacyVerified: this specifically checks if the user verified on burgershot.
func (*MongoStorer) RecordChatLog ¶
func (m *MongoStorer) RecordChatLog(discordUserID, discordChannel, message, messageID string) (err error)
RecordChatLog records a chat message from a user in a channel
func (*MongoStorer) RemoveEmojiReactionFromUser ¶
func (m *MongoStorer) RemoveEmojiReactionFromUser(discordUserID string, emoji string) (err error)
RemoveEmojiReactionFromUser records an emoji reaction to a message of a discordUser.
func (*MongoStorer) RemoveUser ¶
func (m *MongoStorer) RemoveUser(id string) (err error)
RemoveUser removes a user by their Discord ID
func (*MongoStorer) SetCommandSettings ¶
func (m *MongoStorer) SetCommandSettings(command string, settings types.CommandSettings) (err error)
SetCommandSettings upsets command settings
func (*MongoStorer) UpdateReadmeMessage ¶
func (m *MongoStorer) UpdateReadmeMessage(session *discordgo.Session, original *discordgo.Message, upstream string) (err error)
UpdateReadmeMessage updates the message in both channel and database
func (*MongoStorer) UpdateUser ¶
func (m *MongoStorer) UpdateUser(user User) (err error)
UpdateUser aims to update a full document of a user
func (*MongoStorer) UpdateUserUsername ¶
func (m *MongoStorer) UpdateUserUsername(discordUserID string, username string) (err error)
UpdateUserUsername updates a person's Burgershot forum name in the database. In case they have their name changed.
type ReactionCounter ¶
type Readme ¶
type Readme struct {
MessageID string `json:"readme_message_id" bson:"readme_message_id"`
}
Readme holds the readme message id from the mongo database
type Storer ¶
type Storer interface { RecordChatLog(discordUserID, discordChannel, message, messageID string) (err error) GetMessagesForUser(discordUserID string) (messages []ChatLog, err error) GetTopMessages(top int) (result TopMessages, err error) GetUserMessageCount(discordUserID string) (messageCount int, err error) GetUserRank(discordUserID string) (rank int, err error) GetRandomMessage() (result ChatLog, err error) GetRandomMessageFromUsers([]string) (result ChatLog, err error) GetRandomUser() (result string, err error) GetMessageByID(messageID string) (message ChatLog, err error) GetUserOrCreate(discordUserID string) (result User) UpdateUserUsername(discordUserID, username string) (err error) UpdateUser(user User) (err error) RemoveUser(id string) (err error) IsUserVerified(discordUserID string) (verified bool, err error) IsUserLegacyVerified(discordUserID string) (verified bool, err error) GetDiscordUserForumUser(forumUserID string) (discordUserID string, err error) GetForumUserFromDiscordUser(discordUserID string) (legacyUserID, burgerUserID string, err error) GetForumNameFromDiscordUser(discordUserID string) (legacyUserName, burgerUserName string, err error) GetDiscordUserFromForumName(forumName string) (legacyUserID, burgerUserID string, err error) AddEmojiReactionToUser(discordUserID, emoji string) (err error) RemoveEmojiReactionFromUser(discordUserID, emoji string) (err error) GetTopReactions(top int, reaction string) (result []TopReactionEntry, err error) SetCommandSettings(command string, settings types.CommandSettings) (err error) GetCommandSettings(command string) (settings types.CommandSettings, found bool, err error) GetReadmeMessage() (message string, err error) FetchReadmeMessage(gistID string, gistFile github.GistFilename) (message string, err error) UpdateReadmeMessage(session *discordgo.Session, original *discordgo.Message, upstream string) (err error) }
Storer describes a type that is capable of persisting data
type TopMessages ¶
type TopMessages []TopMessagesEntry
TopMessages is a list of users with the most messages
func (TopMessages) Len ¶
func (s TopMessages) Len() int
func (TopMessages) Less ¶
func (s TopMessages) Less(i, j int) bool
func (TopMessages) Swap ¶
func (s TopMessages) Swap(i, j int)
type TopMessagesEntry ¶
TopMessagesEntry is a user and their message count
type TopReactionEntry ¶
type User ¶
type User struct { DiscordUserID string `json:"discord_user_id" bson:"discord_user_id"` ForumUserID string `json:"forum_user_id" bson:"forum_user_id"` BurgerUserID string `json:"burger_user_id" bson:"burger_user_id"` ForumUserName string `json:"forum_user_name" bson:"forum_user_name"` BurgerUserName string `json:"burger_user_name" bson:"burger_user_name"` BurgerVerify bool `json:"burgershot_verified" bson:"burgershot_verified"` ReceivedReactions []ReactionCounter `json:"received_reactions" bson:"received_reactions,omitempty"` }
User is a recorded and verified burgershot forum user.