mirror of
https://github.com/FrankerFaceZ/FrankerFaceZ.git
synced 2025-08-07 06:40:54 +00:00
3.5.431. Make badge replacement more flexible.
This commit is contained in:
parent
c3cca7de64
commit
81945e601d
4 changed files with 72 additions and 25 deletions
|
@ -1,3 +1,13 @@
|
||||||
|
<div class="list-header">3.5.431 <time datetime="2017-02-17">(2017-02-17)</time></div>
|
||||||
|
<ul class="chat-menu-content menu-side-padding">
|
||||||
|
<li>API Changed: Add different modes for merging badges.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="list-header">3.5.430 <time datetime="2017-02-17">(2017-02-17)</time></div>
|
||||||
|
<ul class="chat-menu-content menu-side-padding">
|
||||||
|
<li>Fixed: Bug with the API because constants isn't defined.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<div class="list-header">3.5.429 <time datetime="2017-02-16">(2017-02-16)</time></div>
|
<div class="list-header">3.5.429 <time datetime="2017-02-16">(2017-02-16)</time></div>
|
||||||
<ul class="chat-menu-content menu-side-padding">
|
<ul class="chat-menu-content menu-side-padding">
|
||||||
<li>Fixed: CSS tweaks for the dark theme.</li>
|
<li>Fixed: CSS tweaks for the dark theme.</li>
|
||||||
|
|
|
@ -413,14 +413,26 @@ FFZ.prototype.get_badges = function(user, room_id, badges, msg) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( old_badge ) {
|
if ( old_badge ) {
|
||||||
var replaces = badge.hasOwnProperty('replaces') ? badge.replaces : full_badge.replaces;
|
var replaces = badge.hasOwnProperty('replaces') ? badge.replaces : full_badge.replaces,
|
||||||
|
replace_mode = badge.replace_mode || full_badge.replace_mode || 'merge';
|
||||||
if ( ! replaces )
|
if ( ! replaces )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
old_badge.image = badge.image || null;
|
if ( replace_mode === 'merge' ) {
|
||||||
old_badge.klass += ' ffz-badge-replacement ffz-replacer-ffz-badge-' + (badge_id || full_badge_id);
|
old_badge.image = badge.image || null;
|
||||||
old_badge.title += ', ' + (badge.title || full_badge.title);
|
old_badge.klass += ' ffz-badge-replacement ffz-replacer-ffz-badge-' + (badge_id || full_badge_id);
|
||||||
continue;
|
old_badge.title += ', ' + (badge.title || full_badge.title);
|
||||||
|
continue;
|
||||||
|
|
||||||
|
} else if ( replace_mode === 'keep_title' ) {
|
||||||
|
var b = badges[slot] = this._get_badge_object(badge, full_badge);
|
||||||
|
b.title = old_badge.title + ', ' + b.title;
|
||||||
|
continue;
|
||||||
|
|
||||||
|
} else if ( replace_mode === 'title_only' ) {
|
||||||
|
old_badge.title += ', ' + (badge.title || full_badge.title);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
badges[slot] = this._get_badge_object(badge, full_badge);
|
badges[slot] = this._get_badge_object(badge, full_badge);
|
||||||
|
@ -665,6 +677,7 @@ FFZ.prototype.bttv_badges = function(data) {
|
||||||
full_badge_id = full_badge.real_id || full_badge.id,
|
full_badge_id = full_badge.real_id || full_badge.id,
|
||||||
desc = badge.title || full_badge.title,
|
desc = badge.title || full_badge.title,
|
||||||
style = "",
|
style = "",
|
||||||
|
klass = 'ffz-badge-' + badge_id + (alpha ? ' alpha' : ''),
|
||||||
|
|
||||||
hide_key = (full_badge.source_ext ? this._apis[full_badge.source_ext].name_key : 'ffz') + '-' + (full_badge.name || full_badge.id);
|
hide_key = (full_badge.source_ext ? this._apis[full_badge.source_ext].name_key : 'ffz') + '-' + (full_badge.name || full_badge.id);
|
||||||
|
|
||||||
|
@ -680,23 +693,6 @@ FFZ.prototype.bttv_badges = function(data) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( full_badge.replaces ) {
|
|
||||||
var replaced = false;
|
|
||||||
for(var i=0; i < data.badges.length; i++) {
|
|
||||||
var b = data.badges[i];
|
|
||||||
if ( b.type === full_badge.replaces_type ) {
|
|
||||||
b.type += " ffz-badge-replacement ffz-replacer-ffz-badge-" + (badge_id || full_badge_id);
|
|
||||||
b.description += ", " + (badge.title || full_badge.title) +
|
|
||||||
(badge.image ? '" style="background-image: url(' + utils.quote_attr('"' + badge.image + '"') + ')' : '');
|
|
||||||
replaced = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( replaced )
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( alpha && badge.transparent_image )
|
if ( alpha && badge.transparent_image )
|
||||||
style += 'background-image: url("' + badge.transparent_image + '");';
|
style += 'background-image: url("' + badge.transparent_image + '");';
|
||||||
else if ( badge.image )
|
else if ( badge.image )
|
||||||
|
@ -711,7 +707,42 @@ FFZ.prototype.bttv_badges = function(data) {
|
||||||
if ( style )
|
if ( style )
|
||||||
desc += '" style="' + utils.quote_attr(style);
|
desc += '" style="' + utils.quote_attr(style);
|
||||||
|
|
||||||
badges_out.push([(insert_at == -1 ? 1 : -1) * slot, {type: "ffz-badge-" + badge_id + (alpha ? " alpha" : ""), name: "", description: desc}]);
|
var replaces = badge.hasOwnProperty('replaces') ? badge.replaces : full_badge.replaces,
|
||||||
|
replace_mode = badge.replace_mode || full_badge.replace_mode || 'merge';
|
||||||
|
|
||||||
|
if ( replaces ) {
|
||||||
|
var replaced = false;
|
||||||
|
for(var i=0; i < data.badges.length; i++) {
|
||||||
|
var b = data.badges[i];
|
||||||
|
if ( b.type === full_badge.replaces_type ) {
|
||||||
|
if ( replace_mode === 'merge' ) {
|
||||||
|
b.type += " ffz-badge-replacement ffz-replacer-ffz-badge-" + (badge_id || full_badge_id);
|
||||||
|
b.description += ", " + (badge.title || full_badge.title) +
|
||||||
|
(badge.image ? '" style="background-image: url(' + utils.quote_attr('"' + badge.image + '"') + ')' : '');
|
||||||
|
|
||||||
|
} else if ( replace_mode === 'keep_title' ) {
|
||||||
|
data.badges[i] = {
|
||||||
|
type: klass,
|
||||||
|
name: '',
|
||||||
|
description: b.description + ', ' + desc
|
||||||
|
};
|
||||||
|
|
||||||
|
} else if ( replace_mode === 'title_only' ) {
|
||||||
|
b.description += ', ' + (badge.title || full_badge.title);
|
||||||
|
} else {
|
||||||
|
data.badges[i] = {type: klass, name: '', description: desc};
|
||||||
|
}
|
||||||
|
|
||||||
|
replaced = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( replaced )
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
badges_out.push([(insert_at == -1 ? 1 : -1) * slot, {type: klass, name: "", description: desc}]);
|
||||||
}
|
}
|
||||||
|
|
||||||
badges_out.sort(function(a,b){return a[0] - b[0]});
|
badges_out.sort(function(a,b){return a[0] - b[0]});
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
var FFZ = window.FrankerFaceZ,
|
var FFZ = window.FrankerFaceZ,
|
||||||
utils = require('../utils');
|
utils = require('../utils'),
|
||||||
|
constants = require('../constants');
|
||||||
|
|
||||||
|
|
||||||
// ---------------------
|
// ---------------------
|
||||||
|
@ -482,6 +483,11 @@ API.prototype.add_badge = function(badge_id, badge) {
|
||||||
badge.source_ext = this.id,
|
badge.source_ext = this.id,
|
||||||
badge.real_id = exact_id;
|
badge.real_id = exact_id;
|
||||||
|
|
||||||
|
if ( badge.replaces && badge.replaces !== true && ! badge.replaces_type ) {
|
||||||
|
badge.replaces_type = badge.replaces;
|
||||||
|
badge.replaces = true;
|
||||||
|
}
|
||||||
|
|
||||||
if ( ! badge.color )
|
if ( ! badge.color )
|
||||||
badge.color = "transparent";
|
badge.color = "transparent";
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,7 @@ FFZ.channel_metadata = {};
|
||||||
|
|
||||||
// Version
|
// Version
|
||||||
var VER = FFZ.version_info = {
|
var VER = FFZ.version_info = {
|
||||||
major: 3, minor: 5, revision: 429,
|
major: 3, minor: 5, revision: 431,
|
||||||
toString: function() {
|
toString: function() {
|
||||||
return [VER.major, VER.minor, VER.revision].join(".") + (VER.extra || "");
|
return [VER.major, VER.minor, VER.revision].join(".") + (VER.extra || "");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue