Documentation
¶
Index ¶
- Constants
- Variables
- type BackfillConfig
- type ChannelNameParams
- type Config
- func (c *Config) FormatBotDisplayname(bot *slack.Bot, team *slack.TeamInfo) string
- func (c *Config) FormatChannelName(params *ChannelNameParams) string
- func (c *Config) FormatDisplayname(user *DisplaynameParams) string
- func (c *Config) FormatTeamName(params *slack.TeamInfo) string
- func (c *Config) UnmarshalYAML(node *yaml.Node) error
- type DisplaynameParams
- type SlackAppLogin
- type SlackChatInfoChange
- type SlackChatResync
- type SlackClient
- func (s *SlackClient) Connect(ctx context.Context)
- func (s *SlackClient) CreateGroup(ctx context.Context, name string, users ...networkid.UserID) (*bridgev2.CreateChatResponse, error)
- func (s *SlackClient) Disconnect()
- func (s *SlackClient) FetchMessages(ctx context.Context, params bridgev2.FetchMessagesParams) (*bridgev2.FetchMessagesResponse, error)
- func (s *SlackClient) FillBridgeState(state status.BridgeState) status.BridgeState
- func (s *SlackClient) GetBackfillMaxBatchCount(ctx context.Context, portal *bridgev2.Portal, task *database.BackfillTask) int
- func (s *SlackClient) GetCapabilities(ctx context.Context, portal *bridgev2.Portal) *bridgev2.NetworkRoomCapabilities
- func (s *SlackClient) GetChatInfo(ctx context.Context, portal *bridgev2.Portal) (*bridgev2.ChatInfo, error)
- func (s *SlackClient) GetClient() *slack.Client
- func (s *SlackClient) GetEmoji(ctx context.Context, shortcode string) (string, bool)
- func (s *SlackClient) GetUserInfo(ctx context.Context, ghost *bridgev2.Ghost) (*bridgev2.UserInfo, error)
- func (s *SlackClient) HandleMatrixEdit(ctx context.Context, msg *bridgev2.MatrixEdit) error
- func (s *SlackClient) HandleMatrixMessage(ctx context.Context, msg *bridgev2.MatrixMessage) (*bridgev2.MatrixMessageResponse, error)
- func (s *SlackClient) HandleMatrixMessageRemove(ctx context.Context, msg *bridgev2.MatrixMessageRemove) error
- func (s *SlackClient) HandleMatrixReaction(ctx context.Context, msg *bridgev2.MatrixReaction) (reaction *database.Reaction, err error)
- func (s *SlackClient) HandleMatrixReactionRemove(ctx context.Context, msg *bridgev2.MatrixReactionRemove) error
- func (s *SlackClient) HandleMatrixReadReceipt(ctx context.Context, msg *bridgev2.MatrixReadReceipt) error
- func (s *SlackClient) HandleMatrixRoomName(ctx context.Context, msg *bridgev2.MatrixRoomName) (bool, error)
- func (s *SlackClient) HandleMatrixRoomTopic(ctx context.Context, msg *bridgev2.MatrixRoomTopic) (bool, error)
- func (s *SlackClient) HandleMatrixTyping(ctx context.Context, msg *bridgev2.MatrixTyping) error
- func (s *SlackClient) HandleSlackEvent(rawEvt any)
- func (s *SlackClient) HandleSocketModeEvent(evt socketmode.Event)
- func (s *SlackClient) IsLoggedIn() bool
- func (s *SlackClient) IsThisUser(ctx context.Context, userID networkid.UserID) bool
- func (s *SlackClient) LogoutRemote(ctx context.Context)
- func (s *SlackClient) PreHandleMatrixReaction(ctx context.Context, msg *bridgev2.MatrixReaction) (resp bridgev2.MatrixReactionPreResponse, err error)
- func (s *SlackClient) ResolveIdentifier(ctx context.Context, identifier string, createChat bool) (*bridgev2.ResolveIdentifierResponse, error)
- func (s *SlackClient) ResyncEmojisDueToNotFound(ctx context.Context) bool
- func (s *SlackClient) SearchUsers(ctx context.Context, query string) ([]*bridgev2.ResolveIdentifierResponse, error)
- func (s *SlackClient) SyncChannels(ctx context.Context)
- func (s *SlackClient) SyncEmojis(ctx context.Context)
- type SlackConnector
- func (s *SlackConnector) CreateLogin(ctx context.Context, user *bridgev2.User, flowID string) (bridgev2.LoginProcess, error)
- func (s *SlackConnector) GetCapabilities() *bridgev2.NetworkGeneralCapabilities
- func (s *SlackConnector) GetConfig() (example string, data any, upgrader up.Upgrader)
- func (s *SlackConnector) GetDBMetaTypes() database.MetaTypes
- func (s *SlackConnector) GetLoginFlows() []bridgev2.LoginFlow
- func (s *SlackConnector) GetName() bridgev2.BridgeName
- func (s *SlackConnector) Init(bridge *bridgev2.Bridge)
- func (s *SlackConnector) LoadUserLogin(ctx context.Context, login *bridgev2.UserLogin) error
- func (s *SlackConnector) SetMaxFileSize(maxSize int64)
- func (s *SlackConnector) Start(ctx context.Context) error
- func (s *SlackConnector) ValidateUserID(id networkid.UserID) bool
- type SlackEventMeta
- func (s *SlackEventMeta) AddLogContext(c zerolog.Context) zerolog.Context
- func (s *SlackEventMeta) GetID() networkid.MessageID
- func (s *SlackEventMeta) GetPortalKey() networkid.PortalKey
- func (s *SlackEventMeta) GetSender() bridgev2.EventSender
- func (s *SlackEventMeta) GetTimestamp() time.Time
- func (s *SlackEventMeta) GetType() bridgev2.RemoteEventType
- func (s *SlackEventMeta) ShouldCreatePortal() bool
- type SlackMessage
- func (s *SlackMessage) ConvertEdit(ctx context.Context, portal *bridgev2.Portal, intent bridgev2.MatrixAPI, ...) (*bridgev2.ConvertedEdit, error)
- func (s *SlackMessage) ConvertMessage(ctx context.Context, portal *bridgev2.Portal, intent bridgev2.MatrixAPI) (*bridgev2.ConvertedMessage, error)
- func (s *SlackMessage) GetID() networkid.MessageID
- func (s *SlackMessage) GetTargetMessage() networkid.MessageID
- func (s *SlackMessage) GetTimestamp() time.Time
- func (s *SlackMessage) GetTransactionID() networkid.TransactionID
- func (s *SlackMessage) GetType() bridgev2.RemoteEventType
- type SlackReaction
- type SlackReadReceipt
- type SlackTokenLogin
- type SlackTyping
Constants ¶
View Source
const ChatInfoCacheExpiry = 1 * time.Hour
View Source
const ExtractSlackTokenJS = `` /* 808-byte string literal not displayed */
View Source
const LoginFlowIDApp = "app"
View Source
const LoginFlowIDAuthToken = "token"
View Source
const LoginStepIDAppToken = "fi.mau.slack.login.enter_app_tokens"
View Source
const LoginStepIDAuthToken = "fi.mau.slack.login.enter_auth_token"
View Source
const LoginStepIDComplete = "fi.mau.slack.login.complete"
View Source
const MinGhostSyncInterval = 4 * time.Hour
Variables ¶
View Source
var ExampleConfig string
Functions ¶
This section is empty.
Types ¶
type BackfillConfig ¶
type ChannelNameParams ¶
type Config ¶
type Config struct { DisplaynameTemplate string `yaml:"displayname_template"` ChannelNameTemplate string `yaml:"channel_name_template"` TeamNameTemplate string `yaml:"team_name_template"` CustomEmojiReactions bool `yaml:"custom_emoji_reactions"` WorkspaceAvatarInRooms bool `yaml:"workspace_avatar_in_rooms"` ParticipantSyncCount int `yaml:"participant_sync_count"` ParticipantSyncOnlyOnCreate bool `yaml:"participant_sync_only_on_create"` MuteChannelsByDefault bool `yaml:"mute_channels_by_default"` Backfill BackfillConfig `yaml:"backfill"` // contains filtered or unexported fields }
func (*Config) FormatBotDisplayname ¶
func (*Config) FormatChannelName ¶
func (c *Config) FormatChannelName(params *ChannelNameParams) string
func (*Config) FormatDisplayname ¶
func (c *Config) FormatDisplayname(user *DisplaynameParams) string
func (*Config) UnmarshalYAML ¶
type SlackAppLogin ¶
func (*SlackAppLogin) Cancel ¶
func (s *SlackAppLogin) Cancel()
func (*SlackAppLogin) SubmitUserInput ¶
type SlackChatInfoChange ¶
type SlackChatInfoChange struct { *SlackEventMeta Change *bridgev2.ChatInfoChange }
func (*SlackChatInfoChange) GetChatInfoChange ¶
func (s *SlackChatInfoChange) GetChatInfoChange(ctx context.Context) (*bridgev2.ChatInfoChange, error)
type SlackChatResync ¶
type SlackChatResync struct { *SlackEventMeta Client *SlackClient LatestMessage string PreFetchedInfo *slack.Channel ShouldSyncInfo bool }
func (*SlackChatResync) CheckNeedsBackfill ¶
func (*SlackChatResync) GetChatInfo ¶
type SlackClient ¶
type SlackClient struct { Main *SlackConnector UserLogin *bridgev2.UserLogin Client *slack.Client RTM *slack.RTM SocketMode *socketmode.Client UserID string TeamID string BootResp *slack.ClientUserBootResponse TeamPortal *bridgev2.Portal IsRealUser bool Ghost *bridgev2.Ghost // contains filtered or unexported fields }
func (*SlackClient) Connect ¶
func (s *SlackClient) Connect(ctx context.Context)
func (*SlackClient) CreateGroup ¶
func (s *SlackClient) CreateGroup(ctx context.Context, name string, users ...networkid.UserID) (*bridgev2.CreateChatResponse, error)
func (*SlackClient) Disconnect ¶
func (s *SlackClient) Disconnect()
func (*SlackClient) FetchMessages ¶
func (s *SlackClient) FetchMessages(ctx context.Context, params bridgev2.FetchMessagesParams) (*bridgev2.FetchMessagesResponse, error)
func (*SlackClient) FillBridgeState ¶
func (s *SlackClient) FillBridgeState(state status.BridgeState) status.BridgeState
func (*SlackClient) GetBackfillMaxBatchCount ¶
func (s *SlackClient) GetBackfillMaxBatchCount(ctx context.Context, portal *bridgev2.Portal, task *database.BackfillTask) int
func (*SlackClient) GetCapabilities ¶
func (s *SlackClient) GetCapabilities(ctx context.Context, portal *bridgev2.Portal) *bridgev2.NetworkRoomCapabilities
func (*SlackClient) GetChatInfo ¶
func (*SlackClient) GetClient ¶
func (s *SlackClient) GetClient() *slack.Client
func (*SlackClient) GetUserInfo ¶
func (*SlackClient) HandleMatrixEdit ¶
func (s *SlackClient) HandleMatrixEdit(ctx context.Context, msg *bridgev2.MatrixEdit) error
func (*SlackClient) HandleMatrixMessage ¶
func (s *SlackClient) HandleMatrixMessage(ctx context.Context, msg *bridgev2.MatrixMessage) (*bridgev2.MatrixMessageResponse, error)
func (*SlackClient) HandleMatrixMessageRemove ¶
func (s *SlackClient) HandleMatrixMessageRemove(ctx context.Context, msg *bridgev2.MatrixMessageRemove) error
func (*SlackClient) HandleMatrixReaction ¶
func (s *SlackClient) HandleMatrixReaction(ctx context.Context, msg *bridgev2.MatrixReaction) (reaction *database.Reaction, err error)
func (*SlackClient) HandleMatrixReactionRemove ¶
func (s *SlackClient) HandleMatrixReactionRemove(ctx context.Context, msg *bridgev2.MatrixReactionRemove) error
func (*SlackClient) HandleMatrixReadReceipt ¶
func (s *SlackClient) HandleMatrixReadReceipt(ctx context.Context, msg *bridgev2.MatrixReadReceipt) error
func (*SlackClient) HandleMatrixRoomName ¶
func (s *SlackClient) HandleMatrixRoomName(ctx context.Context, msg *bridgev2.MatrixRoomName) (bool, error)
func (*SlackClient) HandleMatrixRoomTopic ¶
func (s *SlackClient) HandleMatrixRoomTopic(ctx context.Context, msg *bridgev2.MatrixRoomTopic) (bool, error)
func (*SlackClient) HandleMatrixTyping ¶
func (s *SlackClient) HandleMatrixTyping(ctx context.Context, msg *bridgev2.MatrixTyping) error
func (*SlackClient) HandleSlackEvent ¶
func (s *SlackClient) HandleSlackEvent(rawEvt any)
func (*SlackClient) HandleSocketModeEvent ¶
func (s *SlackClient) HandleSocketModeEvent(evt socketmode.Event)
func (*SlackClient) IsLoggedIn ¶
func (s *SlackClient) IsLoggedIn() bool
func (*SlackClient) IsThisUser ¶
func (*SlackClient) LogoutRemote ¶
func (s *SlackClient) LogoutRemote(ctx context.Context)
func (*SlackClient) PreHandleMatrixReaction ¶
func (s *SlackClient) PreHandleMatrixReaction(ctx context.Context, msg *bridgev2.MatrixReaction) (resp bridgev2.MatrixReactionPreResponse, err error)
func (*SlackClient) ResolveIdentifier ¶
func (s *SlackClient) ResolveIdentifier(ctx context.Context, identifier string, createChat bool) (*bridgev2.ResolveIdentifierResponse, error)
func (*SlackClient) ResyncEmojisDueToNotFound ¶
func (s *SlackClient) ResyncEmojisDueToNotFound(ctx context.Context) bool
func (*SlackClient) SearchUsers ¶
func (s *SlackClient) SearchUsers(ctx context.Context, query string) ([]*bridgev2.ResolveIdentifierResponse, error)
func (*SlackClient) SyncChannels ¶
func (s *SlackClient) SyncChannels(ctx context.Context)
func (*SlackClient) SyncEmojis ¶
func (s *SlackClient) SyncEmojis(ctx context.Context)
type SlackConnector ¶
type SlackConnector struct { Config Config DB *slackdb.SlackDB MsgConv *msgconv.MessageConverter // contains filtered or unexported fields }
func (*SlackConnector) CreateLogin ¶
func (s *SlackConnector) CreateLogin(ctx context.Context, user *bridgev2.User, flowID string) (bridgev2.LoginProcess, error)
func (*SlackConnector) GetCapabilities ¶
func (s *SlackConnector) GetCapabilities() *bridgev2.NetworkGeneralCapabilities
func (*SlackConnector) GetConfig ¶
func (s *SlackConnector) GetConfig() (example string, data any, upgrader up.Upgrader)
func (*SlackConnector) GetDBMetaTypes ¶
func (s *SlackConnector) GetDBMetaTypes() database.MetaTypes
func (*SlackConnector) GetLoginFlows ¶
func (s *SlackConnector) GetLoginFlows() []bridgev2.LoginFlow
func (*SlackConnector) GetName ¶
func (s *SlackConnector) GetName() bridgev2.BridgeName
func (*SlackConnector) Init ¶
func (s *SlackConnector) Init(bridge *bridgev2.Bridge)
func (*SlackConnector) LoadUserLogin ¶
func (*SlackConnector) SetMaxFileSize ¶
func (s *SlackConnector) SetMaxFileSize(maxSize int64)
func (*SlackConnector) ValidateUserID ¶
func (s *SlackConnector) ValidateUserID(id networkid.UserID) bool
type SlackEventMeta ¶
type SlackEventMeta struct { Type bridgev2.RemoteEventType PortalKey networkid.PortalKey Sender bridgev2.EventSender Timestamp time.Time ID networkid.MessageID LogContext func(zerolog.Context) zerolog.Context CreatePortal bool RawTimestamp string }
func (*SlackEventMeta) AddLogContext ¶
func (s *SlackEventMeta) AddLogContext(c zerolog.Context) zerolog.Context
func (*SlackEventMeta) GetID ¶
func (s *SlackEventMeta) GetID() networkid.MessageID
func (*SlackEventMeta) GetPortalKey ¶
func (s *SlackEventMeta) GetPortalKey() networkid.PortalKey
func (*SlackEventMeta) GetSender ¶
func (s *SlackEventMeta) GetSender() bridgev2.EventSender
func (*SlackEventMeta) GetTimestamp ¶
func (s *SlackEventMeta) GetTimestamp() time.Time
func (*SlackEventMeta) GetType ¶
func (s *SlackEventMeta) GetType() bridgev2.RemoteEventType
func (*SlackEventMeta) ShouldCreatePortal ¶
func (s *SlackEventMeta) ShouldCreatePortal() bool
type SlackMessage ¶
type SlackMessage struct { *SlackEventMeta Data *slack.MessageEvent Client *SlackClient }
func (*SlackMessage) ConvertEdit ¶
func (*SlackMessage) ConvertMessage ¶
func (s *SlackMessage) ConvertMessage(ctx context.Context, portal *bridgev2.Portal, intent bridgev2.MatrixAPI) (*bridgev2.ConvertedMessage, error)
func (*SlackMessage) GetID ¶
func (s *SlackMessage) GetID() networkid.MessageID
func (*SlackMessage) GetTargetMessage ¶
func (s *SlackMessage) GetTargetMessage() networkid.MessageID
func (*SlackMessage) GetTimestamp ¶
func (s *SlackMessage) GetTimestamp() time.Time
func (*SlackMessage) GetTransactionID ¶
func (s *SlackMessage) GetTransactionID() networkid.TransactionID
func (*SlackMessage) GetType ¶
func (s *SlackMessage) GetType() bridgev2.RemoteEventType
type SlackReaction ¶
type SlackReaction struct { *SlackEventMeta TargetID networkid.MessageID EmojiID networkid.EmojiID Emoji string Meta map[string]any }
func (*SlackReaction) GetReactionEmoji ¶
func (s *SlackReaction) GetReactionEmoji() (string, networkid.EmojiID)
func (*SlackReaction) GetReactionExtraContent ¶
func (s *SlackReaction) GetReactionExtraContent() map[string]any
func (*SlackReaction) GetRemovedEmojiID ¶
func (s *SlackReaction) GetRemovedEmojiID() networkid.EmojiID
func (*SlackReaction) GetTargetMessage ¶
func (s *SlackReaction) GetTargetMessage() networkid.MessageID
type SlackReadReceipt ¶
type SlackReadReceipt struct {
*SlackEventMeta
}
func (*SlackReadReceipt) GetLastReceiptTarget ¶
func (s *SlackReadReceipt) GetLastReceiptTarget() networkid.MessageID
func (*SlackReadReceipt) GetReadUpTo ¶
func (s *SlackReadReceipt) GetReadUpTo() time.Time
func (*SlackReadReceipt) GetReceiptTargets ¶
func (s *SlackReadReceipt) GetReceiptTargets() []networkid.MessageID
type SlackTokenLogin ¶
func (*SlackTokenLogin) Cancel ¶
func (s *SlackTokenLogin) Cancel()
func (*SlackTokenLogin) SubmitCookies ¶
type SlackTyping ¶
type SlackTyping struct {
*SlackEventMeta
}
func (*SlackTyping) GetTimeout ¶
func (s *SlackTyping) GetTimeout() time.Duration
Source Files
¶
Click to show internal directories.
Click to hide internal directories.