1
0
Fork 0
mirror of https://github.com/FrankerFaceZ/FrankerFaceZ.git synced 2025-07-01 08:38: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:
SirStendec 2016-03-24 15:30:43 -04:00
parent e6757432a8
commit 4e5d736651
4 changed files with 93 additions and 24 deletions

View file

@ -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('');
} }
}); });
} }

View file

@ -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">&lt;message deleted&gt;</span>'; return '<span clas="deleted">&lt;message deleted&gt;</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");
} }
}); });
} }

View file

@ -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 || "");
} }

View file

@ -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
@ -474,7 +524,7 @@ FFZ.prototype.tokenize_chat_line = function(msgObject, prevent_notification, del
continue; continue;
// We have a mention! // We have a mention!
msgObject.ffz_has_mention = true; msgObject.ffz_has_mention = true;
// If we have chat tabs/rows, update the status. // If we have chat tabs/rows, update the status.
if ( room_id && ! this.has_bttv && this._chatv ) { if ( room_id && ! this.has_bttv && this._chatv ) {