diff --git a/README.md b/README.md
index 8ff77890..c1c7b9d9 100644
--- a/README.md
+++ b/README.md
@@ -24,7 +24,7 @@ Better Discord App enhances Discord desktop app with new features.
## Features
**Emotes:**
-BetterDiscord adds all [Twitch.tv](http://twitch.tv), some [FrankerFaceZ](http://frankerfacez.com)(~240 suggested emotes) and [BetterTTV](http://betterttv.net)(soon) emotes to Discord.
+BetterDiscord adds all [Twitch.tv](http://twitch.tv), some [FrankerFaceZ](http://frankerfacez.com)(~240 suggested emotes) and [BetterTTV](http://betterttv.net) emotes to Discord.
**Quick Emote Menu:**
Quick Emote Menu adds a menu for quickly adding twitch emotes.
@@ -38,6 +38,9 @@ Automatically completes/suggests emotes.(soon)
**Minimal Mode:**
Minimal mode makes elements smaller and hides certain elements.
+**Voice Chat Mode:**
+Only display voice channels
+
**Public Servers:**
A menu for displaying public servers.(soon) [Serverlist](https://github.com/Jiiks/BetterDiscordApp/blob/master/serverlist.json)
@@ -47,6 +50,10 @@ 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.
+## BetterDiscord Uses the following API's
+* https://twitchemotes.com/apidocs for Twitch emotes
+* https://api.betterttv.net/emotes for [BetterTTV](https://nightdev.com/betterttv/) emotes
+
## License
The MIT License (MIT)
@@ -69,4 +76,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.
\ No newline at end of file
diff --git a/js/core.js b/js/core.js
index 68a3ffc4..5baac4a3 100644
--- a/js/core.js
+++ b/js/core.js
@@ -1,13 +1,22 @@
/* BetterDiscordApp Core JavaScript
- * Version: 1.4
+ * Version: 1.5
* Author: Jiiks | http://jiiks.net
* Date: 27/08/2015 - 16:36
- * Last Update: 31/08/2015 - 16:17
+ * Last Update: 24/010/2015 - 17:27
* https://github.com/Jiiks/BetterDiscordApp
*/
-var settingsPanel, emoteModule, utils, quickEmoteMenu;
-var jsVersion = 1.2;
+/*
+ * =Changelog=
+ * -v1.5
+ * --Synchronized loading
+ * --jsv 1.3
+ * --Voice mode
+ */
+
+var settingsPanel, emoteModule, utils, quickEmoteMenu, opublicServers, voiceMode;
+var jsVersion = 1.3;
+var supportedVersion = "0.1.5";
var mainObserver;
@@ -18,29 +27,29 @@ var ffzEmoteUrlEnd = "/1";
var bttvEmoteUrlStart = "";
var bttvEmoteUrlEnd = "";
-
+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", "implemented":false},
+ "Public Servers": { "id": "bda-gs-1", "info": "BETA : 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 },
"FrankerFaceZ Emotes": { "id": "bda-es-1", "info": "Show FrankerFaceZ Emotes", "implemented":true },
- "BetterTTV Emotes": { "id": "bda-es-2", "info": "Show BetterTTV Emotes", "implemented":false },
+ "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 }
};
-
-
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":false,
"bda-es-2":false,
@@ -51,15 +60,19 @@ var defaultCookie = {
var settingsCookie = {};
-function Core() {
-
-}
-
+function Core() {}
Core.prototype.init = function() {
+
+ if(version < supportedVersion) {
+ alert("BetterDiscord v" + version + "(your version)" + " is not supported by the latest js("+jsVersion+"). Please download the latest version from GitHub.");
+ return;
+ }
+
utils = new Utils();
emoteModule = new EmoteModule();
quickEmoteMenu = new QuickEmoteMenu();
+ voiceMode = new VoiceMode();
emoteModule.init();
emoteModule.autoCapitalize();
@@ -67,24 +80,37 @@ Core.prototype.init = function() {
this.initSettings();
this.initObserver();
- function waitForGuildsWrapper() {
-
+ //Incase were too fast
+ function gwDefer() {
+ console.log(new Date().getTime() + " Defer");
if($(".guilds-wrapper").size() > 0) {
- $(".guilds li:first-child").after($("
", {id:"tc-settings-li"}).append($("
", { class: "guild-inner" }).append($(" ").append($("
", { class: "avatar-small", id: "tc-settings-button" })))));
+ console.log(new Date().getTime() + " Defer Loaded");
+ var guilds = $(".guilds li:first-child");
+
+ guilds.after($(" ", { id: "bd-pub-li", css: { "height": "20px", "display": settingsCookie["bda-gs-1"] == true ? "" : "none" } }).append($("
", { class: "guild-inner", css: { "height": "20px", "border-radius": "4px" } }).append($(" ").append($("
", { css: { "line-height": "20px", "font-size": "12px" }, text: "public", id: "bd-pub-button" })))));
+ guilds.after($(" ", {id:"tc-settings-li"}).append($("
", { class: "guild-inner" }).append($(" ").append($("
", { class: "avatar-small", id: "tc-settings-button" })))));
settingsPanel = new SettingsPanel();
settingsPanel.init();
+
+ opublicServers = new PublicServers();
+ opublicServers.init();
+
quickEmoteMenu.init(false);
- $("#tc-settings-button").on("click", function(e) { settingsPanel.show(); });
+ $("#tc-settings-button").on("click", function() { settingsPanel.show(); });
+ $("#bd-pub-button").on("click", function() { opublicServers.show(); });
+
} else {
- setTimeout(function() {
- waitForGuildsWrapper();
- }, 100);
+ setTimeout(gwDefer(), 100);
}
}
- waitForGuildsWrapper();
-}
+
+
+ $(document).ready(function() {
+ setTimeout(gwDefer, 500);
+ });
+};
Core.prototype.initSettings = function() {
if($.cookie("better-discord") == undefined) {
@@ -95,22 +121,20 @@ Core.prototype.initSettings = function() {
for(var setting in defaultCookie) {
if(settingsCookie[setting] == undefined) {
- settingsCookie = defaultCookie;
+ settingsCookie[setting] = defaultCookie[setting];
this.saveSettings();
- alert("BetterDiscord settings reset due to update/error");
- break;
}
}
}
-}
+};
Core.prototype.saveSettings = function() {
$.cookie("better-discord", JSON.stringify(settingsCookie), { expires: 365, path: '/' });
-}
+};
Core.prototype.loadSettings = function() {
settingsCookie = JSON.parse($.cookie("better-discord"));
-}
+};
Core.prototype.initObserver = function() {
@@ -126,5 +150,6 @@ Core.prototype.initObserver = function() {
});
});
+ //noinspection JSCheckFunctionSignatures
mainObserver.observe(document, { childList: true, subtree: true });
-}
+};
\ No newline at end of file
diff --git a/js/emotemodule.js b/js/emotemodule.js
index c541c6e3..b5d7c288 100644
--- a/js/emotemodule.js
+++ b/js/emotemodule.js
@@ -1,5 +1,5 @@
/* BetterDiscordApp EmoteModule JavaScript
- * Version: 1.4
+ * Version: 1.5
* Author: Jiiks | http://jiiks.net
* Date: 26/08/2015 - 15:29
* Last Update: 14/10/2015 - 09:48
@@ -7,21 +7,23 @@
* Note: Due to conflicts autocapitalize only supports global emotes
*/
-var autoCapitalize = true;
-var ffzEnabled = false;
-var bttvEnabled = false;
+/*
+ * =Changelog=
+ * -v1.5
+ * --Twitchemotes.com api
+ */
+
var emotesFfz = {};
var emotesBTTV = {};
-var emotesTwitch = {":(":2, ":)": 1, ":/":10, ":D":3, ":o":8, ":p":12, ":z":5, ";)":11, ";p":13, "<3":9, ">(":4, "B)":7, "o_o":6, "R)":14,"4Head":354,"ANELE":3792,"ArgieB8":51838,"ArsonNoSexy":50,"AsianGlow":74,"AtGL":9809,"AthenaPMS":32035,"AtIvy":9800,"AtWW":9801,"BabyRage":22639,"BatChest":1905,"BCWarrior":30,"BibleThump":86,"BigBrother":1904,"BionicBunion":24,"BlargNaut":38,"BloodTrail":69,"BORT":243,"BrainSlug":881,"BrokeBack":4057,"BuddhaBar":27602,"CoolCat":58127,"CorgiDerp":49106,"CougarHunt":21,"DAESuppy":973,"DansGame":33,"DatHass":20225,"DatSheffy":170,"DBstyle":73,"deExcite":46249,"deIlluminati":46248,"DendiFace":58135,"DogFace":1903,"DOOMGuy":54089,"EagleEye":20,"EleGiggle":4339,"EvilFetus":72,"FailFish":360,"FPSMarksman":42,"FrankerZ":65,"FreakinStinkin":39,"FUNgineer":244,"FunRun":48,"FuzzyOtterOO":168,"GasJoker":9802,"GingerPower":32,"GrammarKing":3632,"HassanChop":68,"HeyGuys":30259,"HotPokket":357,"HumbleLife":46881,"ItsBoshyTime":169,"Jebaited":90,"JKanStyle":15,"JonCarnage":26,"KAPOW":9803,"Kappa":25,"KappaPride":55338,"Keepo":1902,"KevinTurtle":40,"Kippa":1901,"Kreygasm":41,"KZskull":5253,"Mau5":30134,"mcaT":35063,"MechaSupes":9804,"MrDestructoid":28,"MVGame":29,"NightBat":9805,"NinjaTroll":45,"NoNoSpot":44,"NotATK":34875,"NotLikeThis":58765,"OMGScoots":91,"OneHand":66,"OpieOP":356,"OptimizePrime":16,"OSbeaver":47005,"OSbury":47420,"OSdeo":47007,"OSfrog":47008,"OSkomodo":47010,"OSrob":47302,"OSsloth":47011,"panicBasket":22998,"PanicVis":3668,"PazPazowitz":19,"PeoplesChamp":3412,"PermaSmug":27509,"PicoMause":27,"PipeHype":4240,"PJHarley":9808,"PJSalt":36,"PMSTwin":92,"PogChamp":88,"Poooound":358,"PraiseIt":38586,"PRChase":28328,"PunchTrees":47,"PuppeyFace":58136,"RaccAttack":27679,"RalpherZ":1900,"RedCoat":22,"ResidentSleeper":245,"RitzMitz":4338,"RuleFive":361,"ShadyLulu":52492,"Shazam":9807,"shazamicon":9806,"ShazBotstix":87,"ShibeZ":27903,"SMOrc":52,"SMSkull":51,"SoBayed":1906,"SoonerLater":355,"SriHead":14706,"SSSsss":46,"StoneLightning":17,"StrawBeary":37,"SuperVinlin":31,"SwiftRage":34,"tbBaconBiscuit":44499,"tbChickenBiscuit":56879,"tbQuesarito":56883,"tbSausageBiscuit":56881,"tbSpicy":56882,"tbSriracha":56880,"TF2John":1899,"TheKing":50901,"TheRinger":18,"TheTarFu":70,"TheThing":7427,"ThunBeast":1898,"TinyFace":67,"TooSpicy":359,"TriHard":171,"TTours":38436,"UleetBackup":49,"UncleNox":3666,"UnSane":71,"VaultBoy":54090,"Volcania":166,"WholeWheat":1896,"WinWaker":167,"WTRuck":1897,"WutFace":28087,"YouWHY":4337};
+var emotesTwitch = { "emotes": { "emote": { "image_id": 0 } } }; //for ide
+var subEmotesTwitch = {};
+
+//TODO Use emotesTwitch for autocap
var twitchAc = {"4head":"4Head","anele":"ANELE","argieb8":"ArgieB8","arsonnosexy":"ArsonNoSexy","asianglow":"AsianGlow","atgl":"AtGL","athenapms":"AthenaPMS","ativy":"AtIvy","atww":"AtWW","babyrage":"BabyRage","batchest":"BatChest","bcwarrior":"BCWarrior","biblethump":"BibleThump","bigbrother":"BigBrother","bionicbunion":"BionicBunion","blargnaut":"BlargNaut","bloodtrail":"BloodTrail","bort":"BORT","brainslug":"BrainSlug","brokeback":"BrokeBack","buddhabar":"BuddhaBar","coolcat":"CoolCat","corgiderp":"CorgiDerp","cougarhunt":"CougarHunt","daesuppy":"DAESuppy","dansgame":"DansGame","dathass":"DatHass","datsheffy":"DatSheffy","dbstyle":"DBstyle","deexcite":"deExcite","deilluminati":"deIlluminati","dendiface":"DendiFace","dogface":"DogFace","doomguy":"DOOMGuy","eagleeye":"EagleEye","elegiggle":"EleGiggle","evilfetus":"EvilFetus","failfish":"FailFish","fpsmarksman":"FPSMarksman","frankerz":"FrankerZ","freakinstinkin":"FreakinStinkin","fungineer":"FUNgineer","funrun":"FunRun","fuzzyotteroo":"FuzzyOtterOO","gasjoker":"GasJoker","gingerpower":"GingerPower","grammarking":"GrammarKing","hassanchop":"HassanChop","heyguys":"HeyGuys","hotpokket":"HotPokket","humblelife":"HumbleLife","itsboshytime":"ItsBoshyTime","jebaited":"Jebaited","jkanstyle":"JKanStyle","joncarnage":"JonCarnage","kapow":"KAPOW","kappa":"Kappa","kappapride":"KappaPride","keepo":"Keepo","kevinturtle":"KevinTurtle","kippa":"Kippa","kreygasm":"Kreygasm","kzskull":"KZskull","mau5":"Mau5","mcat":"mcaT","mechasupes":"MechaSupes","mrdestructoid":"MrDestructoid","mvgame":"MVGame","nightbat":"NightBat","ninjatroll":"NinjaTroll","nonospot":"NoNoSpot","notatk":"NotATK","notlikethis":"NotLikeThis","omgscoots":"OMGScoots","onehand":"OneHand","opieop":"OpieOP","optimizeprime":"OptimizePrime","osbeaver":"OSbeaver","osbury":"OSbury","osdeo":"OSdeo","osfrog":"OSfrog","oskomodo":"OSkomodo","osrob":"OSrob","ossloth":"OSsloth","panicbasket":"panicBasket","panicvis":"PanicVis","pazpazowitz":"PazPazowitz","peopleschamp":"PeoplesChamp","permasmug":"PermaSmug","picomause":"PicoMause","pipehype":"PipeHype","pjharley":"PJHarley","pjsalt":"PJSalt","pmstwin":"PMSTwin","pogchamp":"PogChamp","poooound":"Poooound","praiseit":"PraiseIt","prchase":"PRChase","punchtrees":"PunchTrees","puppeyface":"PuppeyFace","raccattack":"RaccAttack","ralpherz":"RalpherZ","redcoat":"RedCoat","residentsleeper":"ResidentSleeper","ritzmitz":"RitzMitz","rulefive":"RuleFive","shadylulu":"ShadyLulu","shazam":"Shazam","shazamicon":"shazamicon","shazbotstix":"ShazBotstix","shibez":"ShibeZ","smorc":"SMOrc","smskull":"SMSkull","sobayed":"SoBayed","soonerlater":"SoonerLater","srihead":"SriHead","ssssss":"SSSsss","stonelightning":"StoneLightning","strawbeary":"StrawBeary","supervinlin":"SuperVinlin","swiftrage":"SwiftRage","tbbaconbiscuit":"tbBaconBiscuit","tbchickenbiscuit":"tbChickenBiscuit","tbquesarito":"tbQuesarito","tbsausagebiscuit":"tbSausageBiscuit","tbspicy":"tbSpicy","tbsriracha":"tbSriracha","tf2john":"TF2John","theking":"TheKing","theringer":"TheRinger","thetarfu":"TheTarFu","thething":"TheThing","thunbeast":"ThunBeast","tinyface":"TinyFace","toospicy":"TooSpicy","trihard":"TriHard","ttours":"TTours","uleetbackup":"UleetBackup","unclenox":"UncleNox","unsane":"UnSane","vaultboy":"VaultBoy","volcania":"Volcania","wholewheat":"WholeWheat","winwaker":"WinWaker","wtruck":"WTRuck","wutface":"WutFace","youwhy":"YouWHY"};
-function EmoteModule() {
+function EmoteModule() {}
-}
-
-EmoteModule.prototype.init = function() {
-
-}
+EmoteModule.prototype.init = function() {};
EmoteModule.prototype.obsCallback = function(mutation) {
var self = this;
@@ -30,11 +32,13 @@ EmoteModule.prototype.obsCallback = function(mutation) {
if(next) {
var nodes = self.getNodes(next);
for(var node in nodes) {
- self.injectEmote(nodes[node]);
+ if(nodes.hasOwnProperty(node)) {
+ self.injectEmote(nodes[node]);
+ }
}
}
}
-}
+};
EmoteModule.prototype.getNodes = function(node) {
var next;
@@ -47,9 +51,9 @@ EmoteModule.prototype.getNodes = function(node) {
}
return nodes;
-}
-
+};
+//TODO Functional titles
EmoteModule.prototype.injectEmote = function(node) {
if(typeof emotesTwitch === 'undefined') return;
@@ -65,34 +69,50 @@ EmoteModule.prototype.injectEmote = function(node) {
if(!words) return;
words.some(function(word) {
- if (emotesTwitch.hasOwnProperty(word)) {
- parentInnerHTML = parentInnerHTML.replace(word, " <\/img>");
- } else if(typeof emotesFfz !== 'undefined' && settingsCookie["bda-es-1"]) {
+
+ if(emotesTwitch.emotes.hasOwnProperty(word)) {
+ parentInnerHTML = parentInnerHTML.replace(word, " <\/img>");
+ return;
+ }
+
+ if(typeof emotesFfz !== 'undefined' && settingsCookie["bda-es-1"]) {
if(emotesFfz.hasOwnProperty(word)) {
- parentInnerHTML = parentInnerHTML.replace(word, " <\/img>");
- } else if(typeof emotesBTTV !== 'undefined' && settingsCookie["bda-es-2"]) {
- if(emotesBTTV.hasOwnProperty(word)) {
- parentInnerHTML = parentInnerHTML.replace(word, " <\/img>");
- }
+ parentInnerHTML = parentInnerHTML.replace(word, " <\/img>");
+ return;
}
}
+
+ if(typeof emotesBTTV !== 'undefined' && settingsCookie["bda-es-2"]) {
+ if(emotesBTTV.hasOwnProperty(word)) {
+ parentInnerHTML = parentInnerHTML.replace(word, " <\/img>");
+ return;
+ }
+ }
+
+ if (subEmotesTwitch.hasOwnProperty(word)) {
+ parentInnerHTML = parentInnerHTML.replace(word, " <\/img>");
+ }
});
+ if(parent.parentElement == null) return;
+
var oldHeight = parent.parentElement.offsetHeight;
parent.innerHTML = parentInnerHTML;
var newHeight = parent.parentElement.offsetHeight;
- var scrollPane = $($(".scroller.messages")[0])
+ //Scrollfix
+ var scrollPane = $(".scroller.messages").first();
scrollPane.scrollTop(scrollPane.scrollTop() + (newHeight - oldHeight));
-}
+};
EmoteModule.prototype.autoCapitalize = function() {
var self = this;
+ var textArea = $(".channel-textarea-inner textarea");
- $('body').delegate($(".channel-textarea-inner textarea"), 'keyup change paste', function() {
+ $('body').delegate(textArea, 'keyup change paste', function() {
if(!settingsCookie["bda-es-4"]) return;
- var text = $(".channel-textarea-inner textarea").val();
+ var text = textArea.val();
if(text == undefined) return;
@@ -100,17 +120,15 @@ EmoteModule.prototype.autoCapitalize = function() {
if(lastWord.length > 3) {
var ret = self.capitalize(lastWord.toLowerCase());
if(ret != null) {
- $(".channel-textarea-inner textarea").val(text.replace(lastWord, ret));
+ textArea.val(text.replace(lastWord, ret));
}
}
-
});
-
-}
+};
EmoteModule.prototype.capitalize = function(value) {
if(twitchAc.hasOwnProperty(value)) {
return twitchAc[value];
}
return null;
-}
+};
\ No newline at end of file
diff --git a/js/main.js b/js/main.js
index bfe0a4a5..0ec5284e 100644
--- a/js/main.js
+++ b/js/main.js
@@ -1,13 +1,22 @@
/* BetterDiscordApp Core JavaScript
- * Version: 1.4
+ * Version: 1.5
* Author: Jiiks | http://jiiks.net
* Date: 27/08/2015 - 16:36
- * Last Update: 31/08/2015 - 16:17
+ * Last Update: 24/010/2015 - 17:27
* https://github.com/Jiiks/BetterDiscordApp
*/
-var settingsPanel, emoteModule, utils, quickEmoteMenu;
-var jsVersion = 1.2;
+/*
+ * =Changelog=
+ * -v1.5
+ * --Synchronized loading
+ * --jsv 1.3
+ * --Voice mode
+ */
+
+var settingsPanel, emoteModule, utils, quickEmoteMenu, opublicServers, voiceMode;
+var jsVersion = 1.3;
+var supportedVersion = "0.1.5";
var mainObserver;
@@ -18,29 +27,29 @@ var ffzEmoteUrlEnd = "/1";
var bttvEmoteUrlStart = "";
var bttvEmoteUrlEnd = "";
-
+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", "implemented":false},
+ "Public Servers": { "id": "bda-gs-1", "info": "BETA : 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 },
"FrankerFaceZ Emotes": { "id": "bda-es-1", "info": "Show FrankerFaceZ Emotes", "implemented":true },
- "BetterTTV Emotes": { "id": "bda-es-2", "info": "Show BetterTTV Emotes", "implemented":false },
+ "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 }
};
-
-
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":false,
"bda-es-2":false,
@@ -51,41 +60,57 @@ var defaultCookie = {
var settingsCookie = {};
-function Core() {
-
-}
-
+function Core() {}
Core.prototype.init = function() {
+
+ if(version < supportedVersion) {
+ alert("BetterDiscord v" + version + "(your version)" + " is not supported by the latest js("+jsVersion+"). Please download the latest version from GitHub.");
+ return;
+ }
+
utils = new Utils();
emoteModule = new EmoteModule();
quickEmoteMenu = new QuickEmoteMenu();
+ voiceMode = new VoiceMode();
emoteModule.init();
- emoteModule.autoCapitalize();
this.initSettings();
this.initObserver();
- //Temp
- setTimeout(function() {
- if($(".guilds-wrapper").size() > 0) {
- $(".guilds li:first-child").after($(" ", {id:"tc-settings-li"}).append($("
", { class: "guild-inner" }).append($(" ").append($("
", { class: "avatar-small", id: "tc-settings-button" })))));
+ //Incase were too fast
+ 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($(" ", { id: "bd-pub-li", css: { "height": "20px", "display": settingsCookie["bda-gs-1"] == true ? "" : "none" } }).append($("
", { class: "guild-inner", css: { "height": "20px", "border-radius": "4px" } }).append($(" ").append($("
", { css: { "line-height": "20px", "font-size": "12px" }, text: "public", id: "bd-pub-button" })))));
+ guilds.after($(" ", {id:"tc-settings-li"}).append($("
", { class: "guild-inner" }).append($(" ").append($("
", { class: "avatar-small", id: "tc-settings-button" })))));
settingsPanel = new SettingsPanel();
settingsPanel.init();
+
quickEmoteMenu.init(false);
- $("#tc-settings-button").on("click", function(e) { settingsPanel.show(); });
+ $("#tc-settings-button").on("click", function() { settingsPanel.show(); });
+ $("#bd-pub-button").on("click", function() { opublicServers.show(); });
+
+ opublicServers = new PublicServers();
+ opublicServers.init();
+
+ emoteModule.autoCapitalize();
} else {
- setTimeout(function() {
- waitForGuildsWrapper();
- }, 100);
+ setTimeout(gwDefer, 100);
}
- }, 3000);
+ }
-}
+ $(document).ready(function() {
+ setTimeout(gwDefer, 1000);
+ });
+};
Core.prototype.initSettings = function() {
if($.cookie("better-discord") == undefined) {
@@ -96,22 +121,20 @@ Core.prototype.initSettings = function() {
for(var setting in defaultCookie) {
if(settingsCookie[setting] == undefined) {
- settingsCookie = defaultCookie;
+ settingsCookie[setting] = defaultCookie[setting];
this.saveSettings();
- alert("BetterDiscord settings reset due to update/error");
- break;
}
}
}
-}
+};
Core.prototype.saveSettings = function() {
$.cookie("better-discord", JSON.stringify(settingsCookie), { expires: 365, path: '/' });
-}
+};
Core.prototype.loadSettings = function() {
settingsCookie = JSON.parse($.cookie("better-discord"));
-}
+};
Core.prototype.initObserver = function() {
@@ -127,11 +150,12 @@ Core.prototype.initObserver = function() {
});
});
+ //noinspection JSCheckFunctionSignatures
mainObserver.observe(document, { childList: true, subtree: true });
-}
+};
/* BetterDiscordApp EmoteModule JavaScript
- * Version: 1.4
+ * Version: 1.5
* Author: Jiiks | http://jiiks.net
* Date: 26/08/2015 - 15:29
* Last Update: 14/10/2015 - 09:48
@@ -139,21 +163,23 @@ Core.prototype.initObserver = function() {
* Note: Due to conflicts autocapitalize only supports global emotes
*/
-var autoCapitalize = true;
-var ffzEnabled = false;
-var bttvEnabled = false;
+/*
+ * =Changelog=
+ * -v1.5
+ * --Twitchemotes.com api
+ */
+
var emotesFfz = {};
var emotesBTTV = {};
-var emotesTwitch = {":(":2, ":)": 1, ":/":10, ":D":3, ":o":8, ":p":12, ":z":5, ";)":11, ";p":13, "<3":9, ">(":4, "B)":7, "o_o":6, "R)":14,"4Head":354,"ANELE":3792,"ArgieB8":51838,"ArsonNoSexy":50,"AsianGlow":74,"AtGL":9809,"AthenaPMS":32035,"AtIvy":9800,"AtWW":9801,"BabyRage":22639,"BatChest":1905,"BCWarrior":30,"BibleThump":86,"BigBrother":1904,"BionicBunion":24,"BlargNaut":38,"BloodTrail":69,"BORT":243,"BrainSlug":881,"BrokeBack":4057,"BuddhaBar":27602,"CoolCat":58127,"CorgiDerp":49106,"CougarHunt":21,"DAESuppy":973,"DansGame":33,"DatHass":20225,"DatSheffy":170,"DBstyle":73,"deExcite":46249,"deIlluminati":46248,"DendiFace":58135,"DogFace":1903,"DOOMGuy":54089,"EagleEye":20,"EleGiggle":4339,"EvilFetus":72,"FailFish":360,"FPSMarksman":42,"FrankerZ":65,"FreakinStinkin":39,"FUNgineer":244,"FunRun":48,"FuzzyOtterOO":168,"GasJoker":9802,"GingerPower":32,"GrammarKing":3632,"HassanChop":68,"HeyGuys":30259,"HotPokket":357,"HumbleLife":46881,"ItsBoshyTime":169,"Jebaited":90,"JKanStyle":15,"JonCarnage":26,"KAPOW":9803,"Kappa":25,"KappaPride":55338,"Keepo":1902,"KevinTurtle":40,"Kippa":1901,"Kreygasm":41,"KZskull":5253,"Mau5":30134,"mcaT":35063,"MechaSupes":9804,"MrDestructoid":28,"MVGame":29,"NightBat":9805,"NinjaTroll":45,"NoNoSpot":44,"NotATK":34875,"NotLikeThis":58765,"OMGScoots":91,"OneHand":66,"OpieOP":356,"OptimizePrime":16,"OSbeaver":47005,"OSbury":47420,"OSdeo":47007,"OSfrog":47008,"OSkomodo":47010,"OSrob":47302,"OSsloth":47011,"panicBasket":22998,"PanicVis":3668,"PazPazowitz":19,"PeoplesChamp":3412,"PermaSmug":27509,"PicoMause":27,"PipeHype":4240,"PJHarley":9808,"PJSalt":36,"PMSTwin":92,"PogChamp":88,"Poooound":358,"PraiseIt":38586,"PRChase":28328,"PunchTrees":47,"PuppeyFace":58136,"RaccAttack":27679,"RalpherZ":1900,"RedCoat":22,"ResidentSleeper":245,"RitzMitz":4338,"RuleFive":361,"ShadyLulu":52492,"Shazam":9807,"shazamicon":9806,"ShazBotstix":87,"ShibeZ":27903,"SMOrc":52,"SMSkull":51,"SoBayed":1906,"SoonerLater":355,"SriHead":14706,"SSSsss":46,"StoneLightning":17,"StrawBeary":37,"SuperVinlin":31,"SwiftRage":34,"tbBaconBiscuit":44499,"tbChickenBiscuit":56879,"tbQuesarito":56883,"tbSausageBiscuit":56881,"tbSpicy":56882,"tbSriracha":56880,"TF2John":1899,"TheKing":50901,"TheRinger":18,"TheTarFu":70,"TheThing":7427,"ThunBeast":1898,"TinyFace":67,"TooSpicy":359,"TriHard":171,"TTours":38436,"UleetBackup":49,"UncleNox":3666,"UnSane":71,"VaultBoy":54090,"Volcania":166,"WholeWheat":1896,"WinWaker":167,"WTRuck":1897,"WutFace":28087,"YouWHY":4337};
+var emotesTwitch = { "emotes": { "emote": { "image_id": 0 } } }; //for ide
+var subEmotesTwitch = {};
+
+//TODO Use emotesTwitch for autocap
var twitchAc = {"4head":"4Head","anele":"ANELE","argieb8":"ArgieB8","arsonnosexy":"ArsonNoSexy","asianglow":"AsianGlow","atgl":"AtGL","athenapms":"AthenaPMS","ativy":"AtIvy","atww":"AtWW","babyrage":"BabyRage","batchest":"BatChest","bcwarrior":"BCWarrior","biblethump":"BibleThump","bigbrother":"BigBrother","bionicbunion":"BionicBunion","blargnaut":"BlargNaut","bloodtrail":"BloodTrail","bort":"BORT","brainslug":"BrainSlug","brokeback":"BrokeBack","buddhabar":"BuddhaBar","coolcat":"CoolCat","corgiderp":"CorgiDerp","cougarhunt":"CougarHunt","daesuppy":"DAESuppy","dansgame":"DansGame","dathass":"DatHass","datsheffy":"DatSheffy","dbstyle":"DBstyle","deexcite":"deExcite","deilluminati":"deIlluminati","dendiface":"DendiFace","dogface":"DogFace","doomguy":"DOOMGuy","eagleeye":"EagleEye","elegiggle":"EleGiggle","evilfetus":"EvilFetus","failfish":"FailFish","fpsmarksman":"FPSMarksman","frankerz":"FrankerZ","freakinstinkin":"FreakinStinkin","fungineer":"FUNgineer","funrun":"FunRun","fuzzyotteroo":"FuzzyOtterOO","gasjoker":"GasJoker","gingerpower":"GingerPower","grammarking":"GrammarKing","hassanchop":"HassanChop","heyguys":"HeyGuys","hotpokket":"HotPokket","humblelife":"HumbleLife","itsboshytime":"ItsBoshyTime","jebaited":"Jebaited","jkanstyle":"JKanStyle","joncarnage":"JonCarnage","kapow":"KAPOW","kappa":"Kappa","kappapride":"KappaPride","keepo":"Keepo","kevinturtle":"KevinTurtle","kippa":"Kippa","kreygasm":"Kreygasm","kzskull":"KZskull","mau5":"Mau5","mcat":"mcaT","mechasupes":"MechaSupes","mrdestructoid":"MrDestructoid","mvgame":"MVGame","nightbat":"NightBat","ninjatroll":"NinjaTroll","nonospot":"NoNoSpot","notatk":"NotATK","notlikethis":"NotLikeThis","omgscoots":"OMGScoots","onehand":"OneHand","opieop":"OpieOP","optimizeprime":"OptimizePrime","osbeaver":"OSbeaver","osbury":"OSbury","osdeo":"OSdeo","osfrog":"OSfrog","oskomodo":"OSkomodo","osrob":"OSrob","ossloth":"OSsloth","panicbasket":"panicBasket","panicvis":"PanicVis","pazpazowitz":"PazPazowitz","peopleschamp":"PeoplesChamp","permasmug":"PermaSmug","picomause":"PicoMause","pipehype":"PipeHype","pjharley":"PJHarley","pjsalt":"PJSalt","pmstwin":"PMSTwin","pogchamp":"PogChamp","poooound":"Poooound","praiseit":"PraiseIt","prchase":"PRChase","punchtrees":"PunchTrees","puppeyface":"PuppeyFace","raccattack":"RaccAttack","ralpherz":"RalpherZ","redcoat":"RedCoat","residentsleeper":"ResidentSleeper","ritzmitz":"RitzMitz","rulefive":"RuleFive","shadylulu":"ShadyLulu","shazam":"Shazam","shazamicon":"shazamicon","shazbotstix":"ShazBotstix","shibez":"ShibeZ","smorc":"SMOrc","smskull":"SMSkull","sobayed":"SoBayed","soonerlater":"SoonerLater","srihead":"SriHead","ssssss":"SSSsss","stonelightning":"StoneLightning","strawbeary":"StrawBeary","supervinlin":"SuperVinlin","swiftrage":"SwiftRage","tbbaconbiscuit":"tbBaconBiscuit","tbchickenbiscuit":"tbChickenBiscuit","tbquesarito":"tbQuesarito","tbsausagebiscuit":"tbSausageBiscuit","tbspicy":"tbSpicy","tbsriracha":"tbSriracha","tf2john":"TF2John","theking":"TheKing","theringer":"TheRinger","thetarfu":"TheTarFu","thething":"TheThing","thunbeast":"ThunBeast","tinyface":"TinyFace","toospicy":"TooSpicy","trihard":"TriHard","ttours":"TTours","uleetbackup":"UleetBackup","unclenox":"UncleNox","unsane":"UnSane","vaultboy":"VaultBoy","volcania":"Volcania","wholewheat":"WholeWheat","winwaker":"WinWaker","wtruck":"WTRuck","wutface":"WutFace","youwhy":"YouWHY"};
-function EmoteModule() {
+function EmoteModule() {}
-}
-
-EmoteModule.prototype.init = function() {
-
-}
+EmoteModule.prototype.init = function() {};
EmoteModule.prototype.obsCallback = function(mutation) {
var self = this;
@@ -162,11 +188,13 @@ EmoteModule.prototype.obsCallback = function(mutation) {
if(next) {
var nodes = self.getNodes(next);
for(var node in nodes) {
- self.injectEmote(nodes[node]);
+ if(nodes.hasOwnProperty(node)) {
+ self.injectEmote(nodes[node]);
+ }
}
}
}
-}
+};
EmoteModule.prototype.getNodes = function(node) {
var next;
@@ -179,9 +207,9 @@ EmoteModule.prototype.getNodes = function(node) {
}
return nodes;
-}
-
+};
+//TODO Functional titles
EmoteModule.prototype.injectEmote = function(node) {
if(typeof emotesTwitch === 'undefined') return;
@@ -197,28 +225,44 @@ EmoteModule.prototype.injectEmote = function(node) {
if(!words) return;
words.some(function(word) {
- if (emotesTwitch.hasOwnProperty(word)) {
- parentInnerHTML = parentInnerHTML.replace(word, " <\/img>");
- } else if(typeof emotesFfz !== 'undefined' && settingsCookie["bda-es-1"]) {
+
+ if(emotesTwitch.emotes.hasOwnProperty(word)) {
+ parentInnerHTML = parentInnerHTML.replace(word, " <\/img>");
+ return;
+ }
+
+ if(typeof emotesFfz !== 'undefined' && settingsCookie["bda-es-1"]) {
if(emotesFfz.hasOwnProperty(word)) {
- parentInnerHTML = parentInnerHTML.replace(word, " <\/img>");
- } else if(typeof emotesBTTV !== 'undefined' && settingsCookie["bda-es-2"]) {
- if(emotesBTTV.hasOwnProperty(word)) {
- parentInnerHTML = parentInnerHTML.replace(word, " <\/img>");
- }
+ parentInnerHTML = parentInnerHTML.replace(word, " <\/img>");
+ return;
}
}
+
+ if(typeof emotesBTTV !== 'undefined' && settingsCookie["bda-es-2"]) {
+ if(emotesBTTV.hasOwnProperty(word)) {
+ parentInnerHTML = parentInnerHTML.replace(word, " <\/img>");
+ return;
+ }
+ }
+
+ if (subEmotesTwitch.hasOwnProperty(word)) {
+ parentInnerHTML = parentInnerHTML.replace(word, " <\/img>");
+ }
});
+ if(parent.parentElement == null) return;
+
var oldHeight = parent.parentElement.offsetHeight;
parent.innerHTML = parentInnerHTML;
var newHeight = parent.parentElement.offsetHeight;
- var scrollPane = $($(".scroller.messages")[0])
+ //Scrollfix
+ var scrollPane = $(".scroller.messages").first();
scrollPane.scrollTop(scrollPane.scrollTop() + (newHeight - oldHeight));
-}
+};
EmoteModule.prototype.autoCapitalize = function() {
+
var self = this;
$('body').delegate($(".channel-textarea-inner textarea"), 'keyup change paste', function() {
@@ -235,37 +279,157 @@ EmoteModule.prototype.autoCapitalize = function() {
$(".channel-textarea-inner textarea").val(text.replace(lastWord, ret));
}
}
-
});
-
-}
+};
EmoteModule.prototype.capitalize = function(value) {
if(twitchAc.hasOwnProperty(value)) {
return twitchAc[value];
}
return null;
-}
+};
-
-
-/* BetterDiscordApp PublicSevers JavaSctript
+/* BetterDiscordApp PublicSevers JavaScripts
* Version: 1.0
* Author: Jiiks | http://jiiks.net
* Date: 27/08/2015 - 14:16
* https://github.com/Jiiks/BetterDiscordApp
*/
+var publicServers = { "servers": { "server": { "code": 0, "icon": null, "title": "title", "language": "EN", "description": "description" } } }; //for ide
+
function PublicServers() {
}
+PublicServers.prototype.getPanel = function() {
+ return this.container;
+};
+
PublicServers.prototype.init = function() {
-}
+ var self = this;
+
+ this.container = $("
", {
+ id: "bd-ps-container",
+ style: "display:none"
+ });
+
+ var header = $("
", {
+ id: "bd-ps-header"
+ });
+
+ $(" ", {
+ text: "Public Servers"
+ }).appendTo(header);
+
+ $(" ", {
+ id: "bd-ps-close",
+ style:"cursor:pointer;",
+ text: "X"
+ }).appendTo(header);
+
+ header.appendTo(this.getPanel());
+
+ var psbody = $("
", {
+ id: "bd-ps-body"
+ });
+
+ psbody.appendTo(this.getPanel());
+
+ var table = $("", {
+ border:"0"
+ });
+
+ var thead = $(" ");
+
+ thead.appendTo(table);
+
+ var headers = $(" ", {
+
+ }).append($(" ", {
+ text: "Name"
+ })).append($(" ", {
+ text: "Code"
+ })).append($(" ", {
+ text: "Language"
+ })).append($(" ", {
+ text: "Description"
+ }));
+
+ headers.appendTo(thead);
+
+ var tbody = $(" ", {
+ id: "bd-ps-tbody"
+ });
+
+ tbody.appendTo(table);
+
+ table.appendTo(psbody);
+
+ $("body").append(this.getPanel());
+
+ $("#bd-ps-close").on("click", function() { self.show(); });
+
+ var servers = publicServers.servers;
+
+ for(var server in servers) {
+ if(servers.hasOwnProperty(server)) {
+ var s = servers[server];
+ var code = s.code;
+ var title = s.title;
+ var language = s.language;
+ var description = s.description;
+
+ this.addServer(server, code, title, language, description);
+ }
+ }
+};
+
+PublicServers.prototype.addServer = function(name, code, title, language, description) {
+
+ var tableBody = $("#bd-ps-tbody");
+
+
+ var desc = $(" ").append($("
", {
+ class: "bd-ps-description",
+ text: description
+ }));
+
+ var tr = $(" ");
+
+ tr.append($(" ", {
+ text: title
+ }));
+
+ tr.append($(" ", {
+ css: {
+ "-webkit-user-select":"initial",
+ "user-select":"initial"
+ },
+ text: code
+ }));
+
+ tr.append($(" ", {
+ text: language
+ }));
+
+ tr.append(desc);
+
+ tableBody.append(tr);
+};
+
+PublicServers.prototype.show = function() {
+ this.getPanel().toggle();
+ var li = $("#bd-pub-li");
+ li.removeClass();
+ if(this.getPanel().is(":visible")) {
+ li.addClass("active");
+ }
+};
/* BetterDiscordApp QuickEmoteMenu JavaScript
- * Version: 1.2
+ * Version: 1.3
* Author: Jiiks | http://jiiks.net
* Date: 26/08/2015 - 11:49
* Last Update: 29/08/2015 - 11:46
@@ -274,14 +438,11 @@ PublicServers.prototype.init = function() {
var emoteBtn, emoteMenu;
-var globalEmotes = {":(":2, ":)": 1, ":/":10, ":D":3, ":o":8, ":p":12, ":z":5, ";)":11, ";p":13, "<3":9, ">(":4, "B)":7, "o_o":6, "R)":14,"4Head":354,"ANELE":3792,"ArgieB8":51838,"ArsonNoSexy":50,"AsianGlow":74,"AtGL":9809,"AthenaPMS":32035,"AtIvy":9800,"AtWW":9801,"BabyRage":22639,"BatChest":1905,"BCWarrior":30,"BibleThump":86,"BigBrother":1904,"BionicBunion":24,"BlargNaut":38,"BloodTrail":69,"BORT":243,"BrainSlug":881,"BrokeBack":4057,"BuddhaBar":27602,"CoolCat":58127,"CorgiDerp":49106,"CougarHunt":21,"DAESuppy":973,"DansGame":33,"DatHass":20225,"DatSheffy":170,"DBstyle":73,"deExcite":46249,"deIlluminati":46248,"DendiFace":58135,"DogFace":1903,"DOOMGuy":54089,"EagleEye":20,"EleGiggle":4339,"EvilFetus":72,"FailFish":360,"FPSMarksman":42,"FrankerZ":65,"FreakinStinkin":39,"FUNgineer":244,"FunRun":48,"FuzzyOtterOO":168,"GasJoker":9802,"GingerPower":32,"GrammarKing":3632,"HassanChop":68,"HeyGuys":30259,"HotPokket":357,"HumbleLife":46881,"ItsBoshyTime":169,"Jebaited":90,"JKanStyle":15,"JonCarnage":26,"KAPOW":9803,"Kappa":25,"KappaPride":55338,"Keepo":1902,"KevinTurtle":40,"Kippa":1901,"Kreygasm":41,"KZskull":5253,"Mau5":30134,"mcaT":35063,"MechaSupes":9804,"MrDestructoid":28,"MVGame":29,"NightBat":9805,"NinjaTroll":45,"NoNoSpot":44,"NotATK":34875,"NotLikeThis":58765,"OMGScoots":91,"OneHand":66,"OpieOP":356,"OptimizePrime":16,"OSbeaver":47005,"OSbury":47420,"OSdeo":47007,"OSfrog":47008,"OSkomodo":47010,"OSrob":47302,"OSsloth":47011,"panicBasket":22998,"PanicVis":3668,"PazPazowitz":19,"PeoplesChamp":3412,"PermaSmug":27509,"PicoMause":27,"PipeHype":4240,"PJHarley":9808,"PJSalt":36,"PMSTwin":92,"PogChamp":88,"Poooound":358,"PraiseIt":38586,"PRChase":28328,"PunchTrees":47,"PuppeyFace":58136,"RaccAttack":27679,"RalpherZ":1900,"RedCoat":22,"ResidentSleeper":245,"RitzMitz":4338,"RuleFive":361,"ShadyLulu":52492,"Shazam":9807,"shazamicon":9806,"ShazBotstix":87,"ShibeZ":27903,"SMOrc":52,"SMSkull":51,"SoBayed":1906,"SoonerLater":355,"SriHead":14706,"SSSsss":46,"StoneLightning":17,"StrawBeary":37,"SuperVinlin":31,"SwiftRage":34,"tbBaconBiscuit":44499,"tbChickenBiscuit":56879,"tbQuesarito":56883,"tbSausageBiscuit":56881,"tbSpicy":56882,"tbSriracha":56880,"TF2John":1899,"TheKing":50901,"TheRinger":18,"TheTarFu":70,"TheThing":7427,"ThunBeast":1898,"TinyFace":67,"TooSpicy":359,"TriHard":171,"TTours":38436,"UleetBackup":49,"UncleNox":3666,"UnSane":71,"VaultBoy":54090,"Volcania":166,"WholeWheat":1896,"WinWaker":167,"WTRuck":1897,"WutFace":28087,"YouWHY":4337};
-var emoteList;
-
function QuickEmoteMenu() {
}
-QuickEmoteMenu.prototype.init = function (reload) {
+QuickEmoteMenu.prototype.init = function(reload) {
emoteBtn = null;
@@ -314,26 +475,27 @@ QuickEmoteMenu.prototype.init = function (reload) {
emoteBtn.show();
}
- $(".emote-icon").off();
- $(".emote-icon").on("click", function() {
- var emote = $(this).attr("id");
- var ta = $(".channel-textarea-inner textarea");
- ta.val(ta.val().slice(-1) == " " ? ta.val() + emote : ta.val() + " " + emote);
- });
-}
+ var emoteIcon = $(".emote-icon");
+
+ emoteIcon.off();
+ emoteIcon.on("click", function() {
+ var emote = $(this).attr("id");
+ var ta = $(".channel-textarea-inner textarea");
+ ta.val(ta.val().slice(-1) == " " ? ta.val() + emote : ta.val() + " " + emote);
+ });
+};
QuickEmoteMenu.prototype.obsCallback = function() {
if(!emoteBtn) return;
if(!$(".content.flex-spacer.flex-horizontal .flex-spacer.flex-vertical form")) return;
- tcbtn = $("#twitchcord-button-container");
+ var tcbtn = $("#twitchcord-button-container");
if(tcbtn.parent().prop("tagName") == undefined) {
quickEmoteMenu = new QuickEmoteMenu();
quickEmoteMenu.init(true);
}
-
-}
+};
QuickEmoteMenu.prototype.initEmoteList = function() {
@@ -344,13 +506,13 @@ QuickEmoteMenu.prototype.initEmoteList = function() {
emoteMenu.append(emoteMenuHeader);
emoteMenu.append(emoteMenuBody);
- for(var emote in globalEmotes) {
- var command = emote;
- var id = globalEmotes[emote];
-
- emoteMenuBody.append($("
" , { class: "emote-container" }).append($(" ", { class: "emote-icon", id: emote, alt: "", src: "https://static-cdn.jtvnw.net/emoticons/v1/"+id+"/1.0", title: emote })));
+ for(var emote in emotesTwitch.emotes) {
+ if(emotesTwitch.emotes.hasOwnProperty(emote)) {
+ var id = emotesTwitch.emotes[emote].image_id;
+ emoteMenuBody.append($("
" , { class: "emote-container" }).append($(" ", { class: "emote-icon", id: emote, alt: "", src: "https://static-cdn.jtvnw.net/emoticons/v1/"+id+"/1.0", title: emote })));
+ }
}
-}
+};
/* BetterDiscordApp Settings Panel JavaScript
* Version: 1.3
@@ -368,11 +530,12 @@ function SettingsPanel() {
SettingsPanel.prototype.getPanel = function() {
return this.tcSettingsPanel;
-}
+};
SettingsPanel.prototype.init = function() {
var self = this;
+ var body = $("body");
this.tcSettingsPanel = $("
", { id: "tc-settings-panel", style: "display:none" });
this.getPanel().append($("
", { id: "tc-settings-panel-header" }).append($(" ", { text: "BetterDiscord - Settings" })).append($(" ", { id: "tc-settings-close", text: "X", style:"cursor:pointer;" })));
@@ -390,7 +553,7 @@ SettingsPanel.prototype.init = function() {
}
settingsList.append($(" ").append($(" ", { text: key})).append($(" ", { html: " - " + value.info + " " + (value.implemented == false ? ' Coming Soon ' : "") })).append($("
", { class: value.implemented ? "tc-switch" : "tc-switch disabled", id: value.id }).append($(" ", { class: sof, text: "OFF" })).append($(" ", { class: son, text: "ON" }))));
- })
+ });
var settingsFooter = $("
", { id: "tc-settings-panel-footer" });
settingsFooter.append($(" ", { id: "tc-about", text: "BDA v" + version + "(js "+jsVersion+") by Jiiks | Settings are automatically saved." } ));
@@ -398,13 +561,13 @@ SettingsPanel.prototype.init = function() {
$.each(links, function(key, value) {
tcLinks.append($(" ", { href: value, text: key, target: "_blank" }));
tcLinks.append($(" ", { text: " | " }));
- })
+ });
settingsFooter.append(tcLinks);
this.getPanel().append(settingsFooter);
- $("body").append(this.getPanel());
- $("#tc-settings-close").on("click", function(e) { self.show(); });
+ body.append(this.getPanel());
+ $("#tc-settings-close").on("click", function() { self.show(); });
$(".tc-switch").on("click", function() { self.handler($(this)) });
if(settingsCookie["bda-es-0"]) {
@@ -414,25 +577,31 @@ SettingsPanel.prototype.init = function() {
}
if(settingsCookie["bda-gs-2"]) {
- $("body").addClass("bd-minimal");
+ body.addClass("bd-minimal");
} else {
- $("body").removeClass("bd-minimal");
+ body.removeClass("bd-minimal");
}
if(settingsCookie["bda-gs-3"]) {
- $("body").addClass("bd-minimal-chan");
+ body.addClass("bd-minimal-chan");
} else {
- $("body").removeClass("bd-minimal-chan");
+ body.removeClass("bd-minimal-chan");
}
-}
+
+ if(settingsCookie["bda-gs-4"]) {
+ voiceMode.enable();
+ }
+};
SettingsPanel.prototype.show = function() {
this.getPanel().toggle();
- $("#tc-settings-li").removeClass();
+ var settingsLi = $("#tc-settings-li");
+
+ settingsLi.removeClass();
if(this.getPanel().is(":visible")) {
- $("#tc-settings-li").addClass("active");
+ settingsLi.addClass("active");
}
-}
+};
SettingsPanel.prototype.handler = function(e){
@@ -469,9 +638,19 @@ SettingsPanel.prototype.handler = function(e){
} else {
$("body").removeClass("bd-minimal-chan");
}
+ if(settingsCookie["bda-gs-1"]) {
+ $("#bd-pub-li").show();
+ } else {
+ $("#bd-pub-li").hide();
+ }
+ if(settingsCookie["bda-gs-4"]){
+ voiceMode.enable();
+ } else {
+ voiceMode.disable();
+ }
mainCore.saveSettings();
-}
+};
/* BetterDiscordApp Utilities JavaScript
* Version: 1.0
@@ -486,8 +665,37 @@ function Utils() {
Utils.prototype.getTextArea = function() {
return $(".channel-textarea-inner textarea");
-}
+};
Utils.prototype.jqDefer = function(fnc) {
if(window.jQuery) { fnc(); } else { setTimeout(function() { this.jqDefer(fnc) }, 100) }
+};
+
+/* BetterDiscordApp VoiceMode JavaScript
+ * Version: 1.0
+ * Author: Jiiks | http://jiiks.net
+ * Date: 25/10/2015 - 19:10
+ * https://github.com/Jiiks/BetterDiscordApp
+ */
+
+function VoiceMode() {
+
}
+
+VoiceMode.prototype.enable = function() {
+ $(".scroller.guild-channels ul").first().css("display", "none");
+ $(".scroller.guild-channels header").first().css("display", "none");
+ $(".flex-vertical.flex-spacer").first().css("overflow", "hidden");
+ $(".chat.flex-vertical.flex-spacer").first().css("visibility", "hidden").css("min-width", "0px");
+ $(".flex-vertical.channels-wrap").first().css("width", "100%");
+ $(".guild-header .btn.btn-hamburger").first().css("visibility", "hidden");
+};
+
+VoiceMode.prototype.disable = function() {
+ $(".scroller.guild-channels ul").first().css("display", "");
+ $(".scroller.guild-channels header").first().css("display", "");
+ $(".flex-vertical.flex-spacer").first().css("overflow", "");
+ $(".chat.flex-vertical.flex-spacer").first().css("visibility", "").css("min-width", "");
+ $(".flex-vertical.channels-wrap").first().css("width", "");
+ $(".guild-header .btn.btn-hamburger").first().css("visibility", "");
+};
\ No newline at end of file
diff --git a/js/main.min.js b/js/main.min.js
index 33c94245..667fb14e 100644
--- a/js/main.min.js
+++ b/js/main.min.js
@@ -1 +1 @@
-function Core(){}function EmoteModule(){}function PublicServers(){}function QuickEmoteMenu(){}function SettingsPanel(){}function Utils(){}var settingsPanel,emoteModule,utils,quickEmoteMenu,jsVersion=1.2,mainObserver,twitchEmoteUrlStart="https://static-cdn.jtvnw.net/emoticons/v1/",twitchEmoteUrlEnd="/1.0",ffzEmoteUrlStart="https://cdn.frankerfacez.com/emoticon/",ffzEmoteUrlEnd="/1",bttvEmoteUrlStart="",bttvEmoteUrlEnd="",settings={"Save logs locally":{id:"bda-gs-0",info:"Saves chat logs locally",implemented:!1},"Public Servers":{id:"bda-gs-1",info:"Display public servers",implemented:!1},"Minimal Mode":{id:"bda-gs-2",info:"Hide elements and reduce the size of elements.",implemented:!0},"Hide Channels":{id:"bda-gs-3",info:"Hide channels in minimal mode",implemented:!0},"Quick Emote Menu":{id:"bda-es-0",info:"Show quick emote menu for adding emotes",implemented:!0},"FrankerFaceZ Emotes":{id:"bda-es-1",info:"Show FrankerFaceZ Emotes",implemented:!0},"BetterTTV Emotes":{id:"bda-es-2",info:"Show BetterTTV Emotes",implemented:!1},"Emote Autocomplete":{id:"bda-es-3",info:"Autocomplete emote commands",implemented:!1},"Emote Auto Capitalization":{id:"bda-es-4",info:"Autocapitalize emote commands",implemented:!0},"Override Default Emotes":{id:"bda-es-5",info:"Override default emotes",implemented:!1}},defaultCookie={version:jsVersion,"bda-gs-0":!1,"bda-gs-1":!0,"bda-gs-2":!1,"bda-gs-3":!1,"bda-es-0":!0,"bda-es-1":!1,"bda-es-2":!1,"bda-es-3":!1,"bda-es-4":!1,"bda-es-5":!0},settingsCookie={};Core.prototype.init=function(){utils=new Utils,emoteModule=new EmoteModule,quickEmoteMenu=new QuickEmoteMenu,emoteModule.init(),emoteModule.autoCapitalize(),this.initSettings(),this.initObserver(),setTimeout(function(){$(".guilds-wrapper").size()>0?($(".guilds li:first-child").after($(" ",{id:"tc-settings-li"}).append($("
",{"class":"guild-inner"}).append($(" ").append($("
",{"class":"avatar-small",id:"tc-settings-button"}))))),settingsPanel=new SettingsPanel,settingsPanel.init(),quickEmoteMenu.init(!1),$("#tc-settings-button").on("click",function(){settingsPanel.show()})):setTimeout(function(){waitForGuildsWrapper()},100)},3e3)},Core.prototype.initSettings=function(){if(void 0==$.cookie("better-discord"))settingsCookie=defaultCookie,this.saveSettings();else{this.loadSettings();for(var e in defaultCookie)if(void 0==settingsCookie[e]){settingsCookie=defaultCookie,this.saveSettings(),alert("BetterDiscord settings reset due to update/error");break}}},Core.prototype.saveSettings=function(){$.cookie("better-discord",JSON.stringify(settingsCookie),{expires:365,path:"/"})},Core.prototype.loadSettings=function(){settingsCookie=JSON.parse($.cookie("better-discord"))},Core.prototype.initObserver=function(){mainObserver=new MutationObserver(function(e){e.forEach(function(e){null!=e.target.getAttribute("class")&&-1!=e.target.getAttribute("class").indexOf("titlebar")&&quickEmoteMenu.obsCallback(),emoteModule.obsCallback(e)})}),mainObserver.observe(document,{childList:!0,subtree:!0})};var autoCapitalize=!0,ffzEnabled=!1,bttvEnabled=!1,emotesFfz={},emotesBTTV={},emotesTwitch={":(":2,":)":1,":/":10,":D":3,":o":8,":p":12,":z":5,";)":11,";p":13,"<3":9,">(":4,"B)":7,o_o:6,"R)":14,"4Head":354,ANELE:3792,ArgieB8:51838,ArsonNoSexy:50,AsianGlow:74,AtGL:9809,AthenaPMS:32035,AtIvy:9800,AtWW:9801,BabyRage:22639,BatChest:1905,BCWarrior:30,BibleThump:86,BigBrother:1904,BionicBunion:24,BlargNaut:38,BloodTrail:69,BORT:243,BrainSlug:881,BrokeBack:4057,BuddhaBar:27602,CoolCat:58127,CorgiDerp:49106,CougarHunt:21,DAESuppy:973,DansGame:33,DatHass:20225,DatSheffy:170,DBstyle:73,deExcite:46249,deIlluminati:46248,DendiFace:58135,DogFace:1903,DOOMGuy:54089,EagleEye:20,EleGiggle:4339,EvilFetus:72,FailFish:360,FPSMarksman:42,FrankerZ:65,FreakinStinkin:39,FUNgineer:244,FunRun:48,FuzzyOtterOO:168,GasJoker:9802,GingerPower:32,GrammarKing:3632,HassanChop:68,HeyGuys:30259,HotPokket:357,HumbleLife:46881,ItsBoshyTime:169,Jebaited:90,JKanStyle:15,JonCarnage:26,KAPOW:9803,Kappa:25,KappaPride:55338,Keepo:1902,KevinTurtle:40,Kippa:1901,Kreygasm:41,KZskull:5253,Mau5:30134,mcaT:35063,MechaSupes:9804,MrDestructoid:28,MVGame:29,NightBat:9805,NinjaTroll:45,NoNoSpot:44,NotATK:34875,NotLikeThis:58765,OMGScoots:91,OneHand:66,OpieOP:356,OptimizePrime:16,OSbeaver:47005,OSbury:47420,OSdeo:47007,OSfrog:47008,OSkomodo:47010,OSrob:47302,OSsloth:47011,panicBasket:22998,PanicVis:3668,PazPazowitz:19,PeoplesChamp:3412,PermaSmug:27509,PicoMause:27,PipeHype:4240,PJHarley:9808,PJSalt:36,PMSTwin:92,PogChamp:88,Poooound:358,PraiseIt:38586,PRChase:28328,PunchTrees:47,PuppeyFace:58136,RaccAttack:27679,RalpherZ:1900,RedCoat:22,ResidentSleeper:245,RitzMitz:4338,RuleFive:361,ShadyLulu:52492,Shazam:9807,shazamicon:9806,ShazBotstix:87,ShibeZ:27903,SMOrc:52,SMSkull:51,SoBayed:1906,SoonerLater:355,SriHead:14706,SSSsss:46,StoneLightning:17,StrawBeary:37,SuperVinlin:31,SwiftRage:34,tbBaconBiscuit:44499,tbChickenBiscuit:56879,tbQuesarito:56883,tbSausageBiscuit:56881,tbSpicy:56882,tbSriracha:56880,TF2John:1899,TheKing:50901,TheRinger:18,TheTarFu:70,TheThing:7427,ThunBeast:1898,TinyFace:67,TooSpicy:359,TriHard:171,TTours:38436,UleetBackup:49,UncleNox:3666,UnSane:71,VaultBoy:54090,Volcania:166,WholeWheat:1896,WinWaker:167,WTRuck:1897,WutFace:28087,YouWHY:4337},twitchAc={"4head":"4Head",anele:"ANELE",argieb8:"ArgieB8",arsonnosexy:"ArsonNoSexy",asianglow:"AsianGlow",atgl:"AtGL",athenapms:"AthenaPMS",ativy:"AtIvy",atww:"AtWW",babyrage:"BabyRage",batchest:"BatChest",bcwarrior:"BCWarrior",biblethump:"BibleThump",bigbrother:"BigBrother",bionicbunion:"BionicBunion",blargnaut:"BlargNaut",bloodtrail:"BloodTrail",bort:"BORT",brainslug:"BrainSlug",brokeback:"BrokeBack",buddhabar:"BuddhaBar",coolcat:"CoolCat",corgiderp:"CorgiDerp",cougarhunt:"CougarHunt",daesuppy:"DAESuppy",dansgame:"DansGame",dathass:"DatHass",datsheffy:"DatSheffy",dbstyle:"DBstyle",deexcite:"deExcite",deilluminati:"deIlluminati",dendiface:"DendiFace",dogface:"DogFace",doomguy:"DOOMGuy",eagleeye:"EagleEye",elegiggle:"EleGiggle",evilfetus:"EvilFetus",failfish:"FailFish",fpsmarksman:"FPSMarksman",frankerz:"FrankerZ",freakinstinkin:"FreakinStinkin",fungineer:"FUNgineer",funrun:"FunRun",fuzzyotteroo:"FuzzyOtterOO",gasjoker:"GasJoker",gingerpower:"GingerPower",grammarking:"GrammarKing",hassanchop:"HassanChop",heyguys:"HeyGuys",hotpokket:"HotPokket",humblelife:"HumbleLife",itsboshytime:"ItsBoshyTime",jebaited:"Jebaited",jkanstyle:"JKanStyle",joncarnage:"JonCarnage",kapow:"KAPOW",kappa:"Kappa",kappapride:"KappaPride",keepo:"Keepo",kevinturtle:"KevinTurtle",kippa:"Kippa",kreygasm:"Kreygasm",kzskull:"KZskull",mau5:"Mau5",mcat:"mcaT",mechasupes:"MechaSupes",mrdestructoid:"MrDestructoid",mvgame:"MVGame",nightbat:"NightBat",ninjatroll:"NinjaTroll",nonospot:"NoNoSpot",notatk:"NotATK",notlikethis:"NotLikeThis",omgscoots:"OMGScoots",onehand:"OneHand",opieop:"OpieOP",optimizeprime:"OptimizePrime",osbeaver:"OSbeaver",osbury:"OSbury",osdeo:"OSdeo",osfrog:"OSfrog",oskomodo:"OSkomodo",osrob:"OSrob",ossloth:"OSsloth",panicbasket:"panicBasket",panicvis:"PanicVis",pazpazowitz:"PazPazowitz",peopleschamp:"PeoplesChamp",permasmug:"PermaSmug",picomause:"PicoMause",pipehype:"PipeHype",pjharley:"PJHarley",pjsalt:"PJSalt",pmstwin:"PMSTwin",pogchamp:"PogChamp",poooound:"Poooound",praiseit:"PraiseIt",prchase:"PRChase",punchtrees:"PunchTrees",puppeyface:"PuppeyFace",raccattack:"RaccAttack",ralpherz:"RalpherZ",redcoat:"RedCoat",residentsleeper:"ResidentSleeper",ritzmitz:"RitzMitz",rulefive:"RuleFive",shadylulu:"ShadyLulu",shazam:"Shazam",shazamicon:"shazamicon",shazbotstix:"ShazBotstix",shibez:"ShibeZ",smorc:"SMOrc",smskull:"SMSkull",sobayed:"SoBayed",soonerlater:"SoonerLater",srihead:"SriHead",ssssss:"SSSsss",stonelightning:"StoneLightning",strawbeary:"StrawBeary",supervinlin:"SuperVinlin",swiftrage:"SwiftRage",tbbaconbiscuit:"tbBaconBiscuit",tbchickenbiscuit:"tbChickenBiscuit",tbquesarito:"tbQuesarito",tbsausagebiscuit:"tbSausageBiscuit",tbspicy:"tbSpicy",tbsriracha:"tbSriracha",tf2john:"TF2John",theking:"TheKing",theringer:"TheRinger",thetarfu:"TheTarFu",thething:"TheThing",thunbeast:"ThunBeast",tinyface:"TinyFace",toospicy:"TooSpicy",trihard:"TriHard",ttours:"TTours",uleetbackup:"UleetBackup",unclenox:"UncleNox",unsane:"UnSane",vaultboy:"VaultBoy",volcania:"Volcania",wholewheat:"WholeWheat",winwaker:"WinWaker",wtruck:"WTRuck",wutface:"WutFace",youwhy:"YouWHY"};EmoteModule.prototype.init=function(){},EmoteModule.prototype.obsCallback=function(e){for(var t=this,i=0;i"):"undefined"!=typeof emotesFfz&&settingsCookie["bda-es-1"]&&(emotesFfz.hasOwnProperty(e)?i=i.replace(e," "):"undefined"!=typeof emotesBTTV&&settingsCookie["bda-es-2"]&&emotesBTTV.hasOwnProperty(e)&&(i=i.replace(e," ")))});var o=t.parentElement.offsetHeight;t.innerHTML=i;var n=t.parentElement.offsetHeight,s=$($(".scroller.messages")[0]);s.scrollTop(s.scrollTop()+(n-o))}}}},EmoteModule.prototype.autoCapitalize=function(){var e=this;$("body").delegate($(".channel-textarea-inner textarea"),"keyup change paste",function(){if(settingsCookie["bda-es-4"]){var t=$(".channel-textarea-inner textarea").val();if(void 0!=t){var i=t.split(" ").pop();if(i.length>3){var a=e.capitalize(i.toLowerCase());null!=a&&$(".channel-textarea-inner textarea").val(t.replace(i,a))}}}})},EmoteModule.prototype.capitalize=function(e){return twitchAc.hasOwnProperty(e)?twitchAc[e]:null},PublicServers.prototype.init=function(){};var emoteBtn,emoteMenu,globalEmotes={":(":2,":)":1,":/":10,":D":3,":o":8,":p":12,":z":5,";)":11,";p":13,"<3":9,">(":4,"B)":7,o_o:6,"R)":14,"4Head":354,ANELE:3792,ArgieB8:51838,ArsonNoSexy:50,AsianGlow:74,AtGL:9809,AthenaPMS:32035,AtIvy:9800,AtWW:9801,BabyRage:22639,BatChest:1905,BCWarrior:30,BibleThump:86,BigBrother:1904,BionicBunion:24,BlargNaut:38,BloodTrail:69,BORT:243,BrainSlug:881,BrokeBack:4057,BuddhaBar:27602,CoolCat:58127,CorgiDerp:49106,CougarHunt:21,DAESuppy:973,DansGame:33,DatHass:20225,DatSheffy:170,DBstyle:73,deExcite:46249,deIlluminati:46248,DendiFace:58135,DogFace:1903,DOOMGuy:54089,EagleEye:20,EleGiggle:4339,EvilFetus:72,FailFish:360,FPSMarksman:42,FrankerZ:65,FreakinStinkin:39,FUNgineer:244,FunRun:48,FuzzyOtterOO:168,GasJoker:9802,GingerPower:32,GrammarKing:3632,HassanChop:68,HeyGuys:30259,HotPokket:357,HumbleLife:46881,ItsBoshyTime:169,Jebaited:90,JKanStyle:15,JonCarnage:26,KAPOW:9803,Kappa:25,KappaPride:55338,Keepo:1902,KevinTurtle:40,Kippa:1901,Kreygasm:41,KZskull:5253,Mau5:30134,mcaT:35063,MechaSupes:9804,MrDestructoid:28,MVGame:29,NightBat:9805,NinjaTroll:45,NoNoSpot:44,NotATK:34875,NotLikeThis:58765,OMGScoots:91,OneHand:66,OpieOP:356,OptimizePrime:16,OSbeaver:47005,OSbury:47420,OSdeo:47007,OSfrog:47008,OSkomodo:47010,OSrob:47302,OSsloth:47011,panicBasket:22998,PanicVis:3668,PazPazowitz:19,PeoplesChamp:3412,PermaSmug:27509,PicoMause:27,PipeHype:4240,PJHarley:9808,PJSalt:36,PMSTwin:92,PogChamp:88,Poooound:358,PraiseIt:38586,PRChase:28328,PunchTrees:47,PuppeyFace:58136,RaccAttack:27679,RalpherZ:1900,RedCoat:22,ResidentSleeper:245,RitzMitz:4338,RuleFive:361,ShadyLulu:52492,Shazam:9807,shazamicon:9806,ShazBotstix:87,ShibeZ:27903,SMOrc:52,SMSkull:51,SoBayed:1906,SoonerLater:355,SriHead:14706,SSSsss:46,StoneLightning:17,StrawBeary:37,SuperVinlin:31,SwiftRage:34,tbBaconBiscuit:44499,tbChickenBiscuit:56879,tbQuesarito:56883,tbSausageBiscuit:56881,tbSpicy:56882,tbSriracha:56880,TF2John:1899,TheKing:50901,TheRinger:18,TheTarFu:70,TheThing:7427,ThunBeast:1898,TinyFace:67,TooSpicy:359,TriHard:171,TTours:38436,UleetBackup:49,UncleNox:3666,UnSane:71,VaultBoy:54090,Volcania:166,WholeWheat:1896,WinWaker:167,WTRuck:1897,WutFace:28087,YouWHY:4337},emoteList;QuickEmoteMenu.prototype.init=function(){emoteBtn=null,emoteMenu||this.initEmoteList();var e;emoteBtn=$("
",{id:"twitchcord-button-container",style:"display:none"}).append($(" ",{id:"twitchcord-button",onclick:"return false;"})),$(".content.flex-spacer.flex-horizontal .flex-spacer.flex-vertical form").append(emoteBtn),emoteMenu.detach(),emoteBtn.append(emoteMenu),$("#twitchcord-button").on("click",function(){e=!e,e?(emoteMenu.addClass("emotemenu-open"),$(this).addClass("twitchcord-button-open")):(emoteMenu.removeClass(),$(this).removeClass())}),settingsCookie["bda-es-0"]&&emoteBtn.show(),$(".emote-icon").off(),$(".emote-icon").on("click",function(){var e=$(this).attr("id"),t=$(".channel-textarea-inner textarea");t.val(" "==t.val().slice(-1)?t.val()+e:t.val()+" "+e)})},QuickEmoteMenu.prototype.obsCallback=function(){emoteBtn&&$(".content.flex-spacer.flex-horizontal .flex-spacer.flex-vertical form")&&(tcbtn=$("#twitchcord-button-container"),void 0==tcbtn.parent().prop("tagName")&&(quickEmoteMenu=new QuickEmoteMenu,quickEmoteMenu.init(!0)))},QuickEmoteMenu.prototype.initEmoteList=function(){emoteMenu=$("
",{id:"emote-menu"});var e=$("
",{id:"emote-menu-header"}).append($(" ",{text:"Global Emotes"})),t=$("
",{id:"emote-menu-inner"});emoteMenu.append(e),emoteMenu.append(t);for(var i in globalEmotes){var a=globalEmotes[i];t.append($("
",{"class":"emote-container"}).append($(" ",{"class":"emote-icon",id:i,alt:"",src:"https://static-cdn.jtvnw.net/emoticons/v1/"+a+"/1.0",title:i})))}};var links={"Jiiks.net":"http://jiiks.net",Twitter:"http://twitter.com/jiiksi",Github:"https://github.com/jiiks"};SettingsPanel.prototype.getPanel=function(){return this.tcSettingsPanel},SettingsPanel.prototype.init=function(){var e=this;this.tcSettingsPanel=$("
",{id:"tc-settings-panel",style:"display:none"}),this.getPanel().append($("
",{id:"tc-settings-panel-header"}).append($(" ",{text:"BetterDiscord - Settings"})).append($(" ",{id:"tc-settings-close",text:"X",style:"cursor:pointer;"})));var t=$("");this.getPanel().append($("
",{id:"tc-settings-panel-body"}).append(t)),$.each(settings,function(e,i){var a="tc-switch-on",o="tc-switch-off";settingsCookie[i.id]?a="tc-switch-on active":o="tc-switch-off active",t.append($(" ").append($(" ",{text:e})).append($(" ",{html:" - "+i.info+" "+(0==i.implemented?' Coming Soon ':"")})).append($("
",{"class":i.implemented?"tc-switch":"tc-switch disabled",id:i.id}).append($(" ",{"class":o,text:"OFF"})).append($(" ",{"class":a,text:"ON"}))))});var i=$("
",{id:"tc-settings-panel-footer"});i.append($(" ",{id:"tc-about",text:"BDA v"+version+"(js "+jsVersion+") by Jiiks | Settings are automatically saved."}));var a=$(" ",{id:"tc-links"});$.each(links,function(e,t){a.append($(" ",{href:t,text:e,target:"_blank"})),a.append($(" ",{text:" | "}))}),i.append(a),this.getPanel().append(i),$("body").append(this.getPanel()),$("#tc-settings-close").on("click",function(){e.show()}),$(".tc-switch").on("click",function(){e.handler($(this))}),settingsCookie["bda-es-0"]?$("#twitchcord-button-container").show():$("#twitchcord-button-container").hide(),settingsCookie["bda-gs-2"]?$("body").addClass("bd-minimal"):$("body").removeClass("bd-minimal"),settingsCookie["bda-gs-3"]?$("body").addClass("bd-minimal-chan"):$("body").removeClass("bd-minimal-chan")},SettingsPanel.prototype.show=function(){this.getPanel().toggle(),$("#tc-settings-li").removeClass(),this.getPanel().is(":visible")&&$("#tc-settings-li").addClass("active")},SettingsPanel.prototype.handler=function(e){var t=e.attr("id"),i=settingsCookie[t];i=!i,settingsCookie[t]=i;var a=$("#"+t+" .tc-switch-off"),o=$("#"+t+" .tc-switch-on");a.removeClass("active"),o.removeClass("active"),i?o.addClass("active"):a.addClass("active"),settingsCookie["bda-es-0"]?$("#twitchcord-button-container").show():$("#twitchcord-button-container").hide(),settingsCookie["bda-gs-2"]?$("body").addClass("bd-minimal"):$("body").removeClass("bd-minimal"),settingsCookie["bda-gs-3"]?$("body").addClass("bd-minimal-chan"):$("body").removeClass("bd-minimal-chan"),mainCore.saveSettings()},Utils.prototype.getTextArea=function(){return $(".channel-textarea-inner textarea")},Utils.prototype.jqDefer=function(e){window.jQuery?e():setTimeout(function(){this.jqDefer(e)},100)};
\ No newline at end of file
+function Core(){}function EmoteModule(){}function PublicServers(){}function QuickEmoteMenu(){}function SettingsPanel(){}function Utils(){}function VoiceMode(){}var settingsPanel,emoteModule,utils,quickEmoteMenu,opublicServers,voiceMode,jsVersion=1.3,supportedVersion="0.1.5",mainObserver,twitchEmoteUrlStart="https://static-cdn.jtvnw.net/emoticons/v1/",twitchEmoteUrlEnd="/1.0",ffzEmoteUrlStart="https://cdn.frankerfacez.com/emoticon/",ffzEmoteUrlEnd="/1",bttvEmoteUrlStart="",bttvEmoteUrlEnd="",mainCore,settings={"Save logs locally":{id:"bda-gs-0",info:"Saves chat logs locally",implemented:!1},"Public Servers":{id:"bda-gs-1",info:"BETA : Display public servers button",implemented:!0},"Minimal Mode":{id:"bda-gs-2",info:"Hide elements and reduce the size of elements.",implemented:!0},"Voice Mode":{id:"bda-gs-4",info:"Only show voice chat",implemented:!0},"Hide Channels":{id:"bda-gs-3",info:"Hide channels in minimal mode",implemented:!0},"Quick Emote Menu":{id:"bda-es-0",info:"Show quick emote menu for adding emotes",implemented:!0},"FrankerFaceZ Emotes":{id:"bda-es-1",info:"Show FrankerFaceZ Emotes",implemented:!0},"BetterTTV Emotes":{id:"bda-es-2",info:"Show BetterTTV Emotes",implemented:!0},"Emote Autocomplete":{id:"bda-es-3",info:"Autocomplete emote commands",implemented:!1},"Emote Auto Capitalization":{id:"bda-es-4",info:"Autocapitalize emote commands",implemented:!0},"Override Default Emotes":{id:"bda-es-5",info:"Override default emotes",implemented:!1}},defaultCookie={version:jsVersion,"bda-gs-0":!1,"bda-gs-1":!0,"bda-gs-2":!1,"bda-gs-3":!1,"bda-gs-4":!1,"bda-es-0":!0,"bda-es-1":!1,"bda-es-2":!1,"bda-es-3":!1,"bda-es-4":!1,"bda-es-5":!0},settingsCookie={};Core.prototype.init=function(){function e(){if(console.log((new Date).getTime()+" Defer"),$(".guilds-wrapper .guilds").children().length>0){console.log((new Date).getTime()+" Defer Loaded");var t=$(".guilds li:first-child");t.after($(" ",{id:"bd-pub-li",css:{height:"20px",display:1==settingsCookie["bda-gs-1"]?"":"none"}}).append($("
",{"class":"guild-inner",css:{height:"20px","border-radius":"4px"}}).append($(" ").append($("
",{css:{"line-height":"20px","font-size":"12px"},text:"public",id:"bd-pub-button"}))))),t.after($(" ",{id:"tc-settings-li"}).append($("
",{"class":"guild-inner"}).append($(" ").append($("
",{"class":"avatar-small",id:"tc-settings-button"}))))),settingsPanel=new SettingsPanel,settingsPanel.init(),quickEmoteMenu.init(!1),$("#tc-settings-button").on("click",function(){settingsPanel.show()}),$("#bd-pub-button").on("click",function(){opublicServers.show()}),opublicServers=new PublicServers,opublicServers.init(),emoteModule.autoCapitalize()}else setTimeout(e,100)}return version")):"undefined"!=typeof emotesFfz&&settingsCookie["bda-es-1"]&&emotesFfz.hasOwnProperty(e)?void(i=i.replace(e," ")):"undefined"!=typeof emotesBTTV&&settingsCookie["bda-es-2"]&&emotesBTTV.hasOwnProperty(e)?void(i=i.replace(e," ")):void(subEmotesTwitch.hasOwnProperty(e)&&(i=i.replace(e," ")))}),null!=t.parentElement)){var n=t.parentElement.offsetHeight;t.innerHTML=i;var a=t.parentElement.offsetHeight,s=$(".scroller.messages").first();s.scrollTop(s.scrollTop()+(a-n))}}}},EmoteModule.prototype.autoCapitalize=function(){var e=this;$("body").delegate($(".channel-textarea-inner textarea"),"keyup change paste",function(){if(settingsCookie["bda-es-4"]){var t=$(".channel-textarea-inner textarea").val();if(void 0!=t){var i=t.split(" ").pop();if(i.length>3){var o=e.capitalize(i.toLowerCase());null!=o&&$(".channel-textarea-inner textarea").val(t.replace(i,o))}}}})},EmoteModule.prototype.capitalize=function(e){return twitchAc.hasOwnProperty(e)?twitchAc[e]:null};var publicServers={servers:{server:{code:0,icon:null,title:"title",language:"EN",description:"description"}}};PublicServers.prototype.getPanel=function(){return this.container},PublicServers.prototype.init=function(){var e=this;this.container=$("
",{id:"bd-ps-container",style:"display:none"});var t=$("
",{id:"bd-ps-header"});$(" ",{text:"Public Servers"}).appendTo(t),$(" ",{id:"bd-ps-close",style:"cursor:pointer;",text:"X"}).appendTo(t),t.appendTo(this.getPanel());var i=$("
",{id:"bd-ps-body"});i.appendTo(this.getPanel());var o=$("",{border:"0"}),n=$(" ");n.appendTo(o);var a=$(" ",{}).append($(" ",{text:"Name"})).append($(" ",{text:"Code"})).append($(" ",{text:"Language"})).append($(" ",{text:"Description"}));a.appendTo(n);var s=$(" ",{id:"bd-ps-tbody"});s.appendTo(o),o.appendTo(i),$("body").append(this.getPanel()),$("#bd-ps-close").on("click",function(){e.show()});var r=publicServers.servers;for(var l in r)if(r.hasOwnProperty(l)){var d=r[l],c=d.code,p=d.title,u=d.language,m=d.description;this.addServer(l,c,p,u,m)}},PublicServers.prototype.addServer=function(e,t,i,o,n){var a=$("#bd-ps-tbody"),s=$(" ").append($("
",{"class":"bd-ps-description",text:n})),r=$(" ");r.append($(" ",{text:i})),r.append($(" ",{css:{"-webkit-user-select":"initial","user-select":"initial"},text:t})),r.append($(" ",{text:o})),r.append(s),a.append(r)},PublicServers.prototype.show=function(){this.getPanel().toggle();var e=$("#bd-pub-li");e.removeClass(),this.getPanel().is(":visible")&&e.addClass("active")};var emoteBtn,emoteMenu;QuickEmoteMenu.prototype.init=function(){emoteBtn=null,emoteMenu||this.initEmoteList();var e;emoteBtn=$("
",{id:"twitchcord-button-container",style:"display:none"}).append($(" ",{id:"twitchcord-button",onclick:"return false;"})),$(".content.flex-spacer.flex-horizontal .flex-spacer.flex-vertical form").append(emoteBtn),emoteMenu.detach(),emoteBtn.append(emoteMenu),$("#twitchcord-button").on("click",function(){e=!e,e?(emoteMenu.addClass("emotemenu-open"),$(this).addClass("twitchcord-button-open")):(emoteMenu.removeClass(),$(this).removeClass())}),settingsCookie["bda-es-0"]&&emoteBtn.show();var t=$(".emote-icon");t.off(),t.on("click",function(){var e=$(this).attr("id"),t=$(".channel-textarea-inner textarea");t.val(" "==t.val().slice(-1)?t.val()+e:t.val()+" "+e)})},QuickEmoteMenu.prototype.obsCallback=function(){if(emoteBtn&&$(".content.flex-spacer.flex-horizontal .flex-spacer.flex-vertical form")){var e=$("#twitchcord-button-container");void 0==e.parent().prop("tagName")&&(quickEmoteMenu=new QuickEmoteMenu,quickEmoteMenu.init(!0))}},QuickEmoteMenu.prototype.initEmoteList=function(){emoteMenu=$("
",{id:"emote-menu"});var e=$("
",{id:"emote-menu-header"}).append($(" ",{text:"Global Emotes"})),t=$("
",{id:"emote-menu-inner"});emoteMenu.append(e),emoteMenu.append(t);for(var i in emotesTwitch.emotes)if(emotesTwitch.emotes.hasOwnProperty(i)){var o=emotesTwitch.emotes[i].image_id;t.append($("
",{"class":"emote-container"}).append($(" ",{"class":"emote-icon",id:i,alt:"",src:"https://static-cdn.jtvnw.net/emoticons/v1/"+o+"/1.0",title:i})))}};var links={"Jiiks.net":"http://jiiks.net",Twitter:"http://twitter.com/jiiksi",Github:"https://github.com/jiiks"};SettingsPanel.prototype.getPanel=function(){return this.tcSettingsPanel},SettingsPanel.prototype.init=function(){var e=this,t=$("body");this.tcSettingsPanel=$("
",{id:"tc-settings-panel",style:"display:none"}),this.getPanel().append($("
",{id:"tc-settings-panel-header"}).append($(" ",{text:"BetterDiscord - Settings"})).append($(" ",{id:"tc-settings-close",text:"X",style:"cursor:pointer;"})));var i=$("");this.getPanel().append($("
",{id:"tc-settings-panel-body"}).append(i)),$.each(settings,function(e,t){var o="tc-switch-on",n="tc-switch-off";settingsCookie[t.id]?o="tc-switch-on active":n="tc-switch-off active",i.append($(" ").append($(" ",{text:e})).append($(" ",{html:" - "+t.info+" "+(0==t.implemented?' Coming Soon ':"")})).append($("
",{"class":t.implemented?"tc-switch":"tc-switch disabled",id:t.id}).append($(" ",{"class":n,text:"OFF"})).append($(" ",{"class":o,text:"ON"}))))});var o=$("
",{id:"tc-settings-panel-footer"});o.append($(" ",{id:"tc-about",text:"BDA v"+version+"(js "+jsVersion+") by Jiiks | Settings are automatically saved."}));var n=$(" ",{id:"tc-links"});$.each(links,function(e,t){n.append($(" ",{href:t,text:e,target:"_blank"})),n.append($(" ",{text:" | "}))}),o.append(n),this.getPanel().append(o),t.append(this.getPanel()),$("#tc-settings-close").on("click",function(){e.show()}),$(".tc-switch").on("click",function(){e.handler($(this))}),settingsCookie["bda-es-0"]?$("#twitchcord-button-container").show():$("#twitchcord-button-container").hide(),settingsCookie["bda-gs-2"]?t.addClass("bd-minimal"):t.removeClass("bd-minimal"),settingsCookie["bda-gs-3"]?t.addClass("bd-minimal-chan"):t.removeClass("bd-minimal-chan"),settingsCookie["bda-gs-4"]&&voiceMode.enable()},SettingsPanel.prototype.show=function(){this.getPanel().toggle();var e=$("#tc-settings-li");e.removeClass(),this.getPanel().is(":visible")&&e.addClass("active")},SettingsPanel.prototype.handler=function(e){var t=e.attr("id"),i=settingsCookie[t];i=!i,settingsCookie[t]=i;var o=$("#"+t+" .tc-switch-off"),n=$("#"+t+" .tc-switch-on");o.removeClass("active"),n.removeClass("active"),i?n.addClass("active"):o.addClass("active"),settingsCookie["bda-es-0"]?$("#twitchcord-button-container").show():$("#twitchcord-button-container").hide(),settingsCookie["bda-gs-2"]?$("body").addClass("bd-minimal"):$("body").removeClass("bd-minimal"),settingsCookie["bda-gs-3"]?$("body").addClass("bd-minimal-chan"):$("body").removeClass("bd-minimal-chan"),settingsCookie["bda-gs-1"]?$("#bd-pub-li").show():$("#bd-pub-li").hide(),settingsCookie["bda-gs-4"]?voiceMode.enable():voiceMode.disable(),mainCore.saveSettings()},Utils.prototype.getTextArea=function(){return $(".channel-textarea-inner textarea")},Utils.prototype.jqDefer=function(e){window.jQuery?e():setTimeout(function(){this.jqDefer(e)},100)},VoiceMode.prototype.enable=function(){$(".scroller.guild-channels ul").first().css("display","none"),$(".scroller.guild-channels header").first().css("display","none"),$(".flex-vertical.flex-spacer").first().css("overflow","hidden"),$(".chat.flex-vertical.flex-spacer").first().css("visibility","hidden").css("min-width","0px"),$(".flex-vertical.channels-wrap").first().css("width","100%"),$(".guild-header .btn.btn-hamburger").first().css("visibility","hidden")},VoiceMode.prototype.disable=function(){$(".scroller.guild-channels ul").first().css("display",""),$(".scroller.guild-channels header").first().css("display",""),$(".flex-vertical.flex-spacer").first().css("overflow",""),$(".chat.flex-vertical.flex-spacer").first().css("visibility","").css("min-width",""),$(".flex-vertical.channels-wrap").first().css("width",""),$(".guild-header .btn.btn-hamburger").first().css("visibility","")};
\ No newline at end of file
diff --git a/js/publicservers.js b/js/publicservers.js
index 50ab648c..e76f9f66 100644
--- a/js/publicservers.js
+++ b/js/publicservers.js
@@ -1,27 +1,138 @@
-/* BetterDiscordApp PublicSevers JavaSctript
+/* BetterDiscordApp PublicSevers JavaScripts
* Version: 1.0
* Author: Jiiks | http://jiiks.net
* Date: 27/08/2015 - 14:16
* https://github.com/Jiiks/BetterDiscordApp
*/
-function PublicServers() {
-
-}
-
-PublicServers.prototype.init = function() {
-
-}/* BetterDiscordApp PublicSevers JavaSctript
- * Version: 1.0
- * Author: Jiiks | http://jiiks.net
- * Date: 27/08/2015 - 14:16
- * https://github.com/Jiiks/BetterDiscordApp
- */
+var publicServers = { "servers": { "server": { "code": 0, "icon": null, "title": "title", "language": "EN", "description": "description" } } }; //for ide
function PublicServers() {
}
+PublicServers.prototype.getPanel = function() {
+ return this.container;
+};
+
PublicServers.prototype.init = function() {
-}
\ No newline at end of file
+ var self = this;
+
+ this.container = $("
", {
+ id: "bd-ps-container",
+ style: "display:none"
+ });
+
+ var header = $("
", {
+ id: "bd-ps-header"
+ });
+
+ $(" ", {
+ text: "Public Servers"
+ }).appendTo(header);
+
+ $(" ", {
+ id: "bd-ps-close",
+ style:"cursor:pointer;",
+ text: "X"
+ }).appendTo(header);
+
+ header.appendTo(this.getPanel());
+
+ var psbody = $("
", {
+ id: "bd-ps-body"
+ });
+
+ psbody.appendTo(this.getPanel());
+
+ var table = $("", {
+ border:"0"
+ });
+
+ var thead = $(" ");
+
+ thead.appendTo(table);
+
+ var headers = $(" ", {
+
+ }).append($(" ", {
+ text: "Name"
+ })).append($(" ", {
+ text: "Code"
+ })).append($(" ", {
+ text: "Language"
+ })).append($(" ", {
+ text: "Description"
+ }));
+
+ headers.appendTo(thead);
+
+ var tbody = $(" ", {
+ id: "bd-ps-tbody"
+ });
+
+ tbody.appendTo(table);
+
+ table.appendTo(psbody);
+
+ $("body").append(this.getPanel());
+
+ $("#bd-ps-close").on("click", function() { self.show(); });
+
+ var servers = publicServers.servers;
+
+ for(var server in servers) {
+ if(servers.hasOwnProperty(server)) {
+ var s = servers[server];
+ var code = s.code;
+ var title = s.title;
+ var language = s.language;
+ var description = s.description;
+
+ this.addServer(server, code, title, language, description);
+ }
+ }
+};
+
+PublicServers.prototype.addServer = function(name, code, title, language, description) {
+
+ var tableBody = $("#bd-ps-tbody");
+
+
+ var desc = $(" ").append($("
", {
+ class: "bd-ps-description",
+ text: description
+ }));
+
+ var tr = $(" ");
+
+ tr.append($(" ", {
+ text: title
+ }));
+
+ tr.append($(" ", {
+ css: {
+ "-webkit-user-select":"initial",
+ "user-select":"initial"
+ },
+ text: code
+ }));
+
+ tr.append($(" ", {
+ text: language
+ }));
+
+ tr.append(desc);
+
+ tableBody.append(tr);
+};
+
+PublicServers.prototype.show = function() {
+ this.getPanel().toggle();
+ var li = $("#bd-pub-li");
+ li.removeClass();
+ if(this.getPanel().is(":visible")) {
+ li.addClass("active");
+ }
+};
\ No newline at end of file
diff --git a/js/quickemotemenu.js b/js/quickemotemenu.js
index c0ab9cff..1b72e429 100644
--- a/js/quickemotemenu.js
+++ b/js/quickemotemenu.js
@@ -1,5 +1,5 @@
/* BetterDiscordApp QuickEmoteMenu JavaScript
- * Version: 1.2
+ * Version: 1.3
* Author: Jiiks | http://jiiks.net
* Date: 26/08/2015 - 11:49
* Last Update: 29/08/2015 - 11:46
@@ -8,16 +8,13 @@
var emoteBtn, emoteMenu;
-var globalEmotes = {":(":2, ":)": 1, ":/":10, ":D":3, ":o":8, ":p":12, ":z":5, ";)":11, ";p":13, "<3":9, ">(":4, "B)":7, "o_o":6, "R)":14,"4Head":354,"ANELE":3792,"ArgieB8":51838,"ArsonNoSexy":50,"AsianGlow":74,"AtGL":9809,"AthenaPMS":32035,"AtIvy":9800,"AtWW":9801,"BabyRage":22639,"BatChest":1905,"BCWarrior":30,"BibleThump":86,"BigBrother":1904,"BionicBunion":24,"BlargNaut":38,"BloodTrail":69,"BORT":243,"BrainSlug":881,"BrokeBack":4057,"BuddhaBar":27602,"CoolCat":58127,"CorgiDerp":49106,"CougarHunt":21,"DAESuppy":973,"DansGame":33,"DatHass":20225,"DatSheffy":170,"DBstyle":73,"deExcite":46249,"deIlluminati":46248,"DendiFace":58135,"DogFace":1903,"DOOMGuy":54089,"EagleEye":20,"EleGiggle":4339,"EvilFetus":72,"FailFish":360,"FPSMarksman":42,"FrankerZ":65,"FreakinStinkin":39,"FUNgineer":244,"FunRun":48,"FuzzyOtterOO":168,"GasJoker":9802,"GingerPower":32,"GrammarKing":3632,"HassanChop":68,"HeyGuys":30259,"HotPokket":357,"HumbleLife":46881,"ItsBoshyTime":169,"Jebaited":90,"JKanStyle":15,"JonCarnage":26,"KAPOW":9803,"Kappa":25,"KappaPride":55338,"Keepo":1902,"KevinTurtle":40,"Kippa":1901,"Kreygasm":41,"KZskull":5253,"Mau5":30134,"mcaT":35063,"MechaSupes":9804,"MrDestructoid":28,"MVGame":29,"NightBat":9805,"NinjaTroll":45,"NoNoSpot":44,"NotATK":34875,"NotLikeThis":58765,"OMGScoots":91,"OneHand":66,"OpieOP":356,"OptimizePrime":16,"OSbeaver":47005,"OSbury":47420,"OSdeo":47007,"OSfrog":47008,"OSkomodo":47010,"OSrob":47302,"OSsloth":47011,"panicBasket":22998,"PanicVis":3668,"PazPazowitz":19,"PeoplesChamp":3412,"PermaSmug":27509,"PicoMause":27,"PipeHype":4240,"PJHarley":9808,"PJSalt":36,"PMSTwin":92,"PogChamp":88,"Poooound":358,"PraiseIt":38586,"PRChase":28328,"PunchTrees":47,"PuppeyFace":58136,"RaccAttack":27679,"RalpherZ":1900,"RedCoat":22,"ResidentSleeper":245,"RitzMitz":4338,"RuleFive":361,"ShadyLulu":52492,"Shazam":9807,"shazamicon":9806,"ShazBotstix":87,"ShibeZ":27903,"SMOrc":52,"SMSkull":51,"SoBayed":1906,"SoonerLater":355,"SriHead":14706,"SSSsss":46,"StoneLightning":17,"StrawBeary":37,"SuperVinlin":31,"SwiftRage":34,"tbBaconBiscuit":44499,"tbChickenBiscuit":56879,"tbQuesarito":56883,"tbSausageBiscuit":56881,"tbSpicy":56882,"tbSriracha":56880,"TF2John":1899,"TheKing":50901,"TheRinger":18,"TheTarFu":70,"TheThing":7427,"ThunBeast":1898,"TinyFace":67,"TooSpicy":359,"TriHard":171,"TTours":38436,"UleetBackup":49,"UncleNox":3666,"UnSane":71,"VaultBoy":54090,"Volcania":166,"WholeWheat":1896,"WinWaker":167,"WTRuck":1897,"WutFace":28087,"YouWHY":4337};
-var emoteList;
-
function QuickEmoteMenu() {
}
-QuickEmoteMenu.prototype.init = function (reload) {
+QuickEmoteMenu.prototype.init = function() {
- emoteBtn = null;
+ var emoteBtn;
if(!emoteMenu) {
this.initEmoteList();
@@ -48,26 +45,27 @@ QuickEmoteMenu.prototype.init = function (reload) {
emoteBtn.show();
}
- $(".emote-icon").off();
- $(".emote-icon").on("click", function() {
- var emote = $(this).attr("id");
- var ta = $(".channel-textarea-inner textarea");
- ta.val(ta.val().slice(-1) == " " ? ta.val() + emote : ta.val() + " " + emote);
- });
-}
+ var emoteIcon = $(".emote-icon");
+
+ emoteIcon.off();
+ emoteIcon.on("click", function() {
+ var emote = $(this).attr("id");
+ var ta = $(".channel-textarea-inner textarea");
+ ta.val(ta.val().slice(-1) == " " ? ta.val() + emote : ta.val() + " " + emote);
+ });
+};
QuickEmoteMenu.prototype.obsCallback = function() {
if(!emoteBtn) return;
if(!$(".content.flex-spacer.flex-horizontal .flex-spacer.flex-vertical form")) return;
- tcbtn = $("#twitchcord-button-container");
+ var tcbtn = $("#twitchcord-button-container");
if(tcbtn.parent().prop("tagName") == undefined) {
quickEmoteMenu = new QuickEmoteMenu();
quickEmoteMenu.init(true);
}
-
-}
+};
QuickEmoteMenu.prototype.initEmoteList = function() {
@@ -78,10 +76,10 @@ QuickEmoteMenu.prototype.initEmoteList = function() {
emoteMenu.append(emoteMenuHeader);
emoteMenu.append(emoteMenuBody);
- for(var emote in globalEmotes) {
- var command = emote;
- var id = globalEmotes[emote];
-
- emoteMenuBody.append($("
" , { class: "emote-container" }).append($(" ", { class: "emote-icon", id: emote, alt: "", src: "https://static-cdn.jtvnw.net/emoticons/v1/"+id+"/1.0", title: emote })));
+ for(var emote in emotesTwitch.emotes) {
+ if(emotesTwitch.emotes.hasOwnProperty(emote)) {
+ var id = emotesTwitch.emotes[emote].image_id;
+ emoteMenuBody.append($("
" , { class: "emote-container" }).append($(" ", { class: "emote-icon", id: emote, alt: "", src: "https://static-cdn.jtvnw.net/emoticons/v1/"+id+"/1.0", title: emote })));
+ }
}
-}
\ No newline at end of file
+};
\ No newline at end of file
diff --git a/js/settingspanel.js b/js/settingspanel.js
index 9e5ac3c5..13560f10 100644
--- a/js/settingspanel.js
+++ b/js/settingspanel.js
@@ -14,11 +14,12 @@ function SettingsPanel() {
SettingsPanel.prototype.getPanel = function() {
return this.tcSettingsPanel;
-}
+};
SettingsPanel.prototype.init = function() {
var self = this;
+ var body = $("body");
this.tcSettingsPanel = $("
", { id: "tc-settings-panel", style: "display:none" });
this.getPanel().append($("
", { id: "tc-settings-panel-header" }).append($(" ", { text: "BetterDiscord - Settings" })).append($(" ", { id: "tc-settings-close", text: "X", style:"cursor:pointer;" })));
@@ -36,7 +37,7 @@ SettingsPanel.prototype.init = function() {
}
settingsList.append($(" ").append($(" ", { text: key})).append($(" ", { html: " - " + value.info + " " + (value.implemented == false ? ' Coming Soon ' : "") })).append($("
", { class: value.implemented ? "tc-switch" : "tc-switch disabled", id: value.id }).append($(" ", { class: sof, text: "OFF" })).append($(" ", { class: son, text: "ON" }))));
- })
+ });
var settingsFooter = $("
", { id: "tc-settings-panel-footer" });
settingsFooter.append($(" ", { id: "tc-about", text: "BDA v" + version + "(js "+jsVersion+") by Jiiks | Settings are automatically saved." } ));
@@ -44,13 +45,13 @@ SettingsPanel.prototype.init = function() {
$.each(links, function(key, value) {
tcLinks.append($(" ", { href: value, text: key, target: "_blank" }));
tcLinks.append($(" ", { text: " | " }));
- })
+ });
settingsFooter.append(tcLinks);
this.getPanel().append(settingsFooter);
- $("body").append(this.getPanel());
- $("#tc-settings-close").on("click", function(e) { self.show(); });
+ body.append(this.getPanel());
+ $("#tc-settings-close").on("click", function() { self.show(); });
$(".tc-switch").on("click", function() { self.handler($(this)) });
if(settingsCookie["bda-es-0"]) {
@@ -60,25 +61,31 @@ SettingsPanel.prototype.init = function() {
}
if(settingsCookie["bda-gs-2"]) {
- $("body").addClass("bd-minimal");
+ body.addClass("bd-minimal");
} else {
- $("body").removeClass("bd-minimal");
+ body.removeClass("bd-minimal");
}
if(settingsCookie["bda-gs-3"]) {
- $("body").addClass("bd-minimal-chan");
+ body.addClass("bd-minimal-chan");
} else {
- $("body").removeClass("bd-minimal-chan");
+ body.removeClass("bd-minimal-chan");
}
-}
+
+ if(settingsCookie["bda-gs-4"]) {
+ voiceMode.enable();
+ }
+};
SettingsPanel.prototype.show = function() {
this.getPanel().toggle();
- $("#tc-settings-li").removeClass();
+ var settingsLi = $("#tc-settings-li");
+
+ settingsLi.removeClass();
if(this.getPanel().is(":visible")) {
- $("#tc-settings-li").addClass("active");
+ settingsLi.addClass("active");
}
-}
+};
SettingsPanel.prototype.handler = function(e){
@@ -115,6 +122,16 @@ SettingsPanel.prototype.handler = function(e){
} else {
$("body").removeClass("bd-minimal-chan");
}
+ if(settingsCookie["bda-gs-1"]) {
+ $("#bd-pub-li").show();
+ } else {
+ $("#bd-pub-li").hide();
+ }
+ if(settingsCookie["bda-gs-4"]){
+ voiceMode.enable();
+ } else {
+ voiceMode.disable();
+ }
mainCore.saveSettings();
-}
\ No newline at end of file
+};
\ No newline at end of file
diff --git a/js/utils.js b/js/utils.js
index 122ae4ad..2e61cf67 100644
--- a/js/utils.js
+++ b/js/utils.js
@@ -11,8 +11,8 @@ function Utils() {
Utils.prototype.getTextArea = function() {
return $(".channel-textarea-inner textarea");
-}
+};
Utils.prototype.jqDefer = function(fnc) {
if(window.jQuery) { fnc(); } else { setTimeout(function() { this.jqDefer(fnc) }, 100) }
-}
\ No newline at end of file
+};
\ No newline at end of file
diff --git a/js/voicemode.js b/js/voicemode.js
new file mode 100644
index 00000000..6e8f1576
--- /dev/null
+++ b/js/voicemode.js
@@ -0,0 +1,28 @@
+/* BetterDiscordApp VoiceMode JavaScript
+ * Version: 1.0
+ * Author: Jiiks | http://jiiks.net
+ * Date: 25/10/2015 - 19:10
+ * https://github.com/Jiiks/BetterDiscordApp
+ */
+
+function VoiceMode() {
+
+}
+
+VoiceMode.prototype.enable = function() {
+ $(".scroller.guild-channels ul").first().css("display", "none");
+ $(".scroller.guild-channels header").first().css("display", "none");
+ $(".flex-vertical.flex-spacer").first().css("overflow", "hidden");
+ $(".chat.flex-vertical.flex-spacer").first().css("visibility", "hidden").css("min-width", "0px");
+ $(".flex-vertical.channels-wrap").first().css("width", "100%");
+ $(".guild-header .btn.btn-hamburger").first().css("visibility", "hidden");
+};
+
+VoiceMode.prototype.disable = function() {
+ $(".scroller.guild-channels ul").first().css("display", "");
+ $(".scroller.guild-channels header").first().css("display", "");
+ $(".flex-vertical.flex-spacer").first().css("overflow", "");
+ $(".chat.flex-vertical.flex-spacer").first().css("visibility", "").css("min-width", "");
+ $(".flex-vertical.channels-wrap").first().css("width", "");
+ $(".guild-header .btn.btn-hamburger").first().css("visibility", "");
+};
\ No newline at end of file
diff --git a/lib/BetterDiscord.js b/lib/BetterDiscord.js
index 4937ce5a..1cf442bd 100644
--- a/lib/BetterDiscord.js
+++ b/lib/BetterDiscord.js
@@ -127,7 +127,7 @@ BetterDiscord.prototype.start = function() {
//Css loaded, load main javascript
case 'loaded-css':
self.getUtils().updateLoading("Loading Resources(js)", 30, 100);
- self.getUtils().injectJavaScriptSync("//" + _updater.CDN + "/Jiiks/BetterDiscordApp/"+_hash+"/jd/main.min.js", "loaded-js");
+ self.getUtils().injectJavaScriptSync("//" + _updater.CDN + "/Jiiks/BetterDiscordApp/"+_hash+"/js/main.min.js", "loaded-js");
break;
//Main javascript loaded, load public servers
case 'loaded-js':
diff --git a/updater.json b/updater.json
index e45f0036..d7d461d6 100644
--- a/updater.json
+++ b/updater.json
@@ -1,4 +1,4 @@
{
- "LatestVersion":"0.1.3",
+ "LatestVersion":"0.1.5",
"CDN":"cdn.rawgit.com"
}
\ No newline at end of file