Documentation
¶
Index ¶
Constants ¶
View Source
const ( ReactionActionTypeReminderRequest = ReactionActionType(string(database.MessageTypeReminderRequest)) ReactionActionTypeReminder = ReactionActionType(string(database.MessageTypeReminder)) ReactionActionTypeReminderSuccess = ReactionActionType(string(database.MessageTypeReminderSuccess)) ReactionActionTypeDailyReminder = ReactionActionType(string(database.MessageTypeDailyReminder)) ReactionActionTypeAll = ReactionActionType("") )
Variables ¶
View Source
var ReactionsReminder = []string{"✅", "🔄", "➕", "1️⃣", "4️⃣", "🔟"}
View Source
var ReactionsReminderRequest = []string{"❌", "➕", "1️⃣", "4️⃣"}
Functions ¶
This section is empty.
Types ¶
type Action ¶
type Action struct {
Name string // Name of the action just for displaying
Examples []string // Example commands to trigger the action
Regex *regexp.Regexp // Regex the message must match to trigger the action
Action func(evt *MessageEvent, channel *database.Channel) error
}
Action defines an action the user can perform
type BotInfo ¶
type BotInfo struct {
BotName string
}
BotInfo holds general information about the bot account
type DataResponse ¶
type DataResponse struct {
Status string `json:"status" example:"success"`
Data interface{} `json:"data"`
}
DataResponse is the default response for data
type Database ¶
type Database interface {
// Reminders
GetPendingReminders(channel *database.Channel) ([]database.Reminder, error)
GetReminderForChannelIDByID(channelID string, reminderID int) (*database.Reminder, error)
AddReminder(remindTime time.Time, message string, active bool, repeatInterval uint64, channel *database.Channel) (*database.Reminder, error)
AddOrUpdateThirdPartyResourceReminder(remindTime time.Time, message string, channelID uint, thirdPartyResourceID uint, thirdPartyResourceIdentifier string) (*database.Reminder, error)
UpdateReminder(reminderID uint, remindTime time.Time, repeatInterval uint64, repeatTimes uint64) (*database.Reminder, error)
DeleteReminder(reminderID uint) (*database.Reminder, error)
// Messages
AddMessage(message *database.Message) (*database.Message, error)
GetMessageByExternalID(externalID string) (*database.Message, error)
GetMessagesByReminderID(id uint) ([]*database.Message, error)
GetLastMessageByTypeForReminder(msgType database.MessageType, reminderID uint) (*database.Message, error)
AddMessageFromMatrix(id string, timestamp int64, content *event.MessageEventContent, reminder *database.Reminder, msgType database.MessageType, channel *database.Channel) (*database.Message, error)
// Channels
GetChannel(id uint) (*database.Channel, error)
GetChannelByUserIdentifier(userID string) (*database.Channel, error)
GetChannelsByUserIdentifier(userID string) ([]database.Channel, error)
GetChannelsByChannelIdentifier(channelID string) ([]database.Channel, error)
GetChannelByUserAndChannelIdentifier(userID string, channelID string) (*database.Channel, error)
GetChannelList() ([]database.Channel, error)
ChannelCount() (int64, error)
GenerateNewCalendarSecret(channel *database.Channel) error
UpdateChannel(channelID uint, timeZone string, dailyReminder *uint, role *roles.Role) (*database.Channel, error)
ChannelSaveChanges(channel *database.Channel) error
AddChannel(userID, channelID string, role roles.Role) (*database.Channel, error)
CleanAdminChannels(keep []*database.Channel) error
DeleteChannel(channel *database.Channel) error
DeleteChannelsFromUser(userID string) error
// Events
IsEventKnown(externalID string) (bool, error)
AddEvent(event *database.Event) (*database.Event, error)
// Blocklist
IsUserBlocked(userID string) (bool, error)
GetBlockedUserList() ([]database.Blocklist, error)
AddUserToBlocklist(userID string, reason string) error
RemoveUserFromBlocklist(userID string) error
SQLDB() (*sql.DB, error)
// ThirdPartyResources
GetThirdPartyResources(resourceType database.ThirdPartyResourceType) ([]database.ThirdPartyResource, error)
GetThirdPartyResourcesByChannel(channelID uint) ([]database.ThirdPartyResource, error)
AddThirdPartyResource(resource *database.ThirdPartyResource) (*database.ThirdPartyResource, error)
DeleteThirdPartyResource(id uint) error
}
Database defines an interface for a data storage provider
type MessageErrorResponse ¶
type MessageErrorResponse struct {
Message string `json:"message" example:"Unauthenticated"`
Status string `json:"status" example:"error"`
} // @name ErrorResponse
MessageErrorResponse is a default response
type MessageEvent ¶
type MessageEvent struct {
Event *event.Event
Content *event.MessageEventContent
IsEncrypted bool
}
MessageEvent holds data from a message event
type MessageSuccessResponse ¶
type MessageSuccessResponse struct {
Message string `json:"message" example:"Inserted new reminder"`
Status string `json:"status" example:"success"`
} // @name SuccessResponse
MessageSuccessResponse is a default response
type Messenger ¶
type Messenger interface {
SendReplyToEvent(msg string, replyEvent *MessageEvent, channel *database.Channel, msgType database.MessageType) (resp *mautrix.RespSendEvent, err error)
CreateChannel(userID string) (*mautrix.RespCreateRoom, error)
SendFormattedMessage(msg, msgFormatted string, channel *database.Channel, msgType database.MessageType, relatedReminderID uint) (resp *mautrix.RespSendEvent, err error)
DeleteMessage(messageID, roomID string) error
SendNotice(msg, roomID string) (resp *mautrix.RespSendEvent, err error)
SendReaction(reaction string, toMessage string, channel *database.Channel) (resp *mautrix.RespSendEvent, err error)
}
Messenger defines an interface for interacting with matrix messages
type ReactionAction ¶
type ReactionAction struct {
Name string // Name of the action just for displaying
Keys []string // The key the reaction must match
Type ReactionActionType
Action func(message *database.Message, content *event.ReactionEventContent, evt *event.Event, channel *database.Channel) error
}
ReactionAction defines an action performed on receiving a reaction
type ReactionActionType ¶
type ReactionActionType string
ReactionActionType defines types of reaction actions
func (*ReactionActionType) HumanReadable ¶
func (reactionActionType *ReactionActionType) HumanReadable() string
type ReplyAction ¶
type ReplyAction struct {
Name string // Name of the action just for displaying
Examples []string // Example commands to trigger the action
Regex *regexp.Regexp // Regex the message must match to trigger the action
ReplyToTypes []database.MessageType // Kind of message the reply is for
Action func(evt *MessageEvent, channel *database.Channel, replyMessage *database.Message) error
}
ReplyAction defines actions that are performed on replies
Click to show internal directories.
Click to hide internal directories.