2020-10-04 20:47:41 +00:00
|
|
|
package channel
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/diamondburned/cchat"
|
|
|
|
"github.com/diamondburned/cchat-mock/internal/internet"
|
|
|
|
"github.com/pkg/errors"
|
|
|
|
)
|
|
|
|
|
|
|
|
type MessageSender struct {
|
|
|
|
msgr *Messenger
|
|
|
|
ch chan cchat.SendableMessage
|
|
|
|
}
|
|
|
|
|
|
|
|
var _ cchat.Sender = (*MessageSender)(nil)
|
|
|
|
|
|
|
|
func NewMessageSender(msgr *Messenger) MessageSender {
|
|
|
|
return MessageSender{
|
|
|
|
msgr: msgr,
|
|
|
|
ch: make(chan cchat.SendableMessage),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// CanAttach returns false.
|
|
|
|
func (msgs MessageSender) CanAttach() bool { return false }
|
|
|
|
|
|
|
|
func (msgs MessageSender) Send(msg cchat.SendableMessage) error {
|
|
|
|
if err := internet.SimulateAustralian(); err != nil {
|
|
|
|
return errors.Wrap(err, "Failed to send message")
|
|
|
|
}
|
|
|
|
|
2020-12-17 19:03:13 +00:00
|
|
|
msgs.ch <- msg
|
2020-10-04 20:47:41 +00:00
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (msgs MessageSender) AsCompleter() cchat.Completer {
|
|
|
|
return &MessageCompleter{msgr: msgs.msgr}
|
|
|
|
}
|