Documentation ¶
Overview ¶
Package fallacy implements the fallacy bot library.
Index ¶
- Variables
- func BanServer(roomID id.RoomID, homeserver string) (err error)
- func BanUser(body []string, ev event.Event)
- func CommandPurge(body []string, ev event.Event)
- func HandleMember(s mautrix.EventSource, ev *event.Event)
- func HandleMessage(s mautrix.EventSource, ev *event.Event)
- func HandleServerPolicy(s mautrix.EventSource, ev *event.Event)
- func HandleTombstone(_ mautrix.EventSource, ev *event.Event)
- func HandleUserPolicy(s mautrix.EventSource, ev *event.Event)
- func ImportList(body []string, ev event.Event)
- func KickUser(body []string, ev event.Event)
- func MuteUser(body []string, ev event.Event)
- func PinMessage(body []string, ev event.Event)
- func PurgeMessages(body []string, ev event.Event)
- func PurgeUser(body []string, ev event.Event)
- func RedactMessage(ev event.Event) (err error)
- func Register(keyword string, callback Callback)
- func SayMessage(body []string, ev event.Event)
- func UnmuteUser(body []string, ev event.Event)
- func WelcomeMember(display string, sender id.UserID, roomID id.RoomID) (err error)
- type Callback
- type Config
- type Syncer
- func (s *Syncer) GetFilterJSON(id.UserID) *mautrix.Filter
- func (s *Syncer) OnEvent(callback mautrix.EventHandler)
- func (s *Syncer) OnEventType(eventType event.Type, callback mautrix.EventHandler)
- func (s *Syncer) OnFailedSync(res *mautrix.RespSync, err error) (time.Duration, error)
- func (s *Syncer) OnSync(callback mautrix.SyncHandler)
- func (s *Syncer) ProcessResponse(res *mautrix.RespSync, since string) (err error)
Constants ¶
This section is empty.
Variables ¶
var ( // Client is the currently connected Client Client *mautrix.Client )
Functions ¶
func CommandPurge ¶
CommandPurge is a simple function to be invoked by the purge keyword.
func HandleMember ¶
func HandleMember(s mautrix.EventSource, ev *event.Event)
HandleMember handles `m.room.member` events.
func HandleMessage ¶
func HandleMessage(s mautrix.EventSource, ev *event.Event)
HandleMessage handles m.room.message events.
func HandleServerPolicy ¶
func HandleServerPolicy(s mautrix.EventSource, ev *event.Event)
HandleServerPolicy handles m.policy.rule.server events. Initially limited to room admins but could possibly be extended to members of specific rooms.
func HandleTombstone ¶
func HandleTombstone(_ mautrix.EventSource, ev *event.Event)
HandleTombStone handles m.room.tombstone events, automatically joining the new room.
func HandleUserPolicy ¶
func HandleUserPolicy(s mautrix.EventSource, ev *event.Event)
HandleUserPolicy handles m.policy.rule.user events by banning literals and glob banning globs.
func ImportList ¶
ImportList imports a banlist from another room.
func PinMessage ¶
PinMessage pins the replied-to event.
func PurgeMessages ¶
PurgeMessages redacts all message events newer than the specified event ID. It's loosely inspired by Telegram's SophieBot mechanics.
func PurgeUser ¶
PurgeUser redacts optionally a limit or all messages sent by a specified user. This is implemented efficiently using a filter to only obtain the events sent by the user.
func RedactMessage ¶
RedactMessage only redacts message events, skipping redaction events, already redacted events, and state events.
func SayMessage ¶
SayMessage sends a message into the chat.
func UnmuteUser ¶
UnmuteUser unmutes a target user in a specified room by utilizing power levels.
func WelcomeMember ¶
WelcomeMember welcomes a member via their display name. The display name is calculated as per https://spec.matrix.org/v1.1/Client-server-api/#calculating-the-display-name-for-a-user.
Types ¶
type Config ¶
type Config struct { // the name of the bot Name string // Device ID, use for avoiding flooding sessions with device IDs. DeviceID id.DeviceID `toml:"device_id"` // the homeserver to connect to, e.g., https://matrix-client.matrix.org Homeserver string // the username (mxid) to connect with, e.g., @fallacy:matrix.org Username id.UserID // the password to the account Password string // the rooms the bot responds in, omit to allow all rooms PermittedRooms []id.RoomID `toml:"permitted_rooms"` }
type Syncer ¶
type Syncer struct { // ParseEventContent determines whether or not event content should be parsed before passing to handlers. ParseEventContent bool // ParseErrorHandler is called when event.Content.ParseRaw returns an error. // If it returns false, the event will not be forwarded to listeners. ParseErrorHandler func(ev *event.Event, err error) bool // contains filtered or unexported fields }
func (*Syncer) OnEvent ¶
func (s *Syncer) OnEvent(callback mautrix.EventHandler)
func (*Syncer) OnEventType ¶
func (s *Syncer) OnEventType(eventType event.Type, callback mautrix.EventHandler)
OnEventType allows callers to be notified when there are new events for the given event type. There are no duplicate checks.
func (*Syncer) OnFailedSync ¶
OnFailedSync always returns a 10 second wait period between failed /syncs, never a fatal error.
func (*Syncer) OnSync ¶
func (s *Syncer) OnSync(callback mautrix.SyncHandler)