Fix a crash on big emojis
This commit is contained in:
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,12 +247,14 @@ func (c *Client) formatMessage(chatID int64, messageID int64, preview bool, mess
|
|||
}
|
||||
|
||||
var text string
|
||||
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 {
|
||||
str.WriteString(text)
|
||||
|
@ -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…
Reference in a new issue