Merge remote-tracking branch 'upstream/master' into bttv-db-update

# Conflicts:
#	emotedata_bttv.json
This commit is contained in:
Ehsan Kia 2016-01-18 15:13:45 -05:00
commit cd3004d669
17 changed files with 53 additions and 785 deletions

3
.gitignore vendored
View File

@ -4,4 +4,5 @@ devjs/.idea/devjs.iml
*.bak
*.bak.*
*.xpi
Firefox/data/js/jquery-2.1.4.min.js
Firefox/data/js/jquery-2.1.4.min.js
*.dev.*

View File

@ -59,7 +59,10 @@ customGamePlugin.prototype.setGame = function(game) {
customGamePlugin.prototype.setPlaying = function() {
if(!this.enabled) return;
if(this.uid == null) this.uid = $(".account .avatar-small").css("background-image").match(/\d+/);
if(this.uid == null) {
if($(".account .avatar-small").css("background-image") == undefined)return;
this.uid = $(".account .avatar-small").css("background-image").match(/\d+/);
}
if(this.game == null) this.game = "";
@ -78,4 +81,4 @@ customGamePlugin.prototype.setPlaying = function() {
}
BdApi.setPlaying(this.game);
};
};

View File

@ -43,7 +43,7 @@ Minimal mode makes elements smaller and hides certain elements.
Only display voice channels
**Public Servers:**
A menu for displaying public servers. [Serverlist](https://github.com/Jiiks/BetterDiscordApp/blob/master/serverlist.json)
A menu for displaying public servers. [Serverlist](https://github.com/Jiiks/BetterDiscordApp/blob/master/data/serverlist.json)
**Custom CSS**
BetterDiscord supports custom CSS for styling Discord to your liking.
@ -61,7 +61,7 @@ Add spoilers to your chat, simply add [!s] to your message.
Save chatlogs locally.(soon)
## Adding you server to public servers
Edit the [Serverlist](https://github.com/Jiiks/BetterDiscordApp/blob/master/serverlist.json) and submit a pull request.
Edit the [Serverlist](https://github.com/Jiiks/BetterDiscordApp/blob/master/data/serverlist.json) and submit a pull request.
## BetterDiscord Uses the following API's
* https://twitchemotes.com/apidocs for Twitch emotes
@ -96,4 +96,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
THE SOFTWARE.

File diff suppressed because one or more lines are too long

View File

@ -24,6 +24,6 @@
"Sonic",
"Mario",
"Paul",
"Daquq"
"Dafuq"
]
}

View File

@ -476,6 +476,13 @@
"language": "EN",
"title": "Project Zomboid"
},
"R6:Siege Community": {
"code": "0eyCK2wAW2LziLem",
"description": "Rainbow 6: Siege Community",
"icon": null,
"language": "EN",
"title": "R6: Siege Community"
},
"Ragnarok Online": {
"code": "0hr7izZb0BhnyN8L",
"description": "Ragnarok Online",
@ -630,6 +637,13 @@
"language": "EN",
"title": "The Sims"
},
"The Division Community": {
"code": "0lh5FmzP4CG785uV",
"description": "The Division Community",
"icon": null,
"language": "EN",
"title": "The Division Community"
},
"Touhou": {
"code": "0U6KAap475vPWss7",
"description": "Touhou",
@ -727,6 +741,20 @@
"icon": null,
"language": "EN",
"title": "Game Development"
},
"9D Awaken": {
"code": "0lQg5MHMLN5dV7F7",
"description": "9dragons awaken beta group",
"icon": null,
"language": "EN",
"title": "9dragons awaken beta group"
},
"Rivals of Aether": {
"code": "0M4F1870WAbAPTbg",
"description": "Rivals of Aether",
"icon": null,
"language": "EN",
"title": "Rivals of Aether"
}
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,29 +0,0 @@
{
"blacklist": [
"double",
"triple",
"quadra",
"penta",
"snap",
"Boy",
"Kill",
"Face",
"Beer",
"Bag",
"Bruh",
"Happy",
"Cheese",
"Hate",
"Jake",
"Rage",
"Train",
"Shame",
"Demon",
"Dream",
"Fighting",
"Sonic",
"Mario",
"Paul",
"Daquq"
]
}

View File

@ -165,7 +165,7 @@ Core.prototype.init = function() {
console.log(new Date().getTime() + " Defer");
if($(".guilds-wrapper .guilds").children().length > 0) {
console.log(new Date().getTime() + " Defer Loaded");
var guilds = $(".guilds li:first-child");
var guilds = $(".guilds>li:first-child");
guilds.after($("<li></li>", { id: "bd-pub-li", css: { "height": "20px", "display": settingsCookie["bda-gs-1"] == true ? "" : "none" } }).append($("<div/>", { class: "guild-inner", css: { "height": "20px", "border-radius": "4px" } }).append($("<a/>").append($("<div/>", { css: { "line-height": "20px", "font-size": "12px" }, text: "public", id: "bd-pub-button" })))));

View File

@ -7,7 +7,7 @@
*/
var settingsPanel, emoteModule, utils, quickEmoteMenu, opublicServers, voiceMode, pluginModule, themeModule;
var jsVersion = 1.57;
var supportedVersion = "0.2.3";
var supportedVersion = "0.2.5";
var mainObserver;
@ -122,7 +122,7 @@ Core.prototype.init = function () {
console.log(new Date().getTime() + " Defer");
if ($(".guilds-wrapper .guilds").children().length > 0) {
console.log(new Date().getTime() + " Defer Loaded");
var guilds = $(".guilds li:first-child");
var guilds = $(".guilds>li:first-child");
guilds.after($("<li></li>", {
id: "bd-pub-li",
@ -250,10 +250,12 @@ Core.prototype.initObserver = function () {
$(".message-group").each(function () {
var a = $(this).find(".avatar-large");
if (a.length > 0) {
try {
var b = a.css("background-image").match(/\d+/).toString();
if (botlist.indexOf(a) > -1) {
$(this).find(".user-name").addClass("boticon");
}
}catch(err) {}
}
});
}
@ -262,9 +264,11 @@ Core.prototype.initObserver = function () {
if (lastMessage != undefined) {
var a = lastMessage.find(".avatar-large");
if (a.length > 0) {
try {
if (botlist.indexOf(a.css("background-image").match(/\d+/).toString()) > -1) {
lastMessage.find(".user-name").addClass("boticon");
}
}catch(err) {}
}
}
if (typeof pluginModule !== "undefined") pluginModule.newMessage();
@ -412,7 +416,7 @@ function EmoteModule() {}
EmoteModule.prototype.init = function () {};
EmoteModule.prototype.getBlacklist = function () {
$.getJSON("https://cdn.rawgit.com/Jiiks/betterDiscordApp/" + _hash + "/emotefilter.json", function (data) {
$.getJSON("https://cdn.rawgit.com/Jiiks/betterDiscordApp/" + _hash + "/data/emotefilter.json", function (data) {
bemotes = data.blacklist;
});
};

10
js/main.min.js vendored
View File

@ -1,10 +1,10 @@
var settingsPanel,emoteModule,utils,quickEmoteMenu,opublicServers,voiceMode,pluginModule,themeModule;var jsVersion=1.57;var supportedVersion="0.2.3";var mainObserver;var twitchEmoteUrlStart="https://static-cdn.jtvnw.net/emoticons/v1/";var twitchEmoteUrlEnd="/1.0";var ffzEmoteUrlStart="https://cdn.frankerfacez.com/emoticon/";var ffzEmoteUrlEnd="/1";var bttvEmoteUrlStart="https://cdn.betterttv.net/emote/";var bttvEmoteUrlEnd="/1x";var mainCore;var settings={"Save logs locally":{"id":"bda-gs-0","info":"Saves chat logs locally","implemented":false},"Public Servers":{"id":"bda-gs-1","info":"Display public servers button","implemented":true},"Minimal Mode":{"id":"bda-gs-2","info":"Hide elements and reduce the size of elements.","implemented":true},"Voice Mode":{"id":"bda-gs-4","info":"Only show voice chat","implemented":true},"Hide Channels":{"id":"bda-gs-3","info":"Hide channels in minimal mode","implemented":true},"Quick Emote Menu":{"id":"bda-es-0","info":"Show quick emote menu for adding emotes","implemented":true},"Show Emotes":{"id":"bda-es-7","info":"Show any emotes","implemented":true},"FrankerFaceZ Emotes":{"id":"bda-es-1","info":"Show FrankerFaceZ Emotes","implemented":true},"BetterTTV Emotes":{"id":"bda-es-2","info":"Show BetterTTV Emotes","implemented":true},"Emote Autocomplete":{"id":"bda-es-3","info":"Autocomplete emote commands","implemented":false},"Emote Auto Capitalization":{"id":"bda-es-4","info":"Autocapitalize emote commands","implemented":true},"Override Default Emotes":{"id":"bda-es-5","info":"Override default emotes","implemented":false},"Show Names":{"id":"bda-es-6","info":"Show emote names on hover","implemented":true}};var links={"Jiiks.net":{"text":"Jiiks.net","href":"http://jiiks.net","target":"_blank"},"twitter":{"text":"Twitter","href":"http://twitter.com/jiiksi","target":"_blank"},"github":{"text":"Github","href":"http://github.com/jiiks","target":"_blank"}};var defaultCookie={"version":jsVersion,"bda-gs-0":false,"bda-gs-1":true,"bda-gs-2":false,"bda-gs-3":false,"bda-gs-4":false,"bda-es-0":true,"bda-es-1":true,"bda-es-2":true,"bda-es-3":false,"bda-es-4":false,"bda-es-5":true,"bda-es-6":true,"bda-es-7":true,"bda-jd":true};var bdchangelog={"changes":{"api":{"title":"Api Functions!","text":"New api events!","img":""},"dec":{"title":"Decorations&Snow!","text":"Decorations and snow have been removed.","img":""}},"fixes":{"emotes":{"title":"Sub emotes!","text":"Discord sub emotes are now replaced by BetterDiscord sub emotes and can be favorited!","img":""}},"upcoming":{"ignore":{"title":"Ignore User!","text":"Ignore users you don't like!","img":""}}};var settingsCookie={};function Core(){}
var settingsPanel,emoteModule,utils,quickEmoteMenu,opublicServers,voiceMode,pluginModule,themeModule;var jsVersion=1.57;var supportedVersion="0.2.5";var mainObserver;var twitchEmoteUrlStart="https://static-cdn.jtvnw.net/emoticons/v1/";var twitchEmoteUrlEnd="/1.0";var ffzEmoteUrlStart="https://cdn.frankerfacez.com/emoticon/";var ffzEmoteUrlEnd="/1";var bttvEmoteUrlStart="https://cdn.betterttv.net/emote/";var bttvEmoteUrlEnd="/1x";var mainCore;var settings={"Save logs locally":{"id":"bda-gs-0","info":"Saves chat logs locally","implemented":false},"Public Servers":{"id":"bda-gs-1","info":"Display public servers button","implemented":true},"Minimal Mode":{"id":"bda-gs-2","info":"Hide elements and reduce the size of elements.","implemented":true},"Voice Mode":{"id":"bda-gs-4","info":"Only show voice chat","implemented":true},"Hide Channels":{"id":"bda-gs-3","info":"Hide channels in minimal mode","implemented":true},"Quick Emote Menu":{"id":"bda-es-0","info":"Show quick emote menu for adding emotes","implemented":true},"Show Emotes":{"id":"bda-es-7","info":"Show any emotes","implemented":true},"FrankerFaceZ Emotes":{"id":"bda-es-1","info":"Show FrankerFaceZ Emotes","implemented":true},"BetterTTV Emotes":{"id":"bda-es-2","info":"Show BetterTTV Emotes","implemented":true},"Emote Autocomplete":{"id":"bda-es-3","info":"Autocomplete emote commands","implemented":false},"Emote Auto Capitalization":{"id":"bda-es-4","info":"Autocapitalize emote commands","implemented":true},"Override Default Emotes":{"id":"bda-es-5","info":"Override default emotes","implemented":false},"Show Names":{"id":"bda-es-6","info":"Show emote names on hover","implemented":true}};var links={"Jiiks.net":{"text":"Jiiks.net","href":"http://jiiks.net","target":"_blank"},"twitter":{"text":"Twitter","href":"http://twitter.com/jiiksi","target":"_blank"},"github":{"text":"Github","href":"http://github.com/jiiks","target":"_blank"}};var defaultCookie={"version":jsVersion,"bda-gs-0":false,"bda-gs-1":true,"bda-gs-2":false,"bda-gs-3":false,"bda-gs-4":false,"bda-es-0":true,"bda-es-1":true,"bda-es-2":true,"bda-es-3":false,"bda-es-4":false,"bda-es-5":true,"bda-es-6":true,"bda-es-7":true,"bda-jd":true};var bdchangelog={"changes":{"api":{"title":"Api Functions!","text":"New api events!","img":""},"dec":{"title":"Decorations&Snow!","text":"Decorations and snow have been removed.","img":""}},"fixes":{"emotes":{"title":"Sub emotes!","text":"Discord sub emotes are now replaced by BetterDiscord sub emotes and can be favorited!","img":""}},"upcoming":{"ignore":{"title":"Ignore User!","text":"Ignore users you don't like!","img":""}}};var settingsCookie={};function Core(){}
Core.prototype.init=function(){var self=this;if(version<supportedVersion){this.alert("Not Supported","BetterDiscord v"+version+"(your version)"+" is not supported by the latest js("+jsVersion+").<br><br> Please download the latest version from <a href='https://betterdiscord.net' target='_blank'>BetterDiscord.net</a>");return;}
utils=new Utils();var sock=new BdWSocket();sock.start();utils.getHash();emoteModule=new EmoteModule();quickEmoteMenu=new QuickEmoteMenu();voiceMode=new VoiceMode();emoteModule.init();this.initSettings();this.initObserver();function gwDefer(){console.log(new Date().getTime()+" Defer");if($(".guilds-wrapper .guilds").children().length>0){console.log(new Date().getTime()+" Defer Loaded");var guilds=$(".guilds li:first-child");guilds.after($("<li></li>",{id:"bd-pub-li",css:{"height":"20px","display":settingsCookie["bda-gs-1"]==true?"":"none"}}).append($("<div/>",{class:"guild-inner",css:{"height":"20px","border-radius":"4px"}}).append($("<a/>").append($("<div/>",{css:{"line-height":"20px","font-size":"12px"},text:"public",id:"bd-pub-button"})))));var showChannelsButton=$("<button/>",{class:"btn",id:"bd-show-channels",text:"R",css:{"cursor":"pointer"},click:function(){settingsCookie["bda-gs-3"]=false;$("body").removeClass("bd-minimal-chan");self.saveSettings();}});$(".guilds-wrapper").prepend(showChannelsButton);opublicServers=new PublicServers();pluginModule=new PluginModule();pluginModule.loadPlugins();if(typeof(themesupport2)!=="undefined"){themeModule=new ThemeModule();themeModule.loadThemes();}
utils=new Utils();var sock=new BdWSocket();sock.start();utils.getHash();emoteModule=new EmoteModule();quickEmoteMenu=new QuickEmoteMenu();voiceMode=new VoiceMode();emoteModule.init();this.initSettings();this.initObserver();function gwDefer(){console.log(new Date().getTime()+" Defer");if($(".guilds-wrapper .guilds").children().length>0){console.log(new Date().getTime()+" Defer Loaded");var guilds=$(".guilds>li:first-child");guilds.after($("<li></li>",{id:"bd-pub-li",css:{"height":"20px","display":settingsCookie["bda-gs-1"]==true?"":"none"}}).append($("<div/>",{class:"guild-inner",css:{"height":"20px","border-radius":"4px"}}).append($("<a/>").append($("<div/>",{css:{"line-height":"20px","font-size":"12px"},text:"public",id:"bd-pub-button"})))));var showChannelsButton=$("<button/>",{class:"btn",id:"bd-show-channels",text:"R",css:{"cursor":"pointer"},click:function(){settingsCookie["bda-gs-3"]=false;$("body").removeClass("bd-minimal-chan");self.saveSettings();}});$(".guilds-wrapper").prepend(showChannelsButton);opublicServers=new PublicServers();pluginModule=new PluginModule();pluginModule.loadPlugins();if(typeof(themesupport2)!=="undefined"){themeModule=new ThemeModule();themeModule.loadThemes();}
settingsPanel=new SettingsPanel();settingsPanel.init();quickEmoteMenu.init(false);$("#tc-settings-button").on("click",function(){settingsPanel.show();});$("#bd-pub-button").on("click",function(){opublicServers.show();});opublicServers.init();emoteModule.autoCapitalize();if(settingsCookie["version"]<jsVersion){var cl=self.constructChangelog();$("body").append(cl);settingsCookie["version"]=jsVersion;self.saveSettings();}
$("head").append("<style>.CodeMirror{ min-width:100%; }</style>");$("head").append('<style id="bdemotemenustyle"></style>');}else{setTimeout(gwDefer,100);}}
$(document).ready(function(){setTimeout(gwDefer,1000);});};Core.prototype.initSettings=function(){if($.cookie("better-discord")==undefined){settingsCookie=defaultCookie;this.saveSettings();}else{this.loadSettings();for(var setting in defaultCookie){if(settingsCookie[setting]==undefined){settingsCookie[setting]=defaultCookie[setting];this.saveSettings();}}}};Core.prototype.saveSettings=function(){$.cookie("better-discord",JSON.stringify(settingsCookie),{expires:365,path:'/'});};Core.prototype.loadSettings=function(){settingsCookie=JSON.parse($.cookie("better-discord"));};var botlist=["119598467310944259"];Core.prototype.initObserver=function(){mainObserver=new MutationObserver(function(mutations){mutations.forEach(function(mutation){if(mutation.target.getAttribute('class')!=null){if(mutation.target.getAttribute('class').indexOf("titlebar")!=-1){quickEmoteMenu.obsCallback();voiceMode.obsCallback();if(typeof pluginModule!=="undefined")pluginModule.channelSwitch();$(".message-group").each(function(){var a=$(this).find(".avatar-large");if(a.length>0){var b=a.css("background-image").match(/\d+/).toString();if(botlist.indexOf(a)>-1){$(this).find(".user-name").addClass("boticon");}}});}
if(mutation.target.getAttribute('class').indexOf('scroller messages')!=-1){var lastMessage=$(".message-group").last();if(lastMessage!=undefined){var a=lastMessage.find(".avatar-large");if(a.length>0){if(botlist.indexOf(a.css("background-image").match(/\d+/).toString())>-1){lastMessage.find(".user-name").addClass("boticon");}}}
$(document).ready(function(){setTimeout(gwDefer,1000);});};Core.prototype.initSettings=function(){if($.cookie("better-discord")==undefined){settingsCookie=defaultCookie;this.saveSettings();}else{this.loadSettings();for(var setting in defaultCookie){if(settingsCookie[setting]==undefined){settingsCookie[setting]=defaultCookie[setting];this.saveSettings();}}}};Core.prototype.saveSettings=function(){$.cookie("better-discord",JSON.stringify(settingsCookie),{expires:365,path:'/'});};Core.prototype.loadSettings=function(){settingsCookie=JSON.parse($.cookie("better-discord"));};var botlist=["119598467310944259"];Core.prototype.initObserver=function(){mainObserver=new MutationObserver(function(mutations){mutations.forEach(function(mutation){if(mutation.target.getAttribute('class')!=null){if(mutation.target.getAttribute('class').indexOf("titlebar")!=-1){quickEmoteMenu.obsCallback();voiceMode.obsCallback();if(typeof pluginModule!=="undefined")pluginModule.channelSwitch();$(".message-group").each(function(){var a=$(this).find(".avatar-large");if(a.length>0){try{var b=a.css("background-image").match(/\d+/).toString();if(botlist.indexOf(a)>-1){$(this).find(".user-name").addClass("boticon");}}catch(err){}}});}
if(mutation.target.getAttribute('class').indexOf('scroller messages')!=-1){var lastMessage=$(".message-group").last();if(lastMessage!=undefined){var a=lastMessage.find(".avatar-large");if(a.length>0){try{if(botlist.indexOf(a.css("background-image").match(/\d+/).toString())>-1){lastMessage.find(".user-name").addClass("boticon");}}catch(err){}}}
if(typeof pluginModule!=="undefined")pluginModule.newMessage();}}
emoteModule.obsCallback(mutation);});});mainObserver.observe(document,{childList:true,subtree:true});};Core.prototype.constructChangelog=function(){var changeLog=''+'<div id="bd-wn-modal" class="modal" style="opacity:1;">'+' <div class="modal-inner">'+' <div id="bdcl" class="change-log"> '+' <div class="header">'+' <strong>What\'s new in BetterDiscord JS v1.53&'+jsVersion+'</strong>'+' <button class="close" onclick=\'$("#bd-wn-modal").remove();\'></button>'+' </div><!--header-->'+' <div class="scroller-wrap">'+' <div class="scroller">';if(bdchangelog.changes!=null){changeLog+=''+'<h1 class="changelog-added">'+' <span>New Stuff</span>'+'</h1>'+'<ul>';for(var change in bdchangelog.changes){change=bdchangelog.changes[change];changeLog+=''+'<li>'+' <strong>'+change.title+'</strong>'+' <div>'+change.text+'</div>'+'</li>';}
changeLog+='</ul>';}
@ -13,7 +13,7 @@ changeLog+='</ul>';}
if(bdchangelog.upcoming!=null){changeLog+=''+'<h1 class="changelog-in-progress">'+' <span>Coming Soon</span>'+'</h1>'+'<ul>';for(var upc in bdchangelog.upcoming){upc=bdchangelog.upcoming[upc];changeLog+=''+'<li>'+' <strong>'+upc.title+'</strong>'+' <div>'+upc.text+'</div>'+'</li>';}
changeLog+='</ul>';}
changeLog+=''+' </div><!--scoller-->'+' </div><!--scroller-wrap-->'+' <div class="footer">'+' </div><!--footer-->'+' </div><!--change-log-->'+' </div><!--modal-inner-->'+'</div><!--modal-->';return changeLog;};Core.prototype.alert=function(title,text){$("body").append(''+'<div class="bd-alert">'+' <div class="bd-alert-header">'+' <span>'+title+'</span>'+' <div class="bd-alert-closebtn" onclick="$(this).parent().parent().remove();">×</div>'+' </div>'+' <div class="bd-alert-body">'+' <div class="scroller-wrap dark fade">'+' <div class="scroller">'+text+'</div>'+' </div>'+' </div>'+'</div>');};var emotesFfz={};var emotesBTTV={};var emotesTwitch={"emotes":{"emote":{"image_id":0}}};var subEmotesTwitch={};function EmoteModule(){}
EmoteModule.prototype.init=function(){};EmoteModule.prototype.getBlacklist=function(){$.getJSON("https://cdn.rawgit.com/Jiiks/betterDiscordApp/"+_hash+"/emotefilter.json",function(data){bemotes=data.blacklist;});};EmoteModule.prototype.obsCallback=function(mutation){var self=this;if(!settingsCookie["bda-es-7"])return;$(".emoji").each(function(){var t=$(this);if(t.attr("src").indexOf(".png")!=-1){t.replaceWith("<span>"+t.attr("alt")+"</span>");}});for(var i=0;i<mutation.addedNodes.length;++i){var next=mutation.addedNodes.item(i);if(next){var nodes=self.getNodes(next);for(var node in nodes){if(nodes.hasOwnProperty(node)){self.injectEmote(nodes[node]);}}}}};EmoteModule.prototype.getNodes=function(node){var next;var nodes=[];var treeWalker=document.createTreeWalker(node,NodeFilter.SHOW_TEXT,null,false);while(next=treeWalker.nextNode()){nodes.push(next);}
EmoteModule.prototype.init=function(){};EmoteModule.prototype.getBlacklist=function(){$.getJSON("https://cdn.rawgit.com/Jiiks/betterDiscordApp/"+_hash+"/data/emotefilter.json",function(data){bemotes=data.blacklist;});};EmoteModule.prototype.obsCallback=function(mutation){var self=this;if(!settingsCookie["bda-es-7"])return;$(".emoji").each(function(){var t=$(this);if(t.attr("src").indexOf(".png")!=-1){t.replaceWith("<span>"+t.attr("alt")+"</span>");}});for(var i=0;i<mutation.addedNodes.length;++i){var next=mutation.addedNodes.item(i);if(next){var nodes=self.getNodes(next);for(var node in nodes){if(nodes.hasOwnProperty(node)){self.injectEmote(nodes[node]);}}}}};EmoteModule.prototype.getNodes=function(node){var next;var nodes=[];var treeWalker=document.createTreeWalker(node,NodeFilter.SHOW_TEXT,null,false);while(next=treeWalker.nextNode()){nodes.push(next);}
return nodes;};var bemotes=[];var spoilered=[];EmoteModule.prototype.injectEmote=function(node){if(typeof emotesTwitch==='undefined')return;if(!node.parentElement)return;var parent=node.parentElement;if(parent.tagName!="SPAN")return;var edited=false;if($(parent.parentElement).hasClass("edited")){parent=parent.parentElement.parentElement.firstChild;edited=true;}
function inject(){if(!$(parent.parentElement).hasClass("markup")&&!$(parent.parentElement).hasClass("message-content")){return;}
var parentInnerHTML=parent.innerHTML;var words=parentInnerHTML.split(/\s+/g);if(!words)return;words.some(function(word){if(word.slice(0,4)=="[!s]"){parentInnerHTML=parentInnerHTML.replace("[!s]","");var markup=$(parent).parent();var reactId=markup.attr("data-reactid");if(spoilered.indexOf(reactId)>-1){return;}

View File

@ -1,732 +0,0 @@
{
"servers": {
"BetterDiscord": {
"code": "0Tmfo5ZbORCRqbAd",
"description": "BetterDiscord Server",
"icon": null,
"language": "EN",
"title": "BetterDiscord"
},
"3DS": {
"code": "0UFdpe0x69ZguQw8",
"description": "3DS",
"icon": null,
"language": "EN",
"title": "3DS"
},
"4chan": {
"code": "0jTw4blvTy1p64eL",
"description": "4chan Discord",
"icon": null,
"language": "EN",
"title": "4chan"
},
"Black Desert Online": {
"code": "0hpSA0xzUj07ABop",
"description": "BDO",
"icon": null,
"language": "EN",
"title": "Black Desert Online"
},
"ALTEDM": {
"code": "0Y6Is461Ze5ae0w1",
"description": "ALTEDM",
"icon": null,
"language": "EN",
"title": "ALTEDM"
},
"ARMA": {
"code": "0aGPuCZqmGNA7xiu",
"description": "ARMA",
"icon": null,
"language": "EN",
"title": "ARMA"
},
"Abusement Park": {
"code": "0YEnlwRYgAEvNz98",
"description": "Abusement Park",
"icon": null,
"language": "EN",
"title": "Abusement Park"
},
"Adventurer's Guild": {
"code": "0MRCBg85iz6XrZu2",
"description": "Adventurer's Guild",
"icon": null,
"language": "EN",
"title": "Adventurer's Guild"
},
"Animu and Mango": {
"code": "0TrxVUwZsSuz9S4j",
"description": "Animu and Mango",
"icon": null,
"language": "EN",
"title": "Animu and Mango"
},
"Anime-Discuss": {
"code": "0ccNdvWBCEuw87eD",
"description": "Anime-Discuss",
"icon": null,
"language": "EN",
"title": "Anime-Discuss"
},
"Binding of Isaac": {
"code": "0gonaBVBNISU8zhS",
"description": "For all Isaac talk",
"icon": null,
"language": "EN",
"title": "Binding of Isaac"
},
"Blade and Soul": {
"code": "0TaItTx9qrQce4iU",
"description": "Blade and Soul",
"icon": null,
"language": "EN",
"title": "Blade and Soul"
},
"Blade Symphony": {
"code": "0gaDaXebgoD4CJ3a",
"description": "Blade Symphony",
"icon": null,
"language": "EN",
"title": "Blade Symphony"
},
"Bluscream's Server": {
"code": "0Xdjjtm2UyoI6Kgu",
"description": "Bluscream's Discord Server",
"icon": null,
"language": "EN",
"title": "Bluscream's Server"
},
"Cell Geek House": {
"code": "0eMZO3uY2Gk15xD7",
"description": "Cell Geek House / Cell Cyber Arena",
"icon": null,
"language": "EN",
"title": "Cell Geek House"
},
"CS:GO": {
"code": "0TIJM4joeU3XmRWO",
"description": "CS:GO",
"icon": null,
"language": "EN",
"title": "CS:GO"
},
"ChristOutreachOnline": {
"code": "0aFmfZpsrBo0bD1d",
"description": "ChristOutreachOnline",
"icon": null,
"language": "EN",
"title": "ChristOutreachOnline"
},
"Closers Dimension Conflict": {
"code": "0S3aWQEkIlWcA2CD",
"description": "Closers Dimension Conflict",
"icon": null,
"language": "EN",
"title": "Closers Dimension Conflict"
},
"Comic Book General": {
"code": "0aNAiNnGVDNURGbI",
"description": "Comic Book General",
"icon": null,
"language": "EN",
"title": "Comic Book General"
},
"Crowfall MMO": {
"code": "0MDCm6IEmg1BF8Ui",
"description": "Crowfall MMO",
"icon": null,
"language": "EN",
"title": "Crowfall MMO"
},
"DOTA2": {
"code": "0Pj5D1QKnYAR4GQ7",
"description": "DOTA 2",
"icon": null,
"language": "EN",
"title": "DOTA 2"
},
"DUTCH": {
"code": "0Vb7szHL7DblhTFt",
"description": "[NL] FPS/MOBA",
"icon": null,
"language": "NL",
"title": "DUTCH"
},
"Devilion MMO": {
"code": "0Mgy9tqnN39ctFsm",
"description": "Devilion MMO",
"icon": null,
"language": "EN",
"title": "Devilion MMO"
},
"Diablo 3": {
"code": "0aOBBxGmOoM5IJ25",
"description": "Diablo 3",
"icon": null,
"language": "EN",
"title": "Diablo 3"
},
"Diablo": {
"code": "0TAtzhBDJhJiC9Ie",
"description": "Diablo",
"icon": null,
"language": "EN",
"title": "Diablo"
},
"Discord & Chill": {
"code": "0kXd4CnI26mZzkun",
"description": "Discord & Chill",
"icon": null,
"language": "EN",
"title": "Discord & Chill"
},
"DiscordDevs": {
"code": "0ESuwoZe4M2Xcpeu",
"description": "DiscordDevs",
"icon": null,
"language": "EN",
"title": "DiscordDevs"
},
"DiscordLinux": {
"code": "0XKEBLSe6ccP5uYT",
"description": "DiscordLinux",
"icon": null,
"language": "EN",
"title": "DiscordLinux"
},
"Distance": {
"code": "0SlqqvzfIbgVqJB6",
"description": "Distance",
"icon": null,
"language": "EN",
"title": "Distance"
},
"Dofus": {
"code": "0RDH0dqUoTRFbwy9",
"description": "Dofus",
"icon": null,
"language": "EN",
"title": "Dofus"
},
"Dragon Nest DNSWorld": {
"code": "0VcwAnzwc0KNfgML",
"description": "Dragon Nest DNSWorld",
"icon": null,
"language": "EN",
"title": "Dragon Nest DNSWorld"
},
"Dragon Nest NA": {
"code": "0aoJVkoXoNwFEUea",
"description": "Dragon Nest NA",
"icon": null,
"language": "EN",
"title": "Dragon Nest NA"
},
"E-Sports India": {
"code": "0YlFAx7vf5bUixZQ",
"description": "E-Sports India",
"icon": null,
"language": "EN",
"title": "E-Sports India"
},
"ElDewrito": {
"code": "0TKY0SDEUHBum0w3",
"description": "Halo Online ElDewrito",
"icon": null,
"language": "EN",
"title": "ElDewrito"
},
"Elite Dangerous": {
"code": "0V5hfT4eO8fN9Q6K",
"description": "Elite Dangerous",
"icon": null,
"language": "EN",
"title": "Elite Dangerous"
},
"Evolve": {
"code": "0UqXI9nyH0aVU7rr",
"description": "Evolve",
"icon": null,
"language": "EN",
"title": "Evolve"
},
"FFXIV (chaos)XIV Cerberus": {
"code": "0ZxYbZOJBFGPHFCA",
"description": "FFXIV (chaos)XIV Cerberus",
"icon": null,
"language": "EN",
"title": "FFXIV (chaos)XIV Cerberus"
},
"FFXIV - Adamantoise": {
"code": "0a7yOKD02XGkhkX1",
"description": "FFXIV - Adamantoise",
"icon": null,
"language": "EN",
"title": "FFXIV - Adamantoise"
},
"FFXIV - Leviathan": {
"code": "0aBJkEDJGsBMDNON",
"description": "FFXIV - Leviathan",
"icon": null,
"language": "EN",
"title": "FFXIV - Leviathan"
},
"FFXIV - Odin": {
"code": "0aBuERD9ZVV8BFqq",
"description": "FFXIV - Odin",
"icon": null,
"language": "EN",
"title": "FFXIV - Odin"
},
"FFXIV - Ultros": {
"code": "0alCJcRuekEnn3Ha",
"description": "FFXIV - Ultros",
"icon": null,
"language": "EN",
"title": "FFXIV - Ultros"
},
"FFXIV Heavensward": {
"code": "0HCCgO4RbqVjgShp",
"description": "FFXIV Heavensward",
"icon": null,
"language": "EN",
"title": "FFXIV Heavensward"
},
"FRENCH": {
"code": "0Tx7qmKNCj1yivSy",
"description": "FRENCH",
"icon": null,
"language": "FR",
"title": "FRENCH"
},
"Fuckboii squad #1": {
"code": "0V2bHFWgHEZt0GsE",
"description": "Fuckboii squad #1",
"icon": null,
"language": "EN",
"title": "Fuckboii squad #1"
},
"Games are Magic": {
"code": "0THXqgmFNlha7B6g",
"description": "Games are Magic",
"icon": null,
"language": "EN",
"title": "Games are Magic"
},
"Guild Wars 2": {
"code": "0b5yVCmhcVt4C6mr",
"description": "Guild Wars 2",
"icon": null,
"language": "EN",
"title": "Guild Wars 2"
},
"Hearthstone": {
"code": "0TwrUZr5zGyFd7HX",
"description": "Hearthstone",
"icon": null,
"language": "EN",
"title": "Hearthstone"
},
"Heroes of the Storm": {
"code": "0SLRrvrOn5DdcrHU",
"description": "Heroes of the Storm",
"icon": null,
"language": "EN",
"title": "Heores of the Storm"
},
"Highschool DxD": {
"code": "0guT1EI9HilMr4dg",
"description": "Highschool DxD",
"icon": null,
"language": "EN",
"title": "Highschool DxD"
},
"Hip Slick & Geek": {
"code": "0Uk8GIZtbNLEbhaP",
"description": "Hip Slick & Geek",
"icon": null,
"language": "EN",
"title": "Hip Slick & Geek"
},
"Insurgency": {
"code": "0YOLsfWWZSvS0jHe",
"description": "Insurgency",
"icon": null,
"language": "EN",
"title": "Insurgency"
},
"Japanese Media Management": {
"code": "0XKJW7TObKLajoKc",
"description": "Japanese Media Management",
"icon": null,
"language": "EN",
"title": "Japanese Media Management"
},
"KappaPride": {
"code": "0ijf4nNsflGI8zYR",
"description": "#Kappa",
"icon": null,
"language": "EN",
"title": "KappaPride"
},
"Killing Floor 2": {
"code": "0YmeWp0IqRUndLXx",
"description": "Killing Floor 2",
"icon": null,
"language": "EN",
"title": "Killing Floor 2"
},
"League of Legends": {
"code": "0T8zCRzGTxbLjlhw",
"description": "League of Legends",
"icon": null,
"language": "EN",
"title": "League of Legends"
},
"Left 4 Dead 2": {
"code": "0YmpIAl4WCls4SLK",
"description": "Left 4 Dead 2",
"icon": null,
"language": "EN",
"title": "Left 4 Dead 2"
},
"Let's Play": {
"code": "0jPHFPiVA2lxKFvN",
"description": "For all kind of Let's Players and viewers.",
"icon": null,
"language": "ALL",
"title": "Let's Play"
},
"Lost Saga": {
"code": "0XVkwnDAeKgT2Cbv",
"description": "Lost Saga",
"icon": null,
"language": "EN",
"title": "Lost Saga"
},
"Mario Kart": {
"code": "0TtGzmNdU5ZxCkgv",
"description": "Mario Kart",
"icon": null,
"language": "EN",
"title": "Mario Kart"
},
"Meebo and Friends": {
"code": "0ZP2BxUIC1eQSp4K",
"description": "Meebo and Friends",
"icon": null,
"language": "EN",
"title": "Meebo and Friends"
},
"Minecraft": {
"code": "0VAzP14IRxYaC97V",
"description": "Minecraft",
"icon": null,
"language": "EN",
"title": "Minecraft"
},
"MovieClub": {
"code": "0Tx4H0SMzT5Qv46T",
"description": "MovieClub",
"icon": null,
"language": "EN",
"title": "MovieClub"
},
"Osu!": {
"code": "0Y1676AR4QQfPn4x",
"description": "Osu!",
"icon": null,
"language": "EN",
"title": "Osu!"
},
"Overwatch": {
"code": "0aP2XiSkO7ekjro4",
"description": "Overwatch",
"icon": null,
"language": "EN",
"title": "Overwatch"
},
"PKA/Painkiller": {
"code": "0Ud6KT05Ly2NMd3f",
"description": "PKA/Painkiller",
"icon": null,
"language": "EN",
"title": "PKA/Painkiller"
},
"PORTUGUESE": {
"code": "",
"description": "PORTUGUESE",
"icon": null,
"language": "PT",
"title": "PORTUGUESE"
},
"Path of Exile": {
"code": "0aPhfOWXrsfz4wk2",
"description": "Path of Exile",
"icon": null,
"language": "EN",
"title": "Path of Exile"
},
"Project Zomboid": {
"code": "0OjlJ7zhCLhDTCti",
"description": "Project Zomboid",
"icon": null,
"language": "EN",
"title": "Project Zomboid"
},
"Ragnarok Online": {
"code": "0hr7izZb0BhnyN8L",
"description": "Ragnarok Online",
"icon": null,
"language": "EN",
"title": "Ragnarok Online"
},
"Reflex": {
"code": "0SrnNbgr3f6Mz9kt",
"description": "Reflex",
"icon": null,
"language": "EN",
"title": "Reflex"
},
"RepZ": {
"code": "0gAFLYLhoOvyeqBA",
"description": "RepZ Clan Discord Server",
"icon": null,
"language": "EN",
"title": "RepZ"
},
"Rhythm Games Community": {
"code": "0SrIUyiiarDafGL2",
"description": "Rhythm Games Community",
"icon": null,
"language": "EN",
"title": "Rhythm Games Community"
},
"Rising Thunder": {
"code": "0WTdWwnuayUuFQYH",
"description": "Rising Thunder",
"icon": null,
"language": "EN",
"title": "Rising Thunder"
},
"Rocket League": {
"code": "0TDkiRRfZwNBNfA5",
"description": "Rocket League",
"icon": null,
"language": "EN",
"title": "Rocket League"
},
"SWEDISH": {
"code": "0VnT8iwVFHLNARyZ",
"description": "SWEDISH",
"icon": null,
"language": "SWE",
"title": "SWEDISH"
},
"Secrets of Grindea": {
"code": "0OKNQ4xrrE0PRQQM",
"description": "Secrets of Grindea",
"icon": null,
"language": "EN",
"title": "Secrets of Grindea"
},
"Smash Brothers /r/ssbm": {
"code": "0Xeas8JqXwdpX0lR",
"description": "Smash Brothers /r/ssbm",
"icon": null,
"language": "EN",
"title": "Smash Brothers"
},
"Smash Brothers": {
"code": "0PAW8nxQx9UbYVTq",
"description": "Smash Brothers - Australian Smash",
"icon": null,
"language": "EN",
"title": "Smash Brothers"
},
"Smite": {
"code": "0U54RVEbDtnOU2wa",
"description": "Smite",
"icon": null,
"language": "EN",
"title": "Smite"
},
"Social Hub": {
"code": "0VIWePEAZcdNDQM5",
"description": "Social Hub",
"icon": null,
"language": "EN",
"title": "Social Hub"
},
"SoulsBorne": {
"code": "0gzazVW6NC6TCIJC",
"description": "All things soulsborne",
"icon": null,
"language": "EN",
"title": "SoulsBorne"
},
"Starcraft": {
"code": "0Vjzi81e7LFaUhPR",
"description": "Starcraft",
"icon": null,
"language": "EN",
"title": "Starcraft"
},
"Sword of Vermilion": {
"code": "0b0ZitR25ZeGGiLT",
"description": "Sword of Vermilion",
"icon": null,
"language": "EN",
"title": "Sword of Vermilion"
},
"TCG": {
"code": "0aGuULuB9C2JbHs4",
"description": "TCG Central",
"icon": null,
"language": "EN",
"title": "TCG"
},
"TheWinggas": {
"code": "0agnV89C8NpXnJbl",
"description": "Winggas for days",
"icon": null,
"language": "EN",
"title": "TheWinggas"
},
"Team Fortress 2": {
"code": "0aDTtF09VPlNTg0Q",
"description": "Team Fortress 2",
"icon": null,
"language": "EN",
"title": "Team Fortress 2"
},
"Terraria": {
"code": "0U4zNFIJpDCL7GQs",
"description": "Terraria",
"icon": null,
"language": "EN",
"title": "Terraria"
},
"The MKW Wiimm-fi Chats": {
"code": "0SdlpwUtv7ozFqXg",
"description": "The MKW Wiimm-fi Chats",
"icon": null,
"language": "EN",
"title": "The MKW Wiimm-fi Chats"
},
"The Music Bar": {
"code": "0TBYxuT95eWrk9RI",
"description": "The Music Bar",
"icon": null,
"language": "EN",
"title": "The Music Bar"
},
"The Sims": {
"code": "0YjcYngtdfkBMAxn",
"description": "The Sims",
"icon": null,
"language": "EN",
"title": "The Sims"
},
"Touhou": {
"code": "0U6KAap475vPWss7",
"description": "Touhou",
"icon": null,
"language": "EN",
"title": "Touhou"
},
"Tree Of Savior": {
"code": "0QFW9NDirWiV9RZh",
"description": "Tree Of Savior",
"icon": null,
"language": "EN",
"title": "Tree Of Savior"
},
"Tripulse Community": {
"code": "0RfRA4njAeYbZAdl",
"description": "Tripulse Community",
"icon": null,
"language": "EN",
"title": "Tripulse Community"
},
"Unofficial Gearbox Discord": {
"code": "0Ut1Gt2sJo6GTFXa",
"description": "Unofficial Gearbox Discord",
"icon": null,
"language": "EN",
"title": "Unofficial Gearbox Discord"
},
"Unofficial Monstercat": {
"code": "0XzWvesV0VyuKDXW",
"description": "Unofficial Monstercat",
"icon": null,
"language": "EN",
"title": "Unofficial Monstercat"
},
"Unofficial Nintendo": {
"code": "0VUyTH6zFt3zU3QW",
"description": "Unofficial Nintendo",
"icon": null,
"language": "EN",
"title": "Unofficial Nintendo"
},
"Unofficial PC Master Race": {
"code": "0VEW0OVOGMjjSmzP",
"description": "Unofficial PC Master Race",
"icon": null,
"language": "EN",
"title": "Unofficial PC Master Race"
},
"Unreal Tournament 4": {
"code": "0UgVfEa2r2CwcjJg",
"description": "Unreal Tournament 4",
"icon": null,
"language": "EN",
"title": "Unreal Tournament 4"
},
"Wakfu": {
"code": "0WL9EEf55J99YJJX",
"description": "Wakfu",
"icon": null,
"language": "EN",
"title": "Wakfu"
},
"Warframe": {
"code": "0Qj6myIvIZgVf5zr",
"description": "Warframe",
"icon": null,
"language": "EN",
"title": "Warframe"
},
"Wildstar": {
"code": "0TrMr9NtcKujZXLh",
"description": "Wildstar",
"icon": null,
"language": "EN",
"title": "Wildstar"
},
"[EU]Rocket League": {
"code": "0W70FqxbCli27BfR",
"description": "[EU]Rocket League",
"icon": null,
"language": "EN",
"title": "[EU]Rocket League"
},
"[UK] FPS/RTS/RPG": {
"code": "0TzxyhJax4nDbITe",
"description": "[UK] FPS/RTS/RPG",
"icon": null,
"language": "EN",
"title": "[UK] FPS/RTS/RPG"
},
"Game Development": {
"code": "0dlKnYoTVkWaLYOd",
"description": "Game Development",
"icon": null,
"language": "EN",
"title": "Game Development"
}
}
}

View File

@ -1,4 +0,0 @@
{
"LatestVersion":"0.2.5",
"CDN":"cdn.rawgit.com"
}