1
1
module . exports = makeRichMessage
2
+ module . exports . mergeMessages = mergeMessages
2
3
3
4
var autolinker = require ( 'autolinker' )
4
5
var emojiNamedCharacters = require ( 'emoji-named-characters' )
@@ -16,26 +17,33 @@ var convertHTML = htmlToVDom({
16
17
VText : VText
17
18
} )
18
19
20
+ function makeVDom ( html ) {
21
+ return convertHTML ( '<div>' + html + '</div>' )
22
+ }
23
+
19
24
function makeRichMessage ( message ) {
20
25
message . anon = / A n o n y m o u s / i. test ( message . username )
21
26
message . avatar = message . anon
22
27
? 'static/Icon.png'
23
28
: 'https://github.com/' + message . username + '.png'
24
29
message . timeago = util . timeago ( message . timestamp )
25
- message . rawText = message . text
26
- message . text = escapeHTML ( message . text )
27
30
28
- message . text = message . text . replace ( EMOJI_REGEX , function ( full , $1 , $2 , $3 ) {
29
- return ( $1 || '' ) + renderEmoji ( $2 ) + ( $3 || '' )
30
- } )
31
+ message . html = escapeHTML ( message . text )
32
+ message . html = emojify ( message . html )
33
+ message . html = autolinker . link ( message . html )
34
+ message . html = ghlink ( message . html , { format : 'html' } )
31
35
32
- var messageHtml = autolinker . link ( message . text )
33
- messageHtml = ghlink ( messageHtml , { format : 'html' } )
34
- message . text = convertHTML ( '<span>' + messageHtml + '</span>' )
36
+ message . vdom = makeVDom ( message . html )
35
37
36
38
return message
37
39
}
38
40
41
+ function emojify ( str ) {
42
+ return str . replace ( EMOJI_REGEX , function ( full , $1 , $2 , $3 ) {
43
+ return ( $1 || '' ) + renderEmoji ( $2 ) + ( $3 || '' )
44
+ } )
45
+ }
46
+
39
47
function renderEmoji ( emoji ) {
40
48
return emoji in emojiNamedCharacters ?
41
49
'<img src="node_modules/emoji-named-characters/pngs/' + encodeURI ( emoji ) + '.png"'
@@ -44,3 +52,10 @@ function renderEmoji (emoji) {
44
52
+ ' class="emoji" align="absmiddle" height="20" width="20">'
45
53
: ':' + emoji + ':'
46
54
}
55
+
56
+ function mergeMessages ( message1 , message2 ) {
57
+ message1 . text += '\n' + message2 . text
58
+ message1 . html += '<p></p>' + message2 . html
59
+ message1 . vdom = makeVDom ( message1 . html )
60
+ return message1
61
+ }
0 commit comments