Documentation
¶
Index ¶
- type BaseChannel
- type BotStatus
- type Channel
- type DingTalkChannel
- func (c *DingTalkChannel) Send(ctx context.Context, msg bus.OutboundMessage) error
- func (c *DingTalkChannel) SendDirectReply(ctx context.Context, sessionWebhook, content string) error
- func (c *DingTalkChannel) Start(ctx context.Context) error
- func (c *DingTalkChannel) Stop(ctx context.Context) error
- type DiscordChannel
- type FeishuChannel
- type LINEChannel
- type MaixCamChannel
- type MaixCamMessage
- type Manager
- func (m *Manager) GetChannel(name string) (Channel, bool)
- func (m *Manager) GetEnabledChannels() []string
- func (m *Manager) GetStatus() map[string]interface{}
- func (m *Manager) RegisterChannel(name string, channel Channel)
- 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
- func (m *Manager) UnregisterChannel(name string)
- type OneBotChannel
- type QQChannel
- type SlackChannel
- type TelegramChannel
- type TelegramCommander
- type WhatsAppChannel
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
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) 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 ¶ added in v0.1.1
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 ¶ added in v0.1.1
func NewDingTalkChannel(cfg config.DingTalkConfig, messageBus *bus.MessageBus) (*DingTalkChannel, error)
NewDingTalkChannel creates a new DingTalk channel instance
func (*DingTalkChannel) Send ¶ added in v0.1.1
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 ¶ added in v0.1.1
func (c *DingTalkChannel) SendDirectReply(ctx context.Context, 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
func (*DiscordChannel) SetTranscriber ¶ added in v0.1.1
func (c *DiscordChannel) SetTranscriber(transcriber *voice.GroqTranscriber)
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
type LINEChannel ¶ added in v0.1.2
type LINEChannel struct {
*BaseChannel
// contains filtered or unexported fields
}
LINEChannel implements the Channel interface for LINE Official Account using the LINE Messaging API with HTTP webhook for receiving messages and REST API for sending messages.
func NewLINEChannel ¶ added in v0.1.2
func NewLINEChannel(cfg config.LINEConfig, messageBus *bus.MessageBus) (*LINEChannel, error)
NewLINEChannel creates a new LINE channel instance.
func (*LINEChannel) Send ¶ added in v0.1.2
func (c *LINEChannel) Send(ctx context.Context, msg bus.OutboundMessage) error
Send sends a message to LINE. It first tries the Reply API (free) using a cached reply token, then falls back to the Push API.
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) RegisterChannel ¶
func (*Manager) SendToChannel ¶
func (*Manager) UnregisterChannel ¶
type OneBotChannel ¶ added in v0.1.2
type OneBotChannel struct {
*BaseChannel
// contains filtered or unexported fields
}
func NewOneBotChannel ¶ added in v0.1.2
func NewOneBotChannel(cfg config.OneBotConfig, messageBus *bus.MessageBus) (*OneBotChannel, error)
func (*OneBotChannel) Send ¶ added in v0.1.2
func (c *OneBotChannel) Send(ctx context.Context, msg bus.OutboundMessage) error
type QQChannel ¶ added in v0.1.1
type QQChannel struct {
*BaseChannel
// contains filtered or unexported fields
}
func NewQQChannel ¶ added in v0.1.1
type SlackChannel ¶ added in v0.1.1
type SlackChannel struct {
*BaseChannel
// contains filtered or unexported fields
}
func NewSlackChannel ¶ added in v0.1.1
func NewSlackChannel(cfg config.SlackConfig, messageBus *bus.MessageBus) (*SlackChannel, error)
func (*SlackChannel) Send ¶ added in v0.1.1
func (c *SlackChannel) Send(ctx context.Context, msg bus.OutboundMessage) error
func (*SlackChannel) SetTranscriber ¶ added in v0.1.1
func (c *SlackChannel) SetTranscriber(transcriber *voice.GroqTranscriber)
type TelegramChannel ¶
type TelegramChannel struct {
*BaseChannel
// contains filtered or unexported fields
}
func NewTelegramChannel ¶
func NewTelegramChannel(cfg *config.Config, bus *bus.MessageBus) (*TelegramChannel, error)
func (*TelegramChannel) Send ¶
func (c *TelegramChannel) Send(ctx context.Context, msg bus.OutboundMessage) error
func (*TelegramChannel) SetTranscriber ¶
func (c *TelegramChannel) SetTranscriber(transcriber *voice.GroqTranscriber)
type TelegramCommander ¶ added in v0.1.2
type TelegramCommander interface {
Help(ctx context.Context, message telego.Message) error
Start(ctx context.Context, message telego.Message) error
Show(ctx context.Context, message telego.Message) error
List(ctx context.Context, message telego.Message) error
}
func NewTelegramCommands ¶ added in v0.1.2
func NewTelegramCommands(bot *telego.Bot, cfg *config.Config) TelegramCommander
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