mirror of
https://github.com/FrankerFaceZ/FrankerFaceZ.git
synced 2025-06-27 21:05:53 +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>
|
||||
<ul class="chat-menu-content menu-side-padding">
|
||||
<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 ) {
|
||||
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 )
|
||||
continue;
|
||||
|
||||
old_badge.image = badge.image || null;
|
||||
old_badge.klass += ' ffz-badge-replacement ffz-replacer-ffz-badge-' + (badge_id || full_badge_id);
|
||||
old_badge.title += ', ' + (badge.title || full_badge.title);
|
||||
continue;
|
||||
if ( replace_mode === 'merge' ) {
|
||||
old_badge.image = badge.image || null;
|
||||
old_badge.klass += ' ffz-badge-replacement ffz-replacer-ffz-badge-' + (badge_id || full_badge_id);
|
||||
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);
|
||||
|
@ -665,6 +677,7 @@ FFZ.prototype.bttv_badges = function(data) {
|
|||
full_badge_id = full_badge.real_id || full_badge.id,
|
||||
desc = badge.title || full_badge.title,
|
||||
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);
|
||||
|
||||
|
@ -680,23 +693,6 @@ FFZ.prototype.bttv_badges = function(data) {
|
|||
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 )
|
||||
style += 'background-image: url("' + badge.transparent_image + '");';
|
||||
else if ( badge.image )
|
||||
|
@ -711,7 +707,42 @@ FFZ.prototype.bttv_badges = function(data) {
|
|||
if ( 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]});
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
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.real_id = exact_id;
|
||||
|
||||
if ( badge.replaces && badge.replaces !== true && ! badge.replaces_type ) {
|
||||
badge.replaces_type = badge.replaces;
|
||||
badge.replaces = true;
|
||||
}
|
||||
|
||||
if ( ! badge.color )
|
||||
badge.color = "transparent";
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ FFZ.channel_metadata = {};
|
|||
|
||||
// Version
|
||||
var VER = FFZ.version_info = {
|
||||
major: 3, minor: 5, revision: 429,
|
||||
major: 3, minor: 5, revision: 431,
|
||||
toString: function() {
|
||||
return [VER.major, VER.minor, VER.revision].join(".") + (VER.extra || "");
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue