mirror of
https://github.com/FrankerFaceZ/FrankerFaceZ.git
synced 2025-06-27 21:05:53 +00:00
3.5.463. Fix tab completion issues. Fix rendering of system-msgs that require special rendering. Fix compatibility with BetterTTV v7. This includes a lot of tiny changes because many features are only incompatible with BTTV v6.
This commit is contained in:
parent
c3e5aa4fcf
commit
996ab7031e
26 changed files with 319 additions and 129 deletions
|
@ -1,3 +1,23 @@
|
|||
<div class="list-header">3.5.463 <time datetime="2017-04-10">(2017-04-10)</time></div>
|
||||
<ul class="chat-menu-content menu-side-padding">
|
||||
<li>Added: Improved compatibility with BetterTTV v7 (aka the beta)</li>
|
||||
</ul>
|
||||
|
||||
<div class="list-header">3.5.462 <time datetime="2017-04-08">(2017-04-08)</time></div>
|
||||
<ul class="chat-menu-content menu-side-padding">
|
||||
<li>Fixed: Rendering of <code>system-msg</code> tags that contain template strings or other nonsense that Twitch, for some reason, isn't just putting in the message itself and is making the client reconstruct from tags.</li>
|
||||
</ul>
|
||||
|
||||
<div class="list-header">3.5.461 <time datetime="2017-04-08">(2017-04-08)</time></div>
|
||||
<ul class="chat-menu-content menu-side-padding">
|
||||
<li>Fixed: Potential infinite loop in new prefix detection code.</li>
|
||||
</ul>
|
||||
|
||||
<div class="list-header">3.5.460 <time datetime="2017-04-07">(2017-04-07)</time></div>
|
||||
<ul class="chat-menu-content menu-side-padding">
|
||||
<li>Fixed: Tab completion breaking when encountering an empty emote set.</li>
|
||||
</ul>
|
||||
|
||||
<div class="list-header">3.5.459 <time datetime="2017-04-07">(2017-04-07)</time></div>
|
||||
<ul class="chat-menu-content menu-side-padding">
|
||||
<li>Changed: Improved prefix detection for tab-completion of sub emotes.</li>
|
||||
|
@ -33,28 +53,5 @@
|
|||
<li>Fixed: Dashboard columns not being scrollable.</li>
|
||||
</ul>
|
||||
|
||||
<div class="list-header">3.5.453 <time datetime="2017-04-04">(2017-04-04)</time></div>
|
||||
<ul class="chat-menu-content menu-side-padding">
|
||||
<li>Fixed: Favoriting emotes from your Twitch Inventory.</li>
|
||||
</ul>
|
||||
|
||||
<div class="list-header">3.5.452 <time datetime="2017-04-04">(2017-04-04)</time></div>
|
||||
<ul class="chat-menu-content menu-side-padding">
|
||||
<li>Changed: Consolidate emote sets from your Twitch Inventory in the My Emoticons menu to avoid having many individual 1-emote sections.</li>
|
||||
<li>Changed: Darken the Inventory page.</li>
|
||||
</ul>
|
||||
|
||||
<div class="list-header">3.5.451 <time datetime="2017-04-04">(2017-04-04)</time></div>
|
||||
<ul class="chat-menu-content menu-side-padding">
|
||||
<li>Changed: Allow you to hide all game-related badges by hiding <code>game</code></li>
|
||||
<li>Removed: Books</li>
|
||||
</ul>
|
||||
|
||||
<div class="list-header">3.5.450 <time datetime="2017-04-04">(2017-04-04)</time></div>
|
||||
<ul class="chat-menu-content menu-side-padding">
|
||||
<li>Added: Option to hide the Commerce Bar on channel pages.</li>
|
||||
<li>Fixed: Darken game detail pages.</li>
|
||||
</ul>
|
||||
|
||||
<div class="list-header" id="ffz-old-news-button"><a href="#">View Older</a></div>
|
||||
<div id="ffz-old-news"></div>
|
|
@ -1,3 +1,26 @@
|
|||
<div class="list-header">3.5.453 <time datetime="2017-04-04">(2017-04-04)</time></div>
|
||||
<ul class="chat-menu-content menu-side-padding">
|
||||
<li>Fixed: Favoriting emotes from your Twitch Inventory.</li>
|
||||
</ul>
|
||||
|
||||
<div class="list-header">3.5.452 <time datetime="2017-04-04">(2017-04-04)</time></div>
|
||||
<ul class="chat-menu-content menu-side-padding">
|
||||
<li>Changed: Consolidate emote sets from your Twitch Inventory in the My Emoticons menu to avoid having many individual 1-emote sections.</li>
|
||||
<li>Changed: Darken the Inventory page.</li>
|
||||
</ul>
|
||||
|
||||
<div class="list-header">3.5.451 <time datetime="2017-04-04">(2017-04-04)</time></div>
|
||||
<ul class="chat-menu-content menu-side-padding">
|
||||
<li>Changed: Allow you to hide all game-related badges by hiding <code>game</code></li>
|
||||
<li>Removed: Books</li>
|
||||
</ul>
|
||||
|
||||
<div class="list-header">3.5.450 <time datetime="2017-04-04">(2017-04-04)</time></div>
|
||||
<ul class="chat-menu-content menu-side-padding">
|
||||
<li>Added: Option to hide the Commerce Bar on channel pages.</li>
|
||||
<li>Fixed: Darken game detail pages.</li>
|
||||
</ul>
|
||||
|
||||
<div class="list-header">3.5.449 <time datetime="2017-04-04">(2017-04-04)</time></div>
|
||||
<ul class="chat-menu-content menu-side-padding">
|
||||
<li>Fixed: Bug with the emoticon menu for channels without FFZ emotes.</li>
|
||||
|
|
|
@ -105,7 +105,7 @@ FFZ.settings_info.hidden_badges = {
|
|||
help: "Any badges added to this list will not be displayed in chat.",
|
||||
|
||||
on_update: function(val) {
|
||||
if ( this.has_bttv )
|
||||
if ( this.has_bttv_6 )
|
||||
return;
|
||||
|
||||
var controller = utils.ember_lookup('controller:chat'),
|
||||
|
@ -159,7 +159,7 @@ FFZ.settings_info.hidden_badges = {
|
|||
values.push([hide_key, f.render_badges(render_badge)]);
|
||||
}
|
||||
|
||||
if ( this.has_bttv && window.BetterTTV ) {
|
||||
if ( this.has_bttv_6 && window.BetterTTV ) {
|
||||
try {
|
||||
for(var badge_id in BetterTTV.chat.store.__badgeTypes)
|
||||
values.push(['bttv-' + badge_id, null]);
|
||||
|
@ -255,7 +255,7 @@ FFZ.settings_info.transparent_badges = {
|
|||
value: 0,
|
||||
|
||||
category: "Chat Appearance",
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
name: "Badge Style",
|
||||
help: "Make badges appear rounded, completely circular, or transparent with no background at all.",
|
||||
|
@ -263,7 +263,7 @@ FFZ.settings_info.transparent_badges = {
|
|||
process_value: utils.process_int(0, 0, 5),
|
||||
|
||||
on_update: function(val) {
|
||||
if ( this.has_bttv )
|
||||
if ( this.has_bttv_6 )
|
||||
return;
|
||||
|
||||
this.toggle_style('badges-rounded', val === 1);
|
||||
|
@ -302,7 +302,7 @@ if ( constants.IS_WEBKIT )
|
|||
|
||||
FFZ.prototype.setup_badges = function() {
|
||||
this.log("Preparing badge system.");
|
||||
if ( ! this.has_bttv ) {
|
||||
if ( ! this.has_bttv_6 ) {
|
||||
var val = this.settings.transparent_badges;
|
||||
this.toggle_style('badges-rounded', val === 1);
|
||||
this.toggle_style('badges-circular', val === 2 || val === 3 || val === 4);
|
||||
|
@ -312,7 +312,9 @@ FFZ.prototype.setup_badges = function() {
|
|||
|
||||
utils.toggle_cls('ffz-transparent-badges')(val >= 5);
|
||||
utils.toggle_cls('ffz-no-loyalty')(!this.settings.loyalty_badges);
|
||||
}
|
||||
|
||||
if ( ! this.has_bttv ) {
|
||||
this.toggle_style('badges-sub-notice', ! this.settings.sub_notice_badges);
|
||||
this.toggle_style('badges-sub-notice-on', this.settings.sub_notice_badges);
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@ FFZ.settings_info.command_aliases = {
|
|||
value: [],
|
||||
|
||||
category: "Chat Moderation",
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
name: "Command Aliases",
|
||||
help: "Define custom commands for chat that are shortcuts for other commands or messages to send in chat.",
|
||||
|
|
|
@ -19,7 +19,7 @@ FFZ.settings_info.collect_bits = {
|
|||
process_value: utils.process_int(0),
|
||||
|
||||
category: "Chat Appearance",
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
name: "Bits Stacking",
|
||||
help: "Collect all the bits emoticons in a message into a single one at the start of the message."
|
||||
|
@ -31,7 +31,7 @@ FFZ.settings_info.bits_animated = {
|
|||
value: true,
|
||||
|
||||
category: "Chat Appearance",
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
name: "Bits Animation",
|
||||
help: "Display bits with animation.",
|
||||
|
@ -50,7 +50,7 @@ FFZ.settings_info.bits_tags_container = {
|
|||
value: true,
|
||||
|
||||
category: "Chat Appearance",
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
name: "Bits Tag Display",
|
||||
help: "Display competitive bits tags at the top of chats that have it enabled.",
|
||||
|
|
|
@ -565,7 +565,7 @@ FFZ.settings_info.stream_uptime = {
|
|||
FFZ.settings_info.stream_title = {
|
||||
type: "boolean",
|
||||
value: true,
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
no_mobile: true,
|
||||
|
||||
category: "Channel Metadata",
|
||||
|
|
|
@ -373,10 +373,13 @@ FFZ.prototype.modify_chat_input = function(component) {
|
|||
if ( ! t || ! t.length )
|
||||
f.error("Cannot find textarea in Twitch Chat Input.");
|
||||
|
||||
t.off("keydown");
|
||||
t.off("keyup");
|
||||
t.on("keypress", this._ffzKeyPress.bind(this));
|
||||
t.on("keydown", this._ffzKeyDown.bind(this));
|
||||
if ( ! this.has_bttv ) {
|
||||
t.off("keydown");
|
||||
t.off("keyup");
|
||||
t.on("keypress", this._ffzKeyPress.bind(this));
|
||||
t.on("keydown", this._ffzKeyDown.bind(this));
|
||||
}
|
||||
|
||||
t.on("paste", this._ffzPaste.bind(this));
|
||||
|
||||
t.attr('rows', 1);
|
||||
|
@ -825,9 +828,6 @@ FFZ.prototype.modify_chat_input = function(component) {
|
|||
prefix_length = f.settings.input_complete_without_prefix && is_sub_set ? utils.find_common_prefix(_.pluck(emote_set, 'code'), true) : 0;
|
||||
sort_factor = is_sub_set ? 1 : 9;
|
||||
|
||||
if ( is_sub_set )
|
||||
f.log("Sub Set: " + set_name + " -- Common Prefix: " + prefix_length + " [" + emote_set[0].code.substr(0, prefix_length) + "]", emote_set);
|
||||
|
||||
for(var i = 0; i < emote_set.length; i++) {
|
||||
emote = emote_set[i];
|
||||
if ( used_ids.indexOf(emote.id) !== -1 )
|
||||
|
|
|
@ -23,7 +23,7 @@ FFZ.basic_settings.delayed_chat = {
|
|||
},
|
||||
|
||||
category: "Chat",
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
name: "Delay and Filter Chat",
|
||||
help: "Delay the appearance of chat messages to allow time for moderation and completely hide removed messages.",
|
||||
|
@ -109,7 +109,7 @@ FFZ.settings_info.chat_batching = {
|
|||
value: 0,
|
||||
|
||||
category: "Chat Appearance",
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
name: "Chat Message Batching",
|
||||
help: "Display chat messages in batches to improve performance in <em>extremely</em> fast chats.",
|
||||
|
@ -141,7 +141,7 @@ FFZ.settings_info.chat_delay = {
|
|||
value: -1,
|
||||
|
||||
category: "Chat Appearance",
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
name: "Artificial Chat Delay",
|
||||
help: "Delay the appearance of chat messages to allow for moderation before you see them.",
|
||||
|
@ -173,7 +173,7 @@ FFZ.settings_info.remove_filtered = {
|
|||
process_value: utils.process_int(0),
|
||||
|
||||
category: "Chat Filtering",
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
name: "Remove Messages with Banned Words",
|
||||
help: "Mark messages with banned words as deleted or outright remove them from chat.",
|
||||
|
@ -184,14 +184,14 @@ FFZ.settings_info.remove_deleted = {
|
|||
type: "boolean",
|
||||
value: false,
|
||||
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
category: "Chat Filtering",
|
||||
name: "Remove Deleted Messages",
|
||||
help: "Remove deleted messages from chat entirely rather than leaving behind a clickable <deleted message>.",
|
||||
|
||||
on_update: function(val) {
|
||||
if ( this.has_bttv || ! this.rooms || ! val )
|
||||
if ( this.has_bttv_6 || ! this.rooms || ! val )
|
||||
return;
|
||||
|
||||
for(var room_id in this.rooms) {
|
||||
|
@ -219,7 +219,7 @@ FFZ.settings_info.remove_bot_ban_notices = {
|
|||
type: "boolean",
|
||||
value: false,
|
||||
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
category: "Chat Filtering",
|
||||
name: "Remove Bot Ban Notices",
|
||||
|
@ -231,14 +231,14 @@ FFZ.settings_info.prevent_clear = {
|
|||
type: "boolean",
|
||||
value: false,
|
||||
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
category: "Chat Filtering",
|
||||
name: "Show Deleted Messages",
|
||||
help: "Fade deleted messages instead of replacing them, and prevent chat from being cleared.",
|
||||
|
||||
on_update: function(val) {
|
||||
if ( this.has_bttv || ! this.rooms )
|
||||
if ( this.has_bttv_6 || ! this.rooms )
|
||||
return;
|
||||
|
||||
for(var room_id in this.rooms) {
|
||||
|
@ -281,14 +281,14 @@ FFZ.settings_info.group_tabs = {
|
|||
|
||||
process_value: utils.process_int(0, 0, 3),
|
||||
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
category: "Chat Appearance",
|
||||
name: "Chat Room Tabs",
|
||||
help: "Display tabs for chat rooms with recent activity at the top of the chat window for more convenient chatting.",
|
||||
|
||||
on_update: function(val) {
|
||||
if ( this.has_bttv || ! this._chatv )
|
||||
if ( this.has_bttv_6 || ! this._chatv )
|
||||
return;
|
||||
|
||||
if ( val )
|
||||
|
@ -321,7 +321,7 @@ FFZ.settings_info.visible_rooms = {
|
|||
|
||||
FFZ.prototype.refresh_chat = function() {
|
||||
var parents, lines = jQuery('ul.chat-lines');
|
||||
if ( this.has_bttv || ! lines || ! lines.length )
|
||||
if ( this.has_bttv_6 || ! lines || ! lines.length )
|
||||
return;
|
||||
|
||||
parents = lines.parents('.chatReplay');
|
||||
|
@ -358,7 +358,7 @@ FFZ.prototype.setup_chatview = function() {
|
|||
},
|
||||
|
||||
ffzUpdateChannels: function() {
|
||||
if ( ! f._chatv || f.has_bttv )
|
||||
if ( ! f._chatv || f.has_bttv_6 )
|
||||
return;
|
||||
|
||||
f._chatv.ffzRebuildMenu();
|
||||
|
@ -395,7 +395,7 @@ FFZ.prototype.setup_chatview = function() {
|
|||
}.observes("currentChannelRoom"),
|
||||
|
||||
ffzUpdateInvites: function() {
|
||||
if ( ! f._chatv || f.has_bttv )
|
||||
if ( ! f._chatv || f.has_bttv_6 )
|
||||
return;
|
||||
|
||||
f._chatv.ffzUpdateMenuUnread();
|
||||
|
@ -407,7 +407,7 @@ FFZ.prototype.setup_chatview = function() {
|
|||
}.observes('currentRoom'),
|
||||
|
||||
notificationsCount: function() {
|
||||
if ( ! f._chatv || f.has_bttv )
|
||||
if ( ! f._chatv || f.has_bttv_6 )
|
||||
return this._super();
|
||||
|
||||
var total = this.get('invitedPrivateGroupRooms.length') || 0;
|
||||
|
@ -450,7 +450,7 @@ FFZ.prototype.setup_chatview = function() {
|
|||
}.observes("privateGroupRooms.@each"),
|
||||
|
||||
removeCurrentChannelRoom: function() {
|
||||
if ( f.has_bttv )
|
||||
if ( f.has_bttv_6 )
|
||||
return this._super();
|
||||
|
||||
var room = this.get("currentChannelRoom"),
|
||||
|
@ -573,7 +573,7 @@ FFZ.prototype.modify_chat_room_manager = function(component) {
|
|||
|
||||
this.$('.textarea-contain').append(f.build_ui_link(this));
|
||||
|
||||
if ( ! f.has_bttv ) {
|
||||
if ( ! f.has_bttv_6 ) {
|
||||
if ( f.settings.group_tabs )
|
||||
this.ffzEnableTabs();
|
||||
|
||||
|
@ -738,7 +738,7 @@ FFZ.prototype.modify_chat_room_manager = function(component) {
|
|||
|
||||
updated = false;
|
||||
|
||||
if ( f.has_bttv )
|
||||
if ( f.has_bttv_6 )
|
||||
return;
|
||||
|
||||
if ( target ) {
|
||||
|
@ -1071,7 +1071,7 @@ FFZ.prototype.modify_chat_room_manager = function(component) {
|
|||
// Group Tabs
|
||||
|
||||
ffzEnableTabs: function() {
|
||||
if ( f.has_bttv || ! f.settings.group_tabs || this._ffz_tabs )
|
||||
if ( f.has_bttv_6 || ! f.settings.group_tabs || this._ffz_tabs )
|
||||
return;
|
||||
|
||||
// Hide the existing chat UI.
|
||||
|
@ -1110,7 +1110,7 @@ FFZ.prototype.modify_chat_room_manager = function(component) {
|
|||
|
||||
tabs.innerHTML = "";
|
||||
|
||||
if ( f.has_bttv || ! f.settings.group_tabs )
|
||||
if ( f.has_bttv_6 || ! f.settings.group_tabs )
|
||||
return;
|
||||
|
||||
var link = utils.createElement('a', 'button button--icon-only'),
|
||||
|
@ -1285,7 +1285,7 @@ FFZ.prototype.connect_extra_chat = function() {
|
|||
}
|
||||
|
||||
// We don't join extra rooms with BTTV.
|
||||
if ( this.has_bttv )
|
||||
if ( this.has_bttv_6 )
|
||||
return;
|
||||
|
||||
for(var i=0; i < this.settings.pinned_rooms.length; i++)
|
||||
|
@ -1345,7 +1345,7 @@ FFZ.prototype._join_room = function(room_id, no_rebuild) {
|
|||
|
||||
|
||||
// Rebuild the chat UI.
|
||||
if ( ! no_rebuild && ! this.has_bttv && this._chatv ) {
|
||||
if ( ! no_rebuild && ! this.has_bttv_6 && this._chatv ) {
|
||||
if ( this.settings.group_tabs )
|
||||
this._chatv.ffzRebuildTabs();
|
||||
|
||||
|
@ -1383,7 +1383,7 @@ FFZ.prototype._leave_room = function(room_id, no_rebuild) {
|
|||
|
||||
|
||||
// Rebuild the chat UI.
|
||||
if ( ! no_rebuild && ! this.has_bttv && this._chatv ) {
|
||||
if ( ! no_rebuild && ! this.has_bttv_6 && this._chatv ) {
|
||||
if ( this.settings.group_tabs )
|
||||
this._chatv.ffzRebuildTabs();
|
||||
|
||||
|
@ -1399,7 +1399,7 @@ FFZ.prototype._leave_room = function(room_id, no_rebuild) {
|
|||
// ----------------------
|
||||
|
||||
FFZ.chat_commands.join = function(room, args) {
|
||||
if ( this.has_bttv )
|
||||
if ( this.has_bttv_6 )
|
||||
return "Pinned Rooms are not available with BetterTTV installed.";
|
||||
|
||||
if ( ! args || ! args.length || args.length > 1 )
|
||||
|
@ -1415,13 +1415,13 @@ FFZ.chat_commands.join = function(room, args) {
|
|||
return "You have already joined " + room_id + ". Please use \"/part " + room_id + "\" to leave it.";
|
||||
}
|
||||
|
||||
FFZ.chat_commands.join.no_bttv = true;
|
||||
FFZ.chat_commands.join.no_bttv = 6;
|
||||
FFZ.chat_commands.join.label = '/join <channel>';
|
||||
FFZ.chat_commands.join.info = 'Add Channel to Pinned Rooms';
|
||||
|
||||
|
||||
FFZ.chat_commands.part = function(room, args) {
|
||||
if ( this.has_bttv )
|
||||
if ( this.has_bttv_6 )
|
||||
return "Pinned Rooms are not available with BetterTTV installed.";
|
||||
|
||||
if ( ! args || ! args.length || args.length > 1 )
|
||||
|
@ -1439,6 +1439,6 @@ FFZ.chat_commands.part = function(room, args) {
|
|||
return "You are not in " + room_id + ".";
|
||||
}
|
||||
|
||||
FFZ.chat_commands.part.no_bttv = true;
|
||||
FFZ.chat_commands.part.no_bttv = 6;
|
||||
FFZ.chat_commands.part.label = '/part <channel>';
|
||||
FFZ.chat_commands.part.info = 'Remove Channel from Pinned Rooms';
|
|
@ -38,14 +38,14 @@ FFZ.settings_info.top_conversations = {
|
|||
FFZ.settings_info.hide_whispers_in_embedded_chat = {
|
||||
type: "boolean",
|
||||
value: false,
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
category: "Whispers",
|
||||
name: "Hide Whispers in Embedded Chat",
|
||||
help: "Do not display whispers on the dashboard, in pop-out chat, or in chat embedded into other websites.",
|
||||
|
||||
on_update: function(val) {
|
||||
if ( ! val || this.has_bttv )
|
||||
if ( ! val || this.has_bttv_6 )
|
||||
return;
|
||||
|
||||
for(var room_id in this.rooms) {
|
||||
|
@ -117,7 +117,7 @@ FFZ.prototype.modify_conversation_menu = function(component) {
|
|||
el = this.get('element'),
|
||||
sections = el && el.querySelectorAll('.options-section');
|
||||
|
||||
if ( ! user || ! user.length || f.has_bttv )
|
||||
if ( ! user || ! user.length || f.has_bttv_6 )
|
||||
return;
|
||||
|
||||
if ( sections && sections.length )
|
||||
|
|
|
@ -37,7 +37,7 @@ FFZ.settings_info.username_display = {
|
|||
},
|
||||
|
||||
category: "Chat Appearance",
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
name: "Username Display",
|
||||
help: "How a user's name should be rendered when their display name differs from the username.",
|
||||
|
@ -83,8 +83,6 @@ FFZ.settings_info.replace_bad_emotes = {
|
|||
value: true,
|
||||
|
||||
category: "Chat Appearance",
|
||||
warn_bttv: "Only affects Whispers when BetterTTV is enabled.",
|
||||
|
||||
name: "Fix Low Quality Twitch Global Emoticons",
|
||||
help: "Replace emoticons such as DansGame and RedCoat with cleaned up versions that don't have pixels around the edges or white backgrounds for nicer display on dark chat."
|
||||
};
|
||||
|
@ -95,7 +93,7 @@ FFZ.settings_info.parse_links = {
|
|||
value: true,
|
||||
|
||||
category: "Chat Appearance",
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
name: "Make Links Clickable",
|
||||
help: "Display links as real, clickable hyperlinks rather than just text."
|
||||
|
@ -107,7 +105,7 @@ FFZ.settings_info.parse_emoticons = {
|
|||
value: true,
|
||||
|
||||
category: "Chat Appearance",
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
name: "Display Emoticons",
|
||||
help: "Display emoticons in chat messages rather than just text."
|
||||
|
@ -138,7 +136,7 @@ FFZ.settings_info.scrollback_length = {
|
|||
value: 150,
|
||||
|
||||
category: "Chat Appearance",
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
name: "Scrollback Length",
|
||||
help: "Set the maximum number of lines to keep in chat.",
|
||||
|
@ -179,7 +177,7 @@ FFZ.settings_info.hosted_sub_notices = {
|
|||
value: true,
|
||||
|
||||
category: "Chat Filtering",
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
name: "Show Hosted Channel Subscriber Notices",
|
||||
help: "Display (or more specifically <i>hides</i> when disabled) notices in chat when someone subscribes to the hosted channel."
|
||||
|
@ -188,11 +186,9 @@ FFZ.settings_info.hosted_sub_notices = {
|
|||
|
||||
FFZ.settings_info.filter_whispered_links = {
|
||||
type: "boolean",
|
||||
value: true,
|
||||
value: 6,
|
||||
|
||||
category: "Chat Filtering",
|
||||
warn_bttv: "Only affects Whispers when BetterTTV is enabled.",
|
||||
|
||||
name: "Auto-Hide Potentially Dangerous Whispered Links",
|
||||
help: "Removes whispered links and displays a placeholder, with a warning that the link has not been approved by moderation or staff. Links remain accessible with an additional click."
|
||||
};
|
||||
|
@ -204,8 +200,6 @@ FFZ.settings_info.banned_words = {
|
|||
|
||||
category: "Chat Filtering",
|
||||
|
||||
warn_bttv: "Only affects Whispers when BetterTTV is enabled.",
|
||||
|
||||
name: "Banned Words",
|
||||
help: "Set a list of words that will be locally removed from chat messages.",
|
||||
|
||||
|
@ -244,8 +238,6 @@ FFZ.settings_info.keywords = {
|
|||
|
||||
category: "Chat Filtering",
|
||||
|
||||
warn_bttv: "Only affects Whispers when BetterTTV is enabled.",
|
||||
|
||||
name: "Highlight Keywords",
|
||||
help: "Set additional keywords that will be highlighted in chat.",
|
||||
|
||||
|
@ -284,7 +276,6 @@ FFZ.settings_info.clickable_emoticons = {
|
|||
value: false,
|
||||
|
||||
category: "Chat Tooltips",
|
||||
warn_bttv: "Only affects Whispers when BetterTTV is enabled.",
|
||||
no_mobile: true,
|
||||
|
||||
name: "Emoticon Information Pages",
|
||||
|
@ -297,7 +288,7 @@ FFZ.settings_info.link_info = {
|
|||
value: true,
|
||||
|
||||
category: "Chat Tooltips",
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
name: "Link Information <span>Beta</span>",
|
||||
help: "Check links against known bad websites, unshorten URLs, and show YouTube info."
|
||||
|
@ -309,7 +300,7 @@ FFZ.settings_info.link_image_hover = {
|
|||
value: false,
|
||||
|
||||
category: "Chat Tooltips",
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
no_mobile: true,
|
||||
|
||||
name: "Image Preview",
|
||||
|
@ -337,7 +328,7 @@ FFZ.settings_info.image_hover_all_domains = {
|
|||
value: false,
|
||||
|
||||
category: "Chat Tooltips",
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
no_mobile: true,
|
||||
|
||||
name: "Image Preview - All Domains",
|
||||
|
@ -407,7 +398,7 @@ FFZ.settings_info.old_sub_notices = {
|
|||
value: false,
|
||||
|
||||
category: "Chat Appearance",
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
name: "Old-Style Subscriber Notices",
|
||||
help: "Display the old style subscriber notices, with the message on a separate line."
|
||||
|
@ -933,15 +924,43 @@ FFZ.prototype._modify_chat_line = function(component, is_vod) {
|
|||
style = colors ? 'color:' + (is_dark ? colors[1] : colors[0]) : '',
|
||||
colored = colors ? ' has-color' + (is_replay ? ' replay-color' : '') : '',
|
||||
|
||||
results = f.format_display_name(raw_display, username);
|
||||
results = f.format_display_name(raw_display, username),
|
||||
tag = f.settings.disable_bttv_mod_cards ? 'fspan' : 'span';
|
||||
|
||||
return '<span class="' + (is_recipient ? 'to' : 'from') + (alias ? ' ffz-alias' : '') + (results[1] ? ' html-tooltip' : '') + colored + '" style="' + style + (colors ? '" data-color="' + raw_color : '') + (results[1] ? '" title="' + utils.quote_attr(results[1]) : '') + '">' + results[0] + '</span>';
|
||||
return '<' + tag + ' class="' + (is_recipient ? 'to' : 'from') + (alias ? ' ffz-alias' : '') + (results[1] ? ' html-tooltip' : '') + colored + '" style="' + style + (colors ? '" data-color="' + raw_color : '') + (results[1] ? '" title="' + utils.quote_attr(results[1]) : '') + '">' + results[0] + '</' + tag + '>';
|
||||
},
|
||||
|
||||
buildSystemMessageHTML: function() {
|
||||
return this.get('hasSystemMsg') ?
|
||||
'<div class="system-msg">' + utils.sanitize(this.get('systemMsg')) + '</div>' :
|
||||
'';
|
||||
if ( ! this.get('hasSystemMsg') )
|
||||
return '';
|
||||
|
||||
var tags = this.get('msgObject.tags') || {},
|
||||
msg_type = tags['msg-id'],
|
||||
out = '';
|
||||
|
||||
if ( msg_type === 'bits-hashtag' )
|
||||
out = f.render_token(true,false,true, {type: "bits", prefix: "Cheer", amount: parseInt(tags['msg-param-total'])}) +
|
||||
utils.sanitize(tags['system-msg'] || '')
|
||||
.replace('{hashtag}', '<strong>#' + utils.sanitize(tags['msg-param-hashtag']) + '</strong>')
|
||||
.replace('{link}', '<a target="_blank" href="' + utils.quote_san(tags['msg-param-link']) + '">' + utils.sanitize(tags['msg-param-linkname']) + '</a>')
|
||||
|
||||
|
||||
else if ( msg_type === 'purchase' ) {
|
||||
var Intl = utils.ember_lookup('service:intl');
|
||||
out = Intl && ('<p class="purchase-message-title pd-t-0 float-left">' +
|
||||
Intl.tHtml('gameCommerce.purchaseNotifications.message', {
|
||||
userName: tags['login'],
|
||||
purchaseTitle: tags['msg-param-title']
|
||||
}).string +
|
||||
'</p><div><img class="purchase-notif__box-art float-right mg-t-0 mg-1-1" src="' +
|
||||
utils.quote_san(tags['msg-param-imageURL']) +
|
||||
'"></div>');
|
||||
}
|
||||
|
||||
else
|
||||
out = utils.sanitize(this.get('systemMsg'));
|
||||
|
||||
return out ? '<div class="system-msg">' + out + '</div>' : '';
|
||||
},
|
||||
|
||||
buildBadgesHTML: function() {
|
||||
|
|
|
@ -34,6 +34,32 @@ try {
|
|||
// Settings
|
||||
// ----------------
|
||||
|
||||
FFZ.settings_info.disable_bttv_mod_cards = {
|
||||
type: "boolean",
|
||||
value: false,
|
||||
|
||||
require_bttv: 7,
|
||||
|
||||
category: "Chat Moderation",
|
||||
name: "Disable BTTV Mod Cards",
|
||||
help: "This disables mod cards from BetterTTV, forcing FFZ mod cards to show instead.",
|
||||
|
||||
on_update: function(val) {
|
||||
var CL = utils.ember_resolve('component:chat/chat-line'),
|
||||
views = CL ? utils.ember_views() : [];
|
||||
|
||||
for(var vid in views) {
|
||||
var view = views[vid];
|
||||
if ( view instanceof CL && view.buildFromHTML ) {
|
||||
view.$('.from').replaceWith(view.buildFromHTML());
|
||||
if ( view.get('msgObject.to') )
|
||||
view.$('.to').replaceWith(view.buildFromHTML(true));
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
FFZ.basic_settings.enhanced_moderation_cards = {
|
||||
type: "boolean",
|
||||
|
||||
|
@ -60,7 +86,7 @@ FFZ.basic_settings.enhanced_moderation_cards = {
|
|||
FFZ.basic_settings.chat_hover_pause = {
|
||||
type: "boolean",
|
||||
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
category: "Chat",
|
||||
name: "Pause Chat Scrolling on Mouse Hover",
|
||||
|
@ -121,7 +147,7 @@ FFZ.settings_info.chat_mod_icon_visibility = {
|
|||
|
||||
process_value: utils.process_int(0),
|
||||
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
category: "Chat Moderation",
|
||||
name: "Display In-Line Mod Icons",
|
||||
|
@ -154,7 +180,7 @@ FFZ.settings_info.chat_hover_pause = {
|
|||
value: 0,
|
||||
process_value: utils.process_int(0, 0, 1),
|
||||
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
category: "Chat Moderation",
|
||||
name: "Pause Chat Scrolling",
|
||||
|
@ -182,7 +208,7 @@ FFZ.settings_info.short_commands = {
|
|||
type: "boolean",
|
||||
value: true,
|
||||
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
category: "Chat Moderation",
|
||||
name: "Short Moderation Commands",
|
||||
|
@ -225,7 +251,7 @@ FFZ.settings_info.timeout_notices = {
|
|||
value: 1,
|
||||
process_value: utils.process_int(1),
|
||||
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
category: "Chat Moderation",
|
||||
name: "Display Timeout / Ban Notices",
|
||||
|
@ -276,7 +302,7 @@ FFZ.settings_info.mod_button_context = {
|
|||
value: 3,
|
||||
process_value: utils.process_int(3),
|
||||
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
category: "Chat Moderation",
|
||||
name: "Mod Icon Context Menus",
|
||||
|
@ -296,7 +322,7 @@ FFZ.settings_info.mod_card_reasons = {
|
|||
],
|
||||
|
||||
category: "Chat Moderation",
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
name: "Ban / Timeout Reasons",
|
||||
help: "Change the available options in the chat ban reasons list shown in moderation cards and when right-clicking an in-line ban or timeout button.",
|
||||
|
@ -339,7 +365,7 @@ FFZ.settings_info.mod_buttons = {
|
|||
// integer = Timeout (that amount of time)
|
||||
value: [['', false, false], ['',600, false]], //, ['', 1, false]],
|
||||
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
category: "Chat Moderation",
|
||||
name: "Custom In-Line Moderation Icons",
|
||||
|
@ -910,7 +936,7 @@ FFZ.prototype.modify_moderation_card = function(component) {
|
|||
},
|
||||
|
||||
ffz_init: function() {
|
||||
if ( f.has_bttv )
|
||||
if ( f.has_bttv_6 )
|
||||
return;
|
||||
|
||||
f._mod_card = this;
|
||||
|
|
|
@ -663,13 +663,15 @@ FFZ.prototype.modify_room_component = function(component) {
|
|||
ffz_init: function() {
|
||||
f._roomv = this;
|
||||
|
||||
if ( ! f.has_bttv ) {
|
||||
if ( ! f.has_bttv_6 ) {
|
||||
this.ffzFixStickyBottom();
|
||||
this.ffzAddKeyHook();
|
||||
|
||||
if ( f.settings.chat_hover_pause )
|
||||
this.ffzEnableFreeze();
|
||||
}
|
||||
|
||||
if ( ! f.has_bttv ) {
|
||||
if ( f.settings.room_status )
|
||||
this.ffzUpdateStatus();
|
||||
}
|
||||
|
@ -810,7 +812,7 @@ FFZ.ffz_commands = {};
|
|||
|
||||
|
||||
FFZ.prototype.room_message = function(room, text) {
|
||||
if ( this.has_bttv ) {
|
||||
if ( this.has_bttv_6 ) {
|
||||
var lines = text.split("\n");
|
||||
for(var i=0; i < lines.length; i++)
|
||||
BetterTTV.chat.handlers.onPrivmsg(room.id, {style: 'admin', date: new Date(), from: 'jtv', message: lines[i]});
|
||||
|
@ -1329,7 +1331,7 @@ FFZ.prototype._modify_room = function(room) {
|
|||
|
||||
addFriendsWatchingMessage: function(msg) {
|
||||
this.addMessage({
|
||||
style: 'admin' + (f.has_bttv ? '' : ' friend-watching'),
|
||||
style: 'admin' + (f.has_bttv_6 ? '' : ' friend-watching'),
|
||||
message: msg,
|
||||
tags: {
|
||||
emotes: tmimotes && tmimotes(this.get('userEmotes').tryParseEmotes(msg))
|
||||
|
@ -1386,7 +1388,7 @@ FFZ.prototype._modify_room = function(room) {
|
|||
//f.log("Login Moderation for " + this.get('id') + ' [' + room_id + ']', event);
|
||||
|
||||
// In case we get unexpected input, do the other thing.
|
||||
if ( f.has_bttv || ["ban", "unban", "timeout", "untimeout"].indexOf(event.moderation_action) === -1 )
|
||||
if ( f.has_bttv_6 || ["ban", "unban", "timeout", "untimeout"].indexOf(event.moderation_action) === -1 )
|
||||
return this._super(event);
|
||||
|
||||
var msg_id,
|
||||
|
|
|
@ -83,7 +83,7 @@ FFZ.prototype.modify_vod_chat_display = function(component) {
|
|||
Room && Room.findOne(room_id);
|
||||
}
|
||||
|
||||
if ( ! f.has_bttv ) {
|
||||
if ( ! f.has_bttv_6 ) {
|
||||
this.ffzFixStickyBottom();
|
||||
this.ffzAddKeyHook();
|
||||
|
||||
|
|
|
@ -11,7 +11,10 @@ var FFZ = window.FrankerFaceZ,
|
|||
// --------------------
|
||||
|
||||
FFZ.prototype.find_bttv = function(increment, delay) {
|
||||
this.has_bttv = false;
|
||||
this.has_bttv = this.has_bttv_6 = this.has_bttv_7 = false;
|
||||
if ( window.BetterTTV && BetterTTV.version && BetterTTV.version.indexOf('7.') === 0 )
|
||||
return this.setup_bttv_7(delay||0);
|
||||
|
||||
if ( window.BTTVLOADED )
|
||||
return this.setup_bttv(delay||0);
|
||||
|
||||
|
@ -23,9 +26,94 @@ FFZ.prototype.find_bttv = function(increment, delay) {
|
|||
}
|
||||
|
||||
|
||||
FFZ.prototype.setup_bttv_7 = function(delay) {
|
||||
this.log("BetterTTV v7 was detected after " + delay + "ms. Hooking.");
|
||||
this.has_bttv = 7;
|
||||
this.has_bttv_6 = false;
|
||||
this.has_bttv_7 = true;
|
||||
|
||||
var settings = BetterTTV.settings,
|
||||
cl = document.body.classList;
|
||||
|
||||
// Disable FFZ Dark if it's enabled.
|
||||
cl.remove("ffz-dark");
|
||||
if ( this._dark_style ) {
|
||||
this._dark_style.parentElement.removeChild(this._dark_style);
|
||||
this._dark_style = undefined;
|
||||
}
|
||||
|
||||
// Disable other styling.
|
||||
if ( this._layout_style ) {
|
||||
this._layout_style.parentElement.removeChild(this._layout_style);
|
||||
this._layout_style = undefined;
|
||||
}
|
||||
|
||||
if ( this._chat_style ) {
|
||||
utils.update_css(this._chat_style, 'chat_font_size', '');
|
||||
utils.update_css(this._chat_style, 'chat_ts_font_size', '');
|
||||
}
|
||||
|
||||
this.toggle_style('chat-padding');
|
||||
this.toggle_style('chat-background');
|
||||
|
||||
this.toggle_style('chat-separator');
|
||||
this.toggle_style('chat-separator-3d');
|
||||
this.toggle_style('chat-separator-3d-inset');
|
||||
this.toggle_style('chat-separator-wide');
|
||||
|
||||
this.toggle_style('chat-colors-gray');
|
||||
/*this.toggle_style('badges-rounded');
|
||||
this.toggle_style('badges-circular');
|
||||
this.toggle_style('badges-blank');
|
||||
this.toggle_style('badges-circular-small');
|
||||
this.toggle_style('badges-transparent');*/
|
||||
this.toggle_style('badges-sub-notice');
|
||||
this.toggle_style('badges-sub-notice-on');
|
||||
|
||||
//cl.remove('ffz-transparent-badges');
|
||||
cl.remove("ffz-sidebar-swap");
|
||||
cl.remove("ffz-portrait");
|
||||
cl.remove("ffz-minimal-channel-title");
|
||||
cl.remove("ffz-flip-dashboard");
|
||||
cl.remove('ffz-minimal-channel-bar');
|
||||
cl.remove('ffz-channel-bar-bottom');
|
||||
cl.remove('ffz-channel-title-top');
|
||||
cl.remove('ffz-sidebar-minimize');
|
||||
cl.remove('ffz-alias-italics');
|
||||
|
||||
// Update the layout service.
|
||||
var Layout = utils.ember_lookup('service:layout');
|
||||
if ( Layout ) {
|
||||
Layout.set('ffzMinimizeNavigation', false);
|
||||
Layout.set('rawPortraitMode', 0);
|
||||
}
|
||||
|
||||
// Remove Following Count
|
||||
if ( this.settings.following_count ) {
|
||||
this._schedule_following_count();
|
||||
this._draw_following_count();
|
||||
this._draw_following_channels();
|
||||
}
|
||||
|
||||
|
||||
// Hook into BTTV's dark mode.
|
||||
cl.add('ffz-bttv');
|
||||
cl.toggle('ffz-bttv-dark', settings.get('darkenedMode'));
|
||||
|
||||
settings.on('changed.darkenedMode', function(val) {
|
||||
cl.toggle('ffz-bttv-dark', val);
|
||||
});
|
||||
|
||||
this.update_ui_link();
|
||||
this.api_trigger('bttv-initialized', 7);
|
||||
}
|
||||
|
||||
|
||||
FFZ.prototype.setup_bttv = function(delay) {
|
||||
this.log("BetterTTV was detected after " + delay + "ms. Hooking.");
|
||||
this.has_bttv = true;
|
||||
this.has_bttv_6 = true;
|
||||
this.has_bttv_7 = false;
|
||||
|
||||
// Disable Dark if it's enabled.
|
||||
document.body.classList.remove("ffz-dark");
|
||||
|
@ -112,6 +200,7 @@ FFZ.prototype.setup_bttv = function(delay) {
|
|||
cl.remove('ffz-channel-bar-bottom');
|
||||
cl.remove('ffz-channel-title-top');
|
||||
cl.remove('ffz-sidebar-minimize');
|
||||
cl.remove('ffz-alias-italics');
|
||||
|
||||
// Update the layout service.
|
||||
var Layout = utils.ember_lookup('service:layout');
|
||||
|
|
|
@ -30,7 +30,7 @@ FFZ.prototype.setup_emote_menu = function(delay) {
|
|||
// --------------------
|
||||
|
||||
FFZ.prototype._emote_menu_enumerator = function() {
|
||||
if ( this.has_bttv )
|
||||
if ( this.has_bttv_6 )
|
||||
return [];
|
||||
|
||||
var twitch_user = this.get_user(),
|
||||
|
|
|
@ -68,7 +68,7 @@ FFZ.prototype._feature_friday_ui = function(room_id, parent, view) {
|
|||
|
||||
btn.className = 'button primary';
|
||||
btn.classList.toggle('live', ff.live);
|
||||
btn.classList.toggle('blue', this.has_bttv && BetterTTV.settings.get('showBlueButtons'));
|
||||
btn.classList.toggle('blue', this.has_bttv_6 && BetterTTV.settings.get('showBlueButtons'));
|
||||
|
||||
btn.href = "//www.twitch.tv/" + ff.channel;
|
||||
btn.title = message;
|
||||
|
|
|
@ -61,7 +61,7 @@ FFZ.channel_metadata = {};
|
|||
|
||||
// Version
|
||||
var VER = FFZ.version_info = {
|
||||
major: 3, minor: 5, revision: 459,
|
||||
major: 3, minor: 5, revision: 463,
|
||||
toString: function() {
|
||||
return [VER.major, VER.minor, VER.revision].join(".") + (VER.extra || "");
|
||||
}
|
||||
|
@ -295,7 +295,7 @@ require('./ui/tooltips');
|
|||
require('./ui/notifications');
|
||||
//require('./ui/viewer_count');
|
||||
require('./ui/sub_count');
|
||||
require('./ui/dash_stats');
|
||||
//require('./ui/dash_stats');
|
||||
require('./ui/dash_feed');
|
||||
|
||||
require('./ui/menu_button');
|
||||
|
@ -494,7 +494,7 @@ FFZ.prototype.init_dashboard = function(delay) {
|
|||
this.setup_notifications();
|
||||
this.setup_following_count(false);
|
||||
this.setup_menu();
|
||||
this.setup_dash_stats();
|
||||
//this.setup_dash_stats();
|
||||
this.setup_dash_feed();
|
||||
|
||||
this.finalize_ember_wrapper();
|
||||
|
|
|
@ -409,9 +409,15 @@ var is_android = navigator.userAgent.indexOf('Android') !== -1,
|
|||
|
||||
el.className = 'ffz-setting clearfix';
|
||||
|
||||
if ( this.has_bttv && info.no_bttv ) {
|
||||
if ( (info.no_bttv === 6 && this.has_bttv_6) ||
|
||||
(info.no_bttv === 7 && this.has_bttv_7) ||
|
||||
(info.no_bttv === true && this.has_bttv) ) {
|
||||
bttv_skipped.push([info.name, info.help]);
|
||||
continue;
|
||||
} else if ( (info.require_bttv === 6 && ! this.has_bttv_6) ||
|
||||
(info.require_bttv === 7 && ! this.has_bttv_7) ||
|
||||
(info.require_bttv === true && ! this.has_bttv) ) {
|
||||
continue;
|
||||
} else {
|
||||
if ( show_pin ) {
|
||||
var faved = this.settings.favorite_settings.indexOf(key) !== -1;
|
||||
|
|
|
@ -6,11 +6,13 @@
|
|||
background-color: rgba(0,127,255, 0.4);
|
||||
}
|
||||
|
||||
.ffz-bttv-dark .chat-lines .chat-line[data-sender="{user_id}"],
|
||||
.theatre .chat-lines .chat-line[data-sender="{user_id}"],
|
||||
.dark .chat-lines .chat-line[data-sender="{user_id}"] {
|
||||
background-color: rgba(0,63,127, 0.2);
|
||||
}
|
||||
|
||||
.ffz-bttv-dark .chat-lines .chat-line[data-sender="{user_id}"]:nth-child(2n+0),
|
||||
.theatre .chat-lines .chat-line[data-sender="{user_id}"]:nth-child(2n+0),
|
||||
.dark .chat-lines .chat-line[data-sender="{user_id}"]:nth-child(2n+0) {
|
||||
background-color: rgba(0,63,127, 0.4);
|
||||
|
|
|
@ -132,7 +132,7 @@ FFZ.settings_info.twenty_four_timestamps = {
|
|||
},
|
||||
|
||||
category: "Chat Appearance",
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
name: "Timestamp Format",
|
||||
help: "Display timestamps in chat in the 24 hour format rather than 12 hour.",
|
||||
|
@ -156,7 +156,7 @@ FFZ.settings_info.timestamp_seconds = {
|
|||
value: false,
|
||||
|
||||
category: "Chat Appearance",
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
name: "Timestamp Seconds",
|
||||
help: "Display seconds in chat timestamps."
|
||||
|
@ -168,7 +168,7 @@ FFZ.settings_info.show_deleted_links = {
|
|||
value: false,
|
||||
|
||||
category: "Chat Moderation",
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
name: "Show Deleted Links",
|
||||
help: "Do not delete links based on room settings or link length."
|
||||
|
@ -180,7 +180,7 @@ FFZ.settings_info.clickable_mentions = {
|
|||
value: true,
|
||||
|
||||
category: 'Chat Moderation',
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
name: 'Clickable Mentions',
|
||||
help: 'Make mentions in chat starting with an at sign (<code>@</code>) open the user\'s moderation card when clicked.',
|
||||
|
@ -819,7 +819,7 @@ FFZ.prototype.tokenize_chat_line = function(msgObject, prevent_notification, del
|
|||
continue;
|
||||
|
||||
// If we have chat tabs/rows, update the status.
|
||||
if ( room_id && ! this.has_bttv && this._chatv ) {
|
||||
if ( room_id && ! this.has_bttv_6 && this._chatv ) {
|
||||
var room = this.rooms[room_id] && this.rooms[room_id].room;
|
||||
if ( room._ffz_tab && ! room._ffz_tab.classList.contains('active') ) {
|
||||
room._ffz_tab.classList.add('tab-mentioned');
|
||||
|
|
|
@ -81,7 +81,7 @@ FFZ.debugging_blocks = {
|
|||
];
|
||||
|
||||
if ( this.has_bttv )
|
||||
output.push(['BetterTTV', BetterTTV.info.version + 'r' + BetterTTV.info.release]);
|
||||
output.push(['BetterTTV', this.has_bttv_7 ? BetterTTV.version : (BetterTTV.info.version + 'r' + BetterTTV.info.release)]);
|
||||
|
||||
if ( Object.keys(this._apis).length ) {
|
||||
output.push(null);
|
||||
|
|
|
@ -65,8 +65,6 @@ FFZ.basic_settings.high_contrast = {
|
|||
type: "boolean",
|
||||
|
||||
category: "Chat",
|
||||
no_bttv: true,
|
||||
|
||||
name: "High Contrast",
|
||||
help: "Display chat using white and black for maximum contrast. This is suitable for capturing and chroma keying chat to display on stream.",
|
||||
|
||||
|
@ -83,7 +81,7 @@ FFZ.basic_settings.keywords = {
|
|||
type: "button",
|
||||
|
||||
category: "Chat",
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
name: "Highlight Keywords",
|
||||
help: "Set additional keywords that will be highlighted in chat.",
|
||||
|
@ -97,7 +95,7 @@ FFZ.basic_settings.banned_words = {
|
|||
type: "button",
|
||||
|
||||
category: "Chat",
|
||||
no_bttv: true,
|
||||
no_bttv: 6,
|
||||
|
||||
name: "Banned Keywords",
|
||||
help: "Set a list of words that will be removed from chat messages, locally.",
|
||||
|
|
|
@ -769,7 +769,7 @@ FFZ.prototype._add_emote = function(view, emote, favorites_set, favorites_key, e
|
|||
|
||||
var input_el, text, room;
|
||||
|
||||
if ( this.has_bttv ) {
|
||||
if ( this.has_bttv_6 ) {
|
||||
input_el = view.get('element').querySelector('textarea');
|
||||
text = input_el.value;
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ FFZ.prototype.update_ui_link = function(link) {
|
|||
room = this.rooms[room_id],
|
||||
has_emotes = false,
|
||||
|
||||
blue = (this.has_bttv ? BetterTTV.settings.get('showBlueButtons') : false),
|
||||
blue = (this.has_bttv_6 ? BetterTTV.settings.get('showBlueButtons') : false),
|
||||
live = (this.feature_friday && this.feature_friday.live);
|
||||
|
||||
|
||||
|
|
10
src/utils.js
10
src/utils.js
|
@ -1068,11 +1068,15 @@ module.exports = FFZ.utils = {
|
|||
|
||||
|
||||
find_common_prefix: function(list, lower_only) {
|
||||
if ( ! list || ! list.length )
|
||||
return 0;
|
||||
|
||||
var p = 0,
|
||||
l = list.length,
|
||||
w = lower_only ? list[0].toLowerCase() : list[0];
|
||||
w = lower_only ? list[0].toLowerCase() : list[0],
|
||||
wl = w.length;
|
||||
|
||||
while(true) {
|
||||
while (p < wl) {
|
||||
var c = w[p];
|
||||
for(var i=0; i < l; ++i)
|
||||
if ( list[i][p] !== c)
|
||||
|
@ -1080,6 +1084,8 @@ module.exports = FFZ.utils = {
|
|||
|
||||
++p;
|
||||
}
|
||||
|
||||
return wl;
|
||||
},
|
||||
|
||||
|
||||
|
|
20
style.css
20
style.css
|
@ -1284,6 +1284,7 @@ body:not(.ffz-bttv) .dropmenu.share { margin-bottom: 0; }
|
|||
.ffz-moderation-card {
|
||||
border: 2px solid #cbcbcb;
|
||||
width: 340px;
|
||||
line-height: inherit !important;
|
||||
}
|
||||
|
||||
.moderation-card__close-button {
|
||||
|
@ -1311,6 +1312,7 @@ body:not(.ffz-bttv) .dropmenu.share { margin-bottom: 0; }
|
|||
line-height: 18px;
|
||||
z-index: 4;
|
||||
pointer-events: none;
|
||||
margin-left: 0 !important;
|
||||
}
|
||||
|
||||
.ffz-moderation-card .info .stat {
|
||||
|
@ -1418,10 +1420,12 @@ body:not(.ffz-hide-friends) .ffz-moderation-card .follow-button {
|
|||
.ffz-dark .ffz-following-row,
|
||||
.theatre .ffz-following-row,
|
||||
|
||||
.ffz-bttv-dark .moderation-card .moderation-card__actions,
|
||||
.ffz-dark .moderation-card .moderation-card__actions,
|
||||
.theatre .moderation-card .moderation-card__actions,
|
||||
.dark .moderation-card .moderation-card__actions,
|
||||
|
||||
.ffz-bttv-dark .ffz-moderation-card ul.menu,
|
||||
.ffz-dark .ffz-moderation-card ul.menu,
|
||||
.theatre .ffz-moderation-card ul.menu,
|
||||
.dark .ffz-moderation-card ul.menu {
|
||||
|
@ -1445,12 +1449,14 @@ body:not(.ffz-hide-friends) .ffz-moderation-card .follow-button {
|
|||
border-bottom-color: #7d5bbe;
|
||||
}
|
||||
|
||||
.ffz-bttv-dark .ffz-moderation-card ul.menu li,
|
||||
.ffz-dark .ffz-moderation-card ul.menu li,
|
||||
.theatre .ffz-moderation-card ul.menu li,
|
||||
.dark .ffz-moderation-card ul.menu li {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.ffz-bttv-dark .ffz-moderation-card ul.menu li:hover,
|
||||
.ffz-dark .ffz-moderation-card ul.menu li:hover,
|
||||
.theatre .ffz-moderation-card ul.menu li:hover,
|
||||
.dark .ffz-moderation-card ul.menu li:hover {
|
||||
|
@ -1467,21 +1473,25 @@ body:not(.ffz-hide-friends) .ffz-moderation-card .follow-button {
|
|||
|
||||
/* dark moderation card */
|
||||
|
||||
.ffz-bttv-dark .ffz-moderation-card,
|
||||
.dark .ffz-moderation-card,
|
||||
.theatre .ffz-moderation-card {
|
||||
border-color: #1b1b20;
|
||||
}
|
||||
|
||||
.ffz-bttv-dark .ffz-moderation-card:focus,
|
||||
.dark .ffz-moderation-card:focus,
|
||||
.theatre .ffz-moderation-card:focus {
|
||||
border-color: #cbcbcb;
|
||||
}
|
||||
|
||||
.ffz-bttv-dark .ffz-moderation-card .moderation-card__actions,
|
||||
.dark .ffz-moderation-card .moderation-card__actions,
|
||||
.theatre .ffz-moderation-card .moderation-card__actions {
|
||||
background-color: #232329;
|
||||
}
|
||||
|
||||
.ffz-bttv-dark.ffz-no-blue .moderation-card .moderation-card__actions,
|
||||
.ffz-no-blue .cn-hosting,
|
||||
.ffz-no-blue .dark .ember-chat .moderation-card .moderation-card__actions,
|
||||
.ffz-no-blue .theatre .ember-chat .moderation-card .moderation-card__actions {
|
||||
|
@ -1788,7 +1798,10 @@ a.unsafe-link {
|
|||
float: left;
|
||||
}
|
||||
|
||||
.ffz-bttv-dark .ffz-room-row,
|
||||
.ffz-dark .ffz-room-row { color: #a68ed2; }
|
||||
|
||||
.ffz-bttv-dark .ffz-room-row svg path,
|
||||
.ffz-dark .ffz-room-row svg path { fill: #a68ed2; }
|
||||
|
||||
.ffz-room-row { color: #6441a5; }
|
||||
|
@ -1963,19 +1976,24 @@ th.ffz-row-switch {
|
|||
|
||||
/* Dark Group Tabs */
|
||||
|
||||
.ffz-bttv-dark #ffz-group-tabs,
|
||||
.app-main.theatre #ffz-group-tabs,
|
||||
.chat-container.dark #ffz-group-tabs,
|
||||
.ember-chat-container.dark #ffz-group-tabs {
|
||||
box-shadow: inset 0 -1px 0 0 #32323e;
|
||||
}
|
||||
|
||||
.ffz-bttv-dark .ffz-chat-tab,
|
||||
.app-main.theatre .ffz-chat-tab,
|
||||
.chat-container.dark .ffz-chat-tab,
|
||||
.ember-chat-container.dark .ffz-chat-tab {
|
||||
color: #B9A3E3;
|
||||
}
|
||||
|
||||
.ffz-bttv-dark .ffz-room-row td > span:not(.intl-login),
|
||||
.ffz-dark .ffz-room-row td > span:not(.intl-login),
|
||||
|
||||
.ffz-bttv-dark .ffz-chat-tab span,
|
||||
.app-main.theatre .ffz-chat-tab span,
|
||||
.chat-container.dark .ffz-chat-tab span,
|
||||
.ember-chat-container.dark .ffz-chat-tab span {
|
||||
|
@ -1983,6 +2001,7 @@ th.ffz-row-switch {
|
|||
color: #fff;
|
||||
}
|
||||
|
||||
.ffz-bttv-dark .ffz-chat-tab svg path,
|
||||
.app-main.theatre .ffz-chat-tab svg path,
|
||||
.chat-container.dark .ffz-chat-tab svg path,
|
||||
.ember-chat-container.dark .ffz-chat-tab svg path {
|
||||
|
@ -2214,6 +2233,7 @@ body.ffz-minimal-chat-input .ember-chat .chat-interface .textarea-contain textar
|
|||
color: #fff !important;
|
||||
}
|
||||
|
||||
.ffz-bttv-dark .moderation-card .back-button,
|
||||
.theatre .moderation-card .back-button,
|
||||
.dark .moderation-card .back-button {
|
||||
background-color: #232329;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue