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);
|
||||
},
|
||||
|
||||
render: function(e) {
|
||||
var user = this.get('message.from.username'),
|
||||
didUpdate: function() { this.ffzRender() },
|
||||
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'),
|
||||
colors = raw_color && f._handle_color(raw_color),
|
||||
|
||||
is_dark = (Layout && Layout.get('isTheatreMode')) || f.settings.dark_twitch,
|
||||
myself = f.get_user(),
|
||||
from_me = myself && myself.login === user;
|
||||
from_me = myself && myself.login === user,
|
||||
|
||||
e.push('<div class="indicator"></div>');
|
||||
|
||||
var alias = f.aliases[user],
|
||||
alias = f.aliases[user],
|
||||
name = this.get('message.from.displayName') || (user && user.capitalize()) || "unknown user",
|
||||
style = colors && 'color:' + (is_dark ? colors[1] : colors[0]),
|
||||
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(f.render_tokens(this.get('tokenizedMessage'), true, f.settings.filter_whispered_links && !from_me));
|
||||
e.push('</span>');
|
||||
el.innerHTML = e.join('');
|
||||
}
|
||||
});
|
||||
}
|
|
@ -937,6 +937,19 @@ FFZ.prototype._modify_vod_line = function(component) {
|
|||
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() {
|
||||
if ( ! this.get("isViewerModeratorOrHigher") || this.get("isModeratorOrHigher") )
|
||||
return "";
|
||||
|
@ -951,16 +964,23 @@ FFZ.prototype._modify_vod_line = function(component) {
|
|||
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') )
|
||||
e.push(this.buildHorizontalLineHTML());
|
||||
output = this.buildHorizontalLineHTML();
|
||||
else {
|
||||
e.push(this.buildSenderHTML());
|
||||
if ( this.get("msgObject.deleted") )
|
||||
e.push(this.buildDeletedMessageHTML())
|
||||
output = this.buildSenderHTML();
|
||||
if ( this.get('msgObject.deleted') )
|
||||
output += this.buildDeletedMessageHTML()
|
||||
else
|
||||
e.push(this.buildMessageHTML());
|
||||
output += this.buildMessageHTML();
|
||||
}
|
||||
|
||||
el.innerHTML = output;
|
||||
},
|
||||
|
||||
click: function(e) {
|
||||
|
@ -968,12 +988,6 @@ FFZ.prototype._modify_vod_line = function(component) {
|
|||
e.preventDefault();
|
||||
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
|
||||
var VER = FFZ.version_info = {
|
||||
major: 3, minor: 5, revision: 138,
|
||||
major: 3, minor: 5, revision: 139,
|
||||
toString: function() {
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
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) {
|
||||
if ( msgObject.cachedTokens )
|
||||
return msgObject.cachedTokens;
|
||||
|
||||
var msg = msgObject.get && (msgObject.get('message') || msgObject.get('body')) || msgObject.message,
|
||||
room_id = msgObject.get && msgObject.get('room') || msgObject.room,
|
||||
from_user = msgObject.get && msgObject.get('from') || msgObject.from,
|
||||
var msg = msgObject.message,
|
||||
room_id = msgObject.room,
|
||||
from_user = msgObject.from,
|
||||
user = this.get_user(),
|
||||
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];
|
||||
|
||||
// Standard tokenization
|
||||
|
@ -474,7 +524,7 @@ FFZ.prototype.tokenize_chat_line = function(msgObject, prevent_notification, del
|
|||
continue;
|
||||
|
||||
// We have a mention!
|
||||
msgObject.ffz_has_mention = true;
|
||||
msgObject.ffz_has_mention = true;
|
||||
|
||||
// If we have chat tabs/rows, update the status.
|
||||
if ( room_id && ! this.has_bttv && this._chatv ) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue