Documentation ¶
Index ¶
- Variables
- func SendMessageCheckpoints(br *Bridge, checkpoints []*MessageCheckpoint) error
- type Bridge
- func (br *Bridge) GenerateRegistration()
- func (br *Bridge) InitVersion(tag, commit, buildTime string)
- func (br *Bridge) LogDBUpgradeErrorAndExit(name string, err error)
- func (br *Bridge) Main()
- func (br *Bridge) NewBridgeStateQueue(user StateFiller, log log.Logger) *BridgeStateQueue
- func (br *Bridge) ResendBridgeInfo()
- func (br *Bridge) SendBridgeState(ctx context.Context, state *State) error
- func (br *Bridge) SendGlobalBridgeState(state State)
- func (br *Bridge) SendMessageCheckpoint(evt *event.Event, step MessageCheckpointStep, err error, ...)
- func (br *Bridge) SendMessageErrorCheckpoint(evt *event.Event, step MessageCheckpointStep, err error, permanent bool, ...)
- func (br *Bridge) SendMessageSuccessCheckpoint(evt *event.Event, step MessageCheckpointStep, retryNum int)
- func (br *Bridge) UpdateBotProfile()
- type BridgeStateQueue
- type CSFeatureRequirer
- type CheckpointsJSON
- type ChildOverride
- type CommandProcessor
- type Crypto
- type CryptoHelper
- func (helper *CryptoHelper) Client() *mautrix.Client
- func (helper *CryptoHelper) Decrypt(evt *event.Event) (*event.Event, error)
- func (helper *CryptoHelper) Encrypt(roomID id.RoomID, evtType event.Type, content *event.Content) (err error)
- func (helper *CryptoHelper) HandleMemberEvent(evt *event.Event)
- func (helper *CryptoHelper) Init() error
- func (helper *CryptoHelper) RegisterAppserviceListener()
- func (helper *CryptoHelper) RequestSession(roomID id.RoomID, senderKey id.SenderKey, sessionID id.SessionID, ...)
- func (helper *CryptoHelper) Reset()
- func (helper *CryptoHelper) ResetSession(roomID id.RoomID)
- func (helper *CryptoHelper) Start()
- func (helper *CryptoHelper) Stop()
- func (helper *CryptoHelper) WaitForSession(roomID id.RoomID, senderKey id.SenderKey, sessionID id.SessionID, ...) bool
- type DisappearingPortal
- type DoublePuppet
- type FlagHandlingBridge
- type Ghost
- type GhostWithProfile
- type GlobalState
- type MatrixHandler
- func (mx *MatrixHandler) HandleBotInvite(evt *event.Event)
- func (mx *MatrixHandler) HandleEncrypted(evt *event.Event)
- func (mx *MatrixHandler) HandleEncryption(evt *event.Event)
- func (mx *MatrixHandler) HandleGhostInvite(evt *event.Event, inviter User, ghost Ghost)
- func (mx *MatrixHandler) HandleMembership(evt *event.Event)
- func (mx *MatrixHandler) HandleMessage(evt *event.Event)
- func (mx *MatrixHandler) HandleReaction(evt *event.Event)
- func (mx *MatrixHandler) HandleReceipt(evt *event.Event)
- func (mx *MatrixHandler) HandleRedaction(evt *event.Event)
- func (mx *MatrixHandler) HandleRoomMetadata(evt *event.Event)
- func (mx *MatrixHandler) HandleTyping(evt *event.Event)
- type MembershipHandlingPortal
- type MessageCheckpoint
- type MessageCheckpointReportedBy
- type MessageCheckpointStatus
- type MessageCheckpointStep
- type MetaHandlingPortal
- type Portal
- type PreInitableBridge
- type ReadReceiptHandlingPortal
- type SQLCryptoStore
- type State
- type StateErrorCode
- type StateErrorMap
- type StateEvent
- type StateFiller
- type TypingPortal
- type User
Constants ¶
This section is empty.
Variables ¶
View Source
var CheckpointTypes = map[event.Type]struct{}{ event.EventRedaction: {}, event.EventMessage: {}, event.EventEncrypted: {}, event.EventSticker: {}, event.EventReaction: {}, }
View Source
var MinSpecVersion = mautrix.SpecV11
View Source
var NoSessionFound = crypto.NoSessionFound
View Source
var StateHumanErrors = make(StateErrorMap)
Functions ¶
func SendMessageCheckpoints ¶
func SendMessageCheckpoints(br *Bridge, checkpoints []*MessageCheckpoint) error
Types ¶
type Bridge ¶
type Bridge struct { Name string URL string Description string Version string ProtocolName string AdditionalShortFlags string AdditionalLongFlags string VersionDesc string LinkifiedVersion string BuildTime string AS *appservice.AppService EventProcessor *appservice.EventProcessor CommandProcessor CommandProcessor MatrixHandler *MatrixHandler Bot *appservice.IntentAPI Config bridgeconfig.BaseConfig ConfigPath string RegistrationPath string SaveConfig bool ConfigUpgrader configupgrade.BaseUpgrader Log log.Logger DB *dbutil.Database StateStore *sqlstatestore.SQLStateStore Crypto Crypto CryptoPickleKey string Child ChildOverride }
func (*Bridge) GenerateRegistration ¶
func (br *Bridge) GenerateRegistration()
func (*Bridge) InitVersion ¶
func (*Bridge) LogDBUpgradeErrorAndExit ¶
func (*Bridge) NewBridgeStateQueue ¶
func (br *Bridge) NewBridgeStateQueue(user StateFiller, log log.Logger) *BridgeStateQueue
func (*Bridge) ResendBridgeInfo ¶
func (br *Bridge) ResendBridgeInfo()
func (*Bridge) SendBridgeState ¶
func (*Bridge) SendGlobalBridgeState ¶
func (*Bridge) SendMessageCheckpoint ¶
func (br *Bridge) SendMessageCheckpoint(evt *event.Event, step MessageCheckpointStep, err error, status MessageCheckpointStatus, retryNum int)
func (*Bridge) SendMessageErrorCheckpoint ¶
func (*Bridge) SendMessageSuccessCheckpoint ¶
func (br *Bridge) SendMessageSuccessCheckpoint(evt *event.Event, step MessageCheckpointStep, retryNum int)
func (*Bridge) UpdateBotProfile ¶
func (br *Bridge) UpdateBotProfile()
type BridgeStateQueue ¶
type BridgeStateQueue struct {
// contains filtered or unexported fields
}
func (*BridgeStateQueue) GetPrev ¶
func (bsq *BridgeStateQueue) GetPrev() State
func (*BridgeStateQueue) Send ¶
func (bsq *BridgeStateQueue) Send(state State)
func (*BridgeStateQueue) SetPrev ¶
func (bsq *BridgeStateQueue) SetPrev(prev State)
type CSFeatureRequirer ¶
type CSFeatureRequirer interface {
CheckFeatures(versions *mautrix.RespVersions) (string, bool)
}
type CheckpointsJSON ¶
type CheckpointsJSON struct {
Checkpoints []*MessageCheckpoint `json:"checkpoints"`
}
type ChildOverride ¶
type CommandProcessor ¶
type Crypto ¶
type Crypto interface { HandleMemberEvent(*event.Event) Decrypt(*event.Event) (*event.Event, error) Encrypt(id.RoomID, event.Type, *event.Content) error WaitForSession(id.RoomID, id.SenderKey, id.SessionID, time.Duration) bool RequestSession(id.RoomID, id.SenderKey, id.SessionID, id.UserID, id.DeviceID) ResetSession(id.RoomID) Init() error Start() RegisterAppserviceListener() Stop() Reset() Client() *mautrix.Client }
func NewCryptoHelper ¶
type CryptoHelper ¶
type CryptoHelper struct {
// contains filtered or unexported fields
}
func (*CryptoHelper) Client ¶
func (helper *CryptoHelper) Client() *mautrix.Client
func (*CryptoHelper) HandleMemberEvent ¶
func (helper *CryptoHelper) HandleMemberEvent(evt *event.Event)
func (*CryptoHelper) Init ¶
func (helper *CryptoHelper) Init() error
func (*CryptoHelper) RegisterAppserviceListener ¶
func (helper *CryptoHelper) RegisterAppserviceListener()
func (*CryptoHelper) RequestSession ¶
func (*CryptoHelper) Reset ¶
func (helper *CryptoHelper) Reset()
func (*CryptoHelper) ResetSession ¶
func (helper *CryptoHelper) ResetSession(roomID id.RoomID)
func (*CryptoHelper) Start ¶
func (helper *CryptoHelper) Start()
func (*CryptoHelper) Stop ¶
func (helper *CryptoHelper) Stop()
type DisappearingPortal ¶
type DisappearingPortal interface { Portal ScheduleDisappearing() }
type DoublePuppet ¶
type FlagHandlingBridge ¶
type FlagHandlingBridge interface { ChildOverride HandleFlags() bool }
type Ghost ¶
type Ghost interface { DoublePuppet DefaultIntent() *appservice.IntentAPI GetMXID() id.UserID }
type GhostWithProfile ¶
type GhostWithProfile interface { Ghost GetDisplayname() string GetAvatarURL() id.ContentURI }
type GlobalState ¶
type MatrixHandler ¶
type MatrixHandler struct { TrackEventDuration func(event.Type) func() // contains filtered or unexported fields }
func NewMatrixHandler ¶
func NewMatrixHandler(br *Bridge) *MatrixHandler
func (*MatrixHandler) HandleBotInvite ¶
func (mx *MatrixHandler) HandleBotInvite(evt *event.Event)
func (*MatrixHandler) HandleEncrypted ¶
func (mx *MatrixHandler) HandleEncrypted(evt *event.Event)
func (*MatrixHandler) HandleEncryption ¶
func (mx *MatrixHandler) HandleEncryption(evt *event.Event)
func (*MatrixHandler) HandleGhostInvite ¶
func (mx *MatrixHandler) HandleGhostInvite(evt *event.Event, inviter User, ghost Ghost)
func (*MatrixHandler) HandleMembership ¶
func (mx *MatrixHandler) HandleMembership(evt *event.Event)
func (*MatrixHandler) HandleMessage ¶
func (mx *MatrixHandler) HandleMessage(evt *event.Event)
func (*MatrixHandler) HandleReaction ¶
func (mx *MatrixHandler) HandleReaction(evt *event.Event)
func (*MatrixHandler) HandleReceipt ¶
func (mx *MatrixHandler) HandleReceipt(evt *event.Event)
func (*MatrixHandler) HandleRedaction ¶
func (mx *MatrixHandler) HandleRedaction(evt *event.Event)
func (*MatrixHandler) HandleRoomMetadata ¶
func (mx *MatrixHandler) HandleRoomMetadata(evt *event.Event)
func (*MatrixHandler) HandleTyping ¶
func (mx *MatrixHandler) HandleTyping(evt *event.Event)
type MessageCheckpoint ¶
type MessageCheckpoint struct { EventID id.EventID `json:"event_id"` RoomID id.RoomID `json:"room_id"` Step MessageCheckpointStep `json:"step"` Timestamp int64 `json:"timestamp"` Status MessageCheckpointStatus `json:"status"` EventType event.Type `json:"event_type"` ReportedBy MessageCheckpointReportedBy `json:"reported_by"` RetryNum int `json:"retry_num"` MessageType event.MessageType `json:"message_type,omitempty"` Info string `json:"info,omitempty"` OriginalEventID id.EventID `json:"original_event_id"` ManualRetryCount int `json:"manual_retry_count"` }
func NewMessageCheckpoint ¶
func NewMessageCheckpoint(evt *event.Event, step MessageCheckpointStep, status MessageCheckpointStatus, retryNum int) *MessageCheckpoint
func (*MessageCheckpoint) Send ¶
func (cp *MessageCheckpoint) Send(br *Bridge)
type MessageCheckpointReportedBy ¶
type MessageCheckpointReportedBy string
const ( MsgReportedByAsmux MessageCheckpointReportedBy = "ASMUX" MsgReportedByBridge MessageCheckpointReportedBy = "BRIDGE" )
type MessageCheckpointStatus ¶
type MessageCheckpointStatus string
const ( MsgStatusSuccess MessageCheckpointStatus = "SUCCESS" MsgStatusWillRetry MessageCheckpointStatus = "WILL_RETRY" MsgStatusPermFailure MessageCheckpointStatus = "PERM_FAILURE" MsgStatusUnsupported MessageCheckpointStatus = "UNSUPPORTED" MsgStatusTimeout MessageCheckpointStatus = "TIMEOUT" )
func ReasonToCheckpointStatus ¶
func ReasonToCheckpointStatus(reason event.MessageStatusReason, status event.MessageStatus) MessageCheckpointStatus
type MessageCheckpointStep ¶
type MessageCheckpointStep string
const ( MsgStepClient MessageCheckpointStep = "CLIENT" MsgStepHomeserver MessageCheckpointStep = "HOMESERVER" MsgStepBridge MessageCheckpointStep = "BRIDGE" MsgStepDecrypted MessageCheckpointStep = "DECRYPTED" MsgStepRemote MessageCheckpointStep = "REMOTE" MsgStepCommand MessageCheckpointStep = "COMMAND" )
type MetaHandlingPortal ¶
type PreInitableBridge ¶
type PreInitableBridge interface { ChildOverride PreInit() }
type SQLCryptoStore ¶
type SQLCryptoStore struct { *crypto.SQLCryptoStore UserID id.UserID GhostIDFormat string }
func NewSQLCryptoStore ¶
func (*SQLCryptoStore) FindDeviceID ¶
func (store *SQLCryptoStore) FindDeviceID() (deviceID id.DeviceID)
func (*SQLCryptoStore) GetRoomMembers ¶
type State ¶
type State struct { StateEvent StateEvent `json:"state_event"` Timestamp int64 `json:"timestamp"` TTL int `json:"ttl"` Source string `json:"source,omitempty"` Error StateErrorCode `json:"error,omitempty"` Message string `json:"message,omitempty"` UserID id.UserID `json:"user_id,omitempty"` RemoteID string `json:"remote_id,omitempty"` RemoteName string `json:"remote_name,omitempty"` Reason string `json:"reason,omitempty"` Info map[string]interface{} `json:"info,omitempty"` }
func (State) Fill ¶
func (pong State) Fill(user StateFiller) State
type StateErrorCode ¶
type StateErrorCode string
type StateErrorMap ¶
type StateErrorMap map[StateErrorCode]string
func (StateErrorMap) Update ¶
func (bem StateErrorMap) Update(data StateErrorMap)
type StateEvent ¶
type StateEvent string
const ( StateUnconfigured StateEvent = "UNCONFIGURED" StateRunning StateEvent = "RUNNING" StateConnecting StateEvent = "CONNECTING" StateBackfilling StateEvent = "BACKFILLING" StateConnected StateEvent = "CONNECTED" StateTransientDisconnect StateEvent = "TRANSIENT_DISCONNECT" StateBadCredentials StateEvent = "BAD_CREDENTIALS" StateUnknownError StateEvent = "UNKNOWN_ERROR" StateLoggedOut StateEvent = "LOGGED_OUT" )
type StateFiller ¶
type TypingPortal ¶
type User ¶
type User interface { GetPermissionLevel() bridgeconfig.PermissionLevel IsLoggedIn() bool GetManagementRoomID() id.RoomID SetManagementRoom(id.RoomID) GetMXID() id.UserID GetIDoublePuppet() DoublePuppet GetIGhost() Ghost }
Source Files ¶
Click to show internal directories.
Click to hide internal directories.