Documentation
¶
Index ¶
- func BridgeLogoutURL(raw string) (string, error)
- func BridgeStatusURL(raw string) (string, error)
- func CompiledChannelKeys() []string
- func ParseWhatsAppBridgeListenAddr(raw string) (string, error)
- type ActionCapable
- type BaseChannel
- func (c *BaseChannel) HandleMessage(senderID, chatID, content string, media []string, metadata map[string]string)
- func (c *BaseChannel) HealthCheck(ctx context.Context) error
- func (c *BaseChannel) IsAllowed(senderID string) bool
- func (c *BaseChannel) IsRunning() bool
- func (c *BaseChannel) Name() string
- type Channel
- type DingTalkChannel
- type DiscordChannel
- type FeishuChannel
- type MaixCamChannel
- type MaixCamMessage
- type Manager
- func (m *Manager) CheckHealth(ctx context.Context) map[string]error
- func (m *Manager) GetEnabledChannels() []string
- func (m *Manager) RestartChannel(ctx context.Context, name string) error
- func (m *Manager) SendToChannel(ctx context.Context, channelName, chatID, content string) error
- func (m *Manager) StartAll(ctx context.Context) error
- func (m *Manager) StopAll(ctx context.Context) error
- type QQChannel
- type TelegramChannel
- func (c *TelegramChannel) HealthCheck(ctx context.Context) error
- func (c *TelegramChannel) Send(ctx context.Context, msg bus.OutboundMessage) error
- func (c *TelegramChannel) Start(ctx context.Context) error
- func (c *TelegramChannel) Stop(ctx context.Context) error
- func (c *TelegramChannel) SupportsAction(action string) bool
- type WhatsAppBridgeService
- func (s *WhatsAppBridgeService) RegisterRoutes(mux *http.ServeMux, basePath string)
- func (s *WhatsAppBridgeService) ServeLogout(w http.ResponseWriter, r *http.Request)
- func (s *WhatsAppBridgeService) ServeStatus(w http.ResponseWriter, r *http.Request)
- func (s *WhatsAppBridgeService) ServeWS(w http.ResponseWriter, r *http.Request)
- func (s *WhatsAppBridgeService) Start(ctx context.Context) error
- func (s *WhatsAppBridgeService) StartEmbedded(ctx context.Context) error
- func (s *WhatsAppBridgeService) StatusSnapshot() WhatsAppBridgeStatus
- func (s *WhatsAppBridgeService) Stop()
- type WhatsAppBridgeStatus
- type WhatsAppChannel
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BridgeLogoutURL ¶
func BridgeStatusURL ¶
func CompiledChannelKeys ¶
func CompiledChannelKeys() []string
Types ¶
type ActionCapable ¶
ActionCapable is an optional capability interface for channels that support non-send message actions.
type BaseChannel ¶
type BaseChannel struct {
// contains filtered or unexported fields
}
func NewBaseChannel ¶
func NewBaseChannel(name string, config interface{}, bus *bus.MessageBus, allowList []string) *BaseChannel
func (*BaseChannel) HandleMessage ¶
func (c *BaseChannel) HandleMessage(senderID, chatID, content string, media []string, metadata map[string]string)
func (*BaseChannel) HealthCheck ¶
func (c *BaseChannel) HealthCheck(ctx context.Context) error
func (*BaseChannel) IsAllowed ¶
func (c *BaseChannel) IsAllowed(senderID string) bool
func (*BaseChannel) IsRunning ¶
func (c *BaseChannel) IsRunning() bool
func (*BaseChannel) Name ¶
func (c *BaseChannel) Name() string
type DingTalkChannel ¶
type DingTalkChannel struct {
*BaseChannel
// contains filtered or unexported fields
}
DingTalkChannel implements the Channel interface for DingTalk. It uses WebSocket for receiving messages via stream mode and API for sending
func NewDingTalkChannel ¶
func NewDingTalkChannel(cfg config.DingTalkConfig, messageBus *bus.MessageBus) (*DingTalkChannel, error)
NewDingTalkChannel creates a new DingTalk channel instance
func (*DingTalkChannel) Send ¶
func (c *DingTalkChannel) Send(ctx context.Context, msg bus.OutboundMessage) error
Send sends a message to DingTalk via the chatbot reply API
func (*DingTalkChannel) SendDirectReply ¶
func (c *DingTalkChannel) SendDirectReply(sessionWebhook, content string) error
SendDirectReply sends a direct reply using the session webhook
type DiscordChannel ¶
type DiscordChannel struct {
*BaseChannel
// contains filtered or unexported fields
}
func NewDiscordChannel ¶
func NewDiscordChannel(cfg config.DiscordConfig, bus *bus.MessageBus) (*DiscordChannel, error)
func (*DiscordChannel) Send ¶
func (c *DiscordChannel) Send(ctx context.Context, msg bus.OutboundMessage) error
type FeishuChannel ¶
type FeishuChannel struct {
*BaseChannel
// contains filtered or unexported fields
}
func NewFeishuChannel ¶
func NewFeishuChannel(cfg config.FeishuConfig, bus *bus.MessageBus) (*FeishuChannel, error)
func (*FeishuChannel) Send ¶
func (c *FeishuChannel) Send(ctx context.Context, msg bus.OutboundMessage) error
func (*FeishuChannel) SupportsAction ¶
func (c *FeishuChannel) SupportsAction(action string) bool
type MaixCamChannel ¶
type MaixCamChannel struct {
*BaseChannel
// contains filtered or unexported fields
}
func NewMaixCamChannel ¶
func NewMaixCamChannel(cfg config.MaixCamConfig, bus *bus.MessageBus) (*MaixCamChannel, error)
func (*MaixCamChannel) Send ¶
func (c *MaixCamChannel) Send(ctx context.Context, msg bus.OutboundMessage) error
type MaixCamMessage ¶
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
func NewManager ¶
func (*Manager) GetEnabledChannels ¶
func (*Manager) RestartChannel ¶
func (*Manager) SendToChannel ¶
type QQChannel ¶
type QQChannel struct {
*BaseChannel
// contains filtered or unexported fields
}
func NewQQChannel ¶
type TelegramChannel ¶
type TelegramChannel struct {
*BaseChannel
// contains filtered or unexported fields
}
func NewTelegramChannel ¶
func NewTelegramChannel(cfg config.TelegramConfig, bus *bus.MessageBus) (*TelegramChannel, error)
func (*TelegramChannel) HealthCheck ¶
func (c *TelegramChannel) HealthCheck(ctx context.Context) error
func (*TelegramChannel) Send ¶
func (c *TelegramChannel) Send(ctx context.Context, msg bus.OutboundMessage) error
func (*TelegramChannel) SupportsAction ¶
func (c *TelegramChannel) SupportsAction(action string) bool
type WhatsAppBridgeService ¶
type WhatsAppBridgeService struct {
// contains filtered or unexported fields
}
func NewWhatsAppBridgeService ¶
func NewWhatsAppBridgeService(addr, stateDir string, printQR bool) *WhatsAppBridgeService
func (*WhatsAppBridgeService) RegisterRoutes ¶
func (s *WhatsAppBridgeService) RegisterRoutes(mux *http.ServeMux, basePath string)
func (*WhatsAppBridgeService) ServeLogout ¶
func (s *WhatsAppBridgeService) ServeLogout(w http.ResponseWriter, r *http.Request)
func (*WhatsAppBridgeService) ServeStatus ¶
func (s *WhatsAppBridgeService) ServeStatus(w http.ResponseWriter, r *http.Request)
func (*WhatsAppBridgeService) ServeWS ¶
func (s *WhatsAppBridgeService) ServeWS(w http.ResponseWriter, r *http.Request)
func (*WhatsAppBridgeService) Start ¶
func (s *WhatsAppBridgeService) Start(ctx context.Context) error
func (*WhatsAppBridgeService) StartEmbedded ¶
func (s *WhatsAppBridgeService) StartEmbedded(ctx context.Context) error
func (*WhatsAppBridgeService) StatusSnapshot ¶
func (s *WhatsAppBridgeService) StatusSnapshot() WhatsAppBridgeStatus
func (*WhatsAppBridgeService) Stop ¶
func (s *WhatsAppBridgeService) Stop()
type WhatsAppBridgeStatus ¶
type WhatsAppBridgeStatus struct {
State string `json:"state"`
Connected bool `json:"connected"`
LoggedIn bool `json:"logged_in"`
BridgeAddr string `json:"bridge_addr"`
UserJID string `json:"user_jid,omitempty"`
PushName string `json:"push_name,omitempty"`
Platform string `json:"platform,omitempty"`
QRCode string `json:"qr_code,omitempty"`
QRAvailable bool `json:"qr_available"`
LastEvent string `json:"last_event,omitempty"`
LastError string `json:"last_error,omitempty"`
UpdatedAt string `json:"updated_at"`
InboundCount int `json:"inbound_count"`
OutboundCount int `json:"outbound_count"`
ReadReceiptCount int `json:"read_receipt_count"`
LastInboundAt string `json:"last_inbound_at,omitempty"`
LastOutboundAt string `json:"last_outbound_at,omitempty"`
LastReadAt string `json:"last_read_at,omitempty"`
LastInboundFrom string `json:"last_inbound_from,omitempty"`
LastOutboundTo string `json:"last_outbound_to,omitempty"`
LastInboundText string `json:"last_inbound_text,omitempty"`
LastOutboundText string `json:"last_outbound_text,omitempty"`
}
type WhatsAppChannel ¶
type WhatsAppChannel struct {
*BaseChannel
// contains filtered or unexported fields
}
func NewWhatsAppChannel ¶
func NewWhatsAppChannel(cfg config.WhatsAppConfig, bus *bus.MessageBus) (*WhatsAppChannel, error)
func (*WhatsAppChannel) Send ¶
func (c *WhatsAppChannel) Send(ctx context.Context, msg bus.OutboundMessage) error
Click to show internal directories.
Click to hide internal directories.