Fix a crash on big emojis

calls
Bohdan Horbeshko 2 years ago
parent 105f5017c3
commit 2a1c09fcdd

@ -154,6 +154,7 @@ func (c *Client) interactor() {
for {
state, ok := <-c.authorizer.State
if !ok {
gateway.SendMessage(c.jid, "", "Interactor is disconnected", c.xmpp)
log.Error("Interactor is disconnected")
return
}

@ -247,11 +247,13 @@ func (c *Client) formatMessage(chatID int64, messageID int64, preview bool, mess
}
var text string
switch message.Content.MessageContentType() {
case client.TypeMessageText:
messageText, _ := message.Content.(*client.MessageText)
text = messageText.Text.Text
// TODO: handle other message types with labels (not supported in Zhabogram!)
if message.Content != nil {
switch message.Content.MessageContentType() {
case client.TypeMessageText:
messageText, _ := message.Content.(*client.MessageText)
text = messageText.Text.Text
// TODO: handle other message types with labels (not supported in Zhabogram!)
}
}
if text != "" {
if !preview {
@ -285,6 +287,11 @@ func (c *Client) formatContent(file *client.File, filename string) string {
}
func (c *Client) messageToText(message *client.Message) string {
if message.Content == nil {
log.Warnf("Unknown message (big emoji?): %#v", message)
return "<BIG EMOJI>"
}
markupFunction := formatter.EntityToMarkdown
switch message.Content.MessageContentType() {
case client.TypeMessageSticker:
@ -378,6 +385,10 @@ func (c *Client) messageToText(message *client.Message) string {
}
func (c *Client) contentToFilename(content client.MessageContent) (*client.File, string) {
if content == nil {
return nil, ""
}
switch content.MessageContentType() {
case client.TypeMessageSticker:
sticker, _ := content.(*client.MessageSticker)

Loading…
Cancel
Save