mirror of
https://github.com/FrankerFaceZ/FrankerFaceZ.git
synced 2025-07-01 16:48:32 +00:00
3.5.139. Fix VOD chat messages. Fix conversation messages. God Ember's components are annoying. Rewriting DOM after it's already been inserted is fucking stupid.
This commit is contained in:
parent
e6757432a8
commit
4e5d736651
4 changed files with 93 additions and 24 deletions
|
@ -142,18 +142,22 @@ FFZ.prototype._modify_conversation_line = function(component) {
|
||||||
return this._super(e);
|
return this._super(e);
|
||||||
},
|
},
|
||||||
|
|
||||||
render: function(e) {
|
didUpdate: function() { this.ffzRender() },
|
||||||
var user = this.get('message.from.username'),
|
didInsertElement: function() { this.ffzRender() },
|
||||||
|
|
||||||
|
ffzRender: function() {
|
||||||
|
var el = this.get('element'),
|
||||||
|
e = [],
|
||||||
|
|
||||||
|
user = this.get('message.from.username'),
|
||||||
raw_color = this.get('message.from.color'),
|
raw_color = this.get('message.from.color'),
|
||||||
colors = raw_color && f._handle_color(raw_color),
|
colors = raw_color && f._handle_color(raw_color),
|
||||||
|
|
||||||
is_dark = (Layout && Layout.get('isTheatreMode')) || f.settings.dark_twitch,
|
is_dark = (Layout && Layout.get('isTheatreMode')) || f.settings.dark_twitch,
|
||||||
myself = f.get_user(),
|
myself = f.get_user(),
|
||||||
from_me = myself && myself.login === user;
|
from_me = myself && myself.login === user,
|
||||||
|
|
||||||
e.push('<div class="indicator"></div>');
|
alias = f.aliases[user],
|
||||||
|
|
||||||
var alias = f.aliases[user],
|
|
||||||
name = this.get('message.from.displayName') || (user && user.capitalize()) || "unknown user",
|
name = this.get('message.from.displayName') || (user && user.capitalize()) || "unknown user",
|
||||||
style = colors && 'color:' + (is_dark ? colors[1] : colors[0]),
|
style = colors && 'color:' + (is_dark ? colors[1] : colors[0]),
|
||||||
colored = style ? ' has-color' : '';
|
colored = style ? ' has-color' : '';
|
||||||
|
@ -173,6 +177,7 @@ FFZ.prototype._modify_conversation_line = function(component) {
|
||||||
e.push('<span class="message' + colored + '" style="' + style + (colors ? '" data-color="' + raw_color : '') + '">');
|
e.push('<span class="message' + colored + '" style="' + style + (colors ? '" data-color="' + raw_color : '') + '">');
|
||||||
e.push(f.render_tokens(this.get('tokenizedMessage'), true, f.settings.filter_whispered_links && !from_me));
|
e.push(f.render_tokens(this.get('tokenizedMessage'), true, f.settings.filter_whispered_links && !from_me));
|
||||||
e.push('</span>');
|
e.push('</span>');
|
||||||
|
el.innerHTML = e.join('');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
|
@ -937,6 +937,19 @@ FFZ.prototype._modify_vod_line = function(component) {
|
||||||
this.$(".deleted").replaceWith(this.buildMessageHTML());
|
this.$(".deleted").replaceWith(this.buildMessageHTML());
|
||||||
}),*/
|
}),*/
|
||||||
|
|
||||||
|
tokenizedMessage: function() {
|
||||||
|
try {
|
||||||
|
return f.tokenize_vod_line(this.get('msgObject'), !(this.get('enableLinkification') || this.get('isModeratorOrHigher')));
|
||||||
|
} catch(err) {
|
||||||
|
f.error("vod-chat-line tokenizedMessage: " + err);
|
||||||
|
return this._super();
|
||||||
|
}
|
||||||
|
}.property("msgObject.message", "currentUserNick", "msgObject.from", "msgObject.tags.emotes"),
|
||||||
|
|
||||||
|
buildHorizontalLineHTML: function() {
|
||||||
|
return '<div class="horizontal-line"><span>' + this.get('msgObject.timestamp') + '</span></div>';
|
||||||
|
},
|
||||||
|
|
||||||
buildModIconsHTML: function() {
|
buildModIconsHTML: function() {
|
||||||
if ( ! this.get("isViewerModeratorOrHigher") || this.get("isModeratorOrHigher") )
|
if ( ! this.get("isViewerModeratorOrHigher") || this.get("isModeratorOrHigher") )
|
||||||
return "";
|
return "";
|
||||||
|
@ -951,16 +964,23 @@ FFZ.prototype._modify_vod_line = function(component) {
|
||||||
return '<span clas="deleted"><message deleted></span>';
|
return '<span clas="deleted"><message deleted></span>';
|
||||||
},
|
},
|
||||||
|
|
||||||
render: function(e) {
|
didUpdate: function() { this.ffzRender() },
|
||||||
|
didInsertElement: function() { this.ffzRender() },
|
||||||
|
|
||||||
|
ffzRender: function() {
|
||||||
|
var el = this.get('element'), output;
|
||||||
|
|
||||||
if ( this.get('msgObject.isHorizontalLine') )
|
if ( this.get('msgObject.isHorizontalLine') )
|
||||||
e.push(this.buildHorizontalLineHTML());
|
output = this.buildHorizontalLineHTML();
|
||||||
else {
|
else {
|
||||||
e.push(this.buildSenderHTML());
|
output = this.buildSenderHTML();
|
||||||
if ( this.get("msgObject.deleted") )
|
if ( this.get('msgObject.deleted') )
|
||||||
e.push(this.buildDeletedMessageHTML())
|
output += this.buildDeletedMessageHTML()
|
||||||
else
|
else
|
||||||
e.push(this.buildMessageHTML());
|
output += this.buildMessageHTML();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
el.innerHTML = output;
|
||||||
},
|
},
|
||||||
|
|
||||||
click: function(e) {
|
click: function(e) {
|
||||||
|
@ -968,12 +988,6 @@ FFZ.prototype._modify_vod_line = function(component) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
this.sendAction("timeoutUser", this.get("msgObject.id"));
|
this.sendAction("timeoutUser", this.get("msgObject.id"));
|
||||||
}
|
}
|
||||||
},
|
|
||||||
|
|
||||||
didInsertElement: function() {
|
|
||||||
this._super();
|
|
||||||
if ( this.get("msgObject.ffz_has_mention") )
|
|
||||||
this.get("element").classList.add("ffz-mentioned");
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,7 @@ FFZ.msg_commands = {};
|
||||||
|
|
||||||
// Version
|
// Version
|
||||||
var VER = FFZ.version_info = {
|
var VER = FFZ.version_info = {
|
||||||
major: 3, minor: 5, revision: 138,
|
major: 3, minor: 5, revision: 139,
|
||||||
toString: function() {
|
toString: function() {
|
||||||
return [VER.major, VER.minor, VER.revision].join(".") + (VER.extra || "");
|
return [VER.major, VER.minor, VER.revision].join(".") + (VER.extra || "");
|
||||||
}
|
}
|
||||||
|
|
|
@ -417,16 +417,66 @@ FFZ.prototype.tokenize_conversation_line = function(message, prevent_notificatio
|
||||||
return tokens;
|
return tokens;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
FFZ.prototype.tokenize_vod_line = function(msgObject, delete_links) {
|
||||||
|
var cached = msgObject.get('cachedTokens');
|
||||||
|
if ( cached )
|
||||||
|
return cached;
|
||||||
|
|
||||||
|
var msg = msgObject.get('message'),
|
||||||
|
room_id = msgObject.get('room'),
|
||||||
|
from_user = msgObject.get('from'),
|
||||||
|
user = this.get_user(),
|
||||||
|
from_me = user && from_user === user.login,
|
||||||
|
emotes = msgObject.get('tags.emotes'),
|
||||||
|
tokens = [msg];
|
||||||
|
|
||||||
|
if ( helpers && helpers.linkifyMessage )
|
||||||
|
tokens = helpers.linkifyMessage(tokens, delete_links);
|
||||||
|
|
||||||
|
if ( user && user.login && helpers && helpers.mentionizeMessage )
|
||||||
|
tokens = helpers.mentionizeMessage(tokens, user.login, from_me);
|
||||||
|
|
||||||
|
if ( helpers && helpers.emoticonizeMessage && emotes )
|
||||||
|
tokens = helpers.emoticonizeMessage(tokens, emotes);
|
||||||
|
|
||||||
|
// FrankerFaceZ Extras
|
||||||
|
tokens = this._remove_banned(tokens);
|
||||||
|
tokens = this.tokenize_emotes(from_user, room_id, tokens, from_me);
|
||||||
|
|
||||||
|
if ( this.settings.parse_emoji )
|
||||||
|
tokens = this.tokenize_emoji(tokens);
|
||||||
|
|
||||||
|
var display = msgObject.get('tags.display-name');
|
||||||
|
if ( display && display.length )
|
||||||
|
FFZ.capitalization[from_user] = [display.trim(), Date.now()];
|
||||||
|
|
||||||
|
if ( ! from_me ) {
|
||||||
|
tokens = this.tokenize_mentions(tokens);
|
||||||
|
for(var i=0; i < tokens.length; i++) {
|
||||||
|
var token = tokens[i];
|
||||||
|
if ( token.type === 'mention' && ! token.isOwnMessage ) {
|
||||||
|
msgObject.set('ffz_has_mention', true);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
msgObject.set('cachedTokens', tokens);
|
||||||
|
return tokens;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
FFZ.prototype.tokenize_chat_line = function(msgObject, prevent_notification, delete_links) {
|
FFZ.prototype.tokenize_chat_line = function(msgObject, prevent_notification, delete_links) {
|
||||||
if ( msgObject.cachedTokens )
|
if ( msgObject.cachedTokens )
|
||||||
return msgObject.cachedTokens;
|
return msgObject.cachedTokens;
|
||||||
|
|
||||||
var msg = msgObject.get && (msgObject.get('message') || msgObject.get('body')) || msgObject.message,
|
var msg = msgObject.message,
|
||||||
room_id = msgObject.get && msgObject.get('room') || msgObject.room,
|
room_id = msgObject.room,
|
||||||
from_user = msgObject.get && msgObject.get('from') || msgObject.from,
|
from_user = msgObject.from,
|
||||||
user = this.get_user(),
|
user = this.get_user(),
|
||||||
from_me = user && from_user === user.login,
|
from_me = user && from_user === user.login,
|
||||||
emotes = msgObject.get && msgObject.get('tags.emotes') || msgObject.tags && msgObject.tags.emotes,
|
emotes = msgObject.tags && msgObject.tags.emotes,
|
||||||
tokens = [msg];
|
tokens = [msg];
|
||||||
|
|
||||||
// Standard tokenization
|
// Standard tokenization
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue