diff --git a/script.js b/script.js index 37443da2..15864cfe 100644 --- a/script.js +++ b/script.js @@ -466,17 +466,21 @@ ffz.prototype.setup_bttv = function() { var privmsg = BetterTTV.chat.templates.privmsg, f = this; BetterTTV.chat.templates.privmsg = function(highlight, action, server, isMod, data) { if ( f.check_donor(data.sender) ) { + var badge = _.defaults({}, donor_badge); + if ( BetterTTV.settings.get('alphaTags') ) + badge['type'] = badge['type'] + ' alpha'; + var inserted = false; for(var i=0; i < data.badges.length; i++) { var t = data.badges[i].type; if ( t != 'turbo' && t != 'subscriber' ) continue; - data.badges.insertAt(i, donor_badge); + data.badges.insertAt(i, badge); inserted = true; break; } if ( ! inserted ) - data.badges.push(donor_badge); + data.badges.push(badge); } return privmsg(highlight, action, server, isMod, data); diff --git a/script.min.js b/script.min.js index 0b57607e..1fe14f75 100644 --- a/script.min.js +++ b/script.min.js @@ -1,4 +1,4 @@ -(function wrapper(m,t){if(t){var p=document.createElement("script");p.textContent="("+wrapper+")(window, false)";document.body.appendChild(p);document.body.removeChild(p)}else{var u=/\.([\w\-_]+)\s*?\{content:\s*?"([^"]+)";\s*?background-image:\s*?url\("([^"]+)"\);\s*?height:\s*?(\d+)px;\s*?width:\s*?(\d+)[^}]*\}/mg,r=-1!==location.search.indexOf("frankerfacez"),c=function(){this.alive=!0;this.donors={};this.getting={};this.emoticons=[];this.emotesets={};this.channels={};this.collections={};this.globals= +(function wrapper(m,s){if(s){var p=document.createElement("script");p.textContent="("+wrapper+")(window, false)";document.body.appendChild(p);document.body.removeChild(p)}else{var t=/\.([\w\-_]+)\s*?\{content:\s*?"([^"]+)";\s*?background-image:\s*?url\("([^"]+)"\);\s*?height:\s*?(\d+)px;\s*?width:\s*?(\d+)[^}]*\}/mg,r=-1!==location.search.indexOf("frankerfacez"),c=function(){this.alive=!0;this.donors={};this.getting={};this.emoticons=[];this.emotesets={};this.channels={};this.collections={};this.globals= {};this.global_sets=[];this.styles={};this.pending_styles=[];this._log=[];this._log2=[];this.init(10)};c.prototype.last_set=0;c.prototype.last_emote=0;c.prototype.manger=null;c.prototype.has_bttv=!1;c.commands={};c.prototype.log=function(b){this._log.push(b);b="FFZ"+(this.alive?": ":" (Dead): ")+b;console.log(b);if(r){var d,a;for(a in this.channels)if(this.channels[a]&&this.channels[a].room){d=this.channels[a];break}d?d.room.addTmiMessage(b):this._log2.push(b)}};c.prototype.init=function(b,d){this.alive&& (void 0==m.Ember||void 0==m.App||void 0==App.EmoticonsController||void 0==App.Room?6E4<=d?this.log('Twitch API not detected in "'+location.toString()+'". Aborting.'):setTimeout(this.init.bind(this,b,(d||0)+b),b):this.setup())};c.prototype.setup=function(){this.alive&&(this.log("Hooking Ember application."),this.modify_room(),this.modify_viewers(),this.modify_emotes(),this.modify_lines(),this.log("Loading data."),this.load_donors(),this.load_emotes("global"),document.body||(this.listen_dom=this.listen_dom.bind(this), document.addEventListener("DOMContentLoaded",this.listen_dom,!1)),this.find_bttv(10),this.log("Initialization complete."))};c.prototype.destroy=function(){this.alive&&(alive=!1,m.ffz===this&&(m.ffz=void 0),delete this._log,delete this._log2)};c.prototype.listen_dom=function(){for(document.removeEventListener("DOMContentLoaded",this.listen_dom,!1);this.pending_styles.length;)document.body.appendChild(this.pending_styles.pop())};c.prototype._msg=function(b,d){if(this.has_bttv)return BetterTTV.chat.helpers.serverMessage(d.replace(/\n/g, @@ -13,15 +13,15 @@ c.commands.global.help="Usage: /ffz global\nShorthand for /ffz list global. List var a=d[0].split("/").pop().split("?").shift().split("#").shift();this._msg(b,'Attempting to load test emoticons from imgur album "'+a+'"...');var c="https://api.imgur.com/3/album/"+a;m.localStorage&&localStorage.removeItem("ffz_"+c);this.get(c,this.do_imgur.bind(this,b,a),1,{Accept:"application/json",Authorization:"Client-ID e48d122e3437051"},5)};c.commands.inject.help="Usage: /ffz inject [album-id]\nLoads emoticons from an imgur album for testing. album-id can simply be the album URL. Ex: /ffz inject http://imgur.com/a/v4aZr"; c.prototype.do_imgur=function(b,d,a){if(void 0===a)return this._msg(b,"An error occurred communicating with Imgur.");if(!a)return this._msg(b,"The named album does not exist or is private.");a=JSON.parse(a).data;a=a.images;for(var g="",h=0;h',id:--k.last_emote};a="!"===e[e.length-1]?RegExp("\\b"+e+"(?=\\W|$)","g"):RegExp("\\b"+e+"\\b","g");e={image:g,images:[g],text:e,channel:d,hidden:!1,regex:a,ffzset:b};n.push(e);k.emoticons.push(e); +f);e.type="text/css";e.innerHTML=a;document.body?document.body.appendChild(e):this.pending_styles.push(e);var l=0,k=this,n=this.collections[d]=[];a.replace(t,function(a,c,e,g,m,p){m=parseInt(m);p=parseInt(p);g={emoticon_set:h,height:m,width:p,url:g,html:'',id:--k.last_emote};a="!"===e[e.length-1]?RegExp("\\b"+e+"(?=\\W|$)","g"):RegExp("\\b"+e+"\\b","g");e={image:g,images:[g],text:e,channel:d,hidden:!1,regex:a,ffzset:b};n.push(e);k.emoticons.push(e); f.push({isEmoticon:!0,cls:c,regex:a});l++});this.log("Loaded "+l+" emotes from collection: "+b);return l}};c.prototype.unload_emotes=function(b){if(this.alive){var d=this.channels[b],a,c,h;if(!1!==d){d?(a=d.set_id,c=d.style,h="FFZ Channel Emotes: "+b,delete d.set,delete d.set_id,delete d.style):(a=this.globals[b],c=this.styles[b],h="FFZ Global Emotes"+("global"!=b?": "+b:""),delete this.globals[b],delete this.styles[b],d=this.global_sets.indexOf(a),-1!==d&&this.global_sets.splice(d,1));this.collections[h]&& delete this.collections[h];if(c)try{c.parentNode.removeChild(c)}catch(f){}delete this.emotesets[a];this.manager&&delete this.manager.emoticonSets[a];this.emoticons=this.emoticons.filter(function(a){return a.ffzgroup!==b})}}};c.prototype.check_donor=function(b){return this.donors[b]||!1};c.prototype.load_donors=function(b){this.get("//commondatastorage.googleapis.com/frankerfacez/donors.txt",this.process_donors.bind(this),b?1:108E5)};c.prototype.process_donors=function(b){if(this.alive){this.donors= {};var d=0;if(null!=b){b=b.trim().split(/\W+/);for(var a=0;a