瀏覽代碼

Fix bridging animated emojis in messages

Fixes #87
Tulir Asokan 2 年之前
父節點
當前提交
6f4c5c1d77
共有 1 個文件被更改,包括 6 次插入2 次删除
  1. 6 2
      formatter_tag.go

+ 6 - 2
formatter_tag.go

@@ -192,7 +192,7 @@ func (s *discordTagParser) Parse(parent ast.Node, block text.Reader, pc parser.C
 	case strings.HasPrefix(tagName, ":"):
 		return &astDiscordCustomEmoji{name: tagName, astDiscordTag: tag}
 	case strings.HasPrefix(tagName, "a:"):
-		return &astDiscordCustomEmoji{name: tagName[1:], astDiscordTag: tag}
+		return &astDiscordCustomEmoji{name: tagName[1:], astDiscordTag: tag, animated: true}
 	default:
 		return nil
 	}
@@ -290,7 +290,11 @@ func (r *discordTagHTMLRenderer) renderDiscordMention(w util.BufWriter, source [
 	case *astDiscordCustomEmoji:
 		reactionMXC := node.portal.getEmojiMXCByDiscordID(strconv.FormatInt(node.id, 10), node.name, node.animated)
 		if !reactionMXC.IsEmpty() {
-			_, _ = fmt.Fprintf(w, `<img data-mx-emoticon src="%[1]s" alt="%[2]s" title="%[2]s" height="32"/>`, reactionMXC.String(), node.name)
+			attrs := "data-mx-emoticon"
+			if node.animated {
+				attrs += " data-mau-animated-emoji"
+			}
+			_, _ = fmt.Fprintf(w, `<img %[3]s src="%[1]s" alt="%[2]s" title="%[2]s" height="32"/>`, reactionMXC.String(), node.name, attrs)
 			return
 		}
 	case *astDiscordTimestamp: