2015-08-27 15:46:53 +02:00
/ * B e t t e r D i s c o r d A p p C o r e J a v a S c r i p t
2015-10-26 06:27:55 +01:00
* Version : 1.5
2015-08-27 15:46:53 +02:00
* Author : Jiiks | http : //jiiks.net
* Date : 27 / 08 / 2015 - 16 : 36
2015-10-26 06:27:55 +01:00
* Last Update : 24 / 010 / 2015 - 17 : 27
2015-08-27 15:46:53 +02:00
* https : //github.com/Jiiks/BetterDiscordApp
* /
2015-10-26 06:27:55 +01:00
var settingsPanel , emoteModule , utils , quickEmoteMenu , opublicServers , voiceMode ;
2015-11-27 01:14:33 +01:00
var jsVersion = 1.4 ;
2015-10-26 06:27:55 +01:00
var supportedVersion = "0.1.5" ;
2015-08-29 11:36:47 +02:00
var mainObserver ;
2015-08-27 15:46:53 +02:00
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 = "" ;
var bttvEmoteUrlEnd = "" ;
2015-10-26 06:27:55 +01:00
var mainCore ;
2015-08-27 15:46:53 +02:00
2015-08-29 11:36:47 +02:00
var settings = {
"Save logs locally" : { "id" : "bda-gs-0" , "info" : "Saves chat logs locally" , "implemented" : false } ,
2015-11-27 01:14:33 +01:00
"Public Servers" : { "id" : "bda-gs-1" , "info" : "Display public servers button" , "implemented" : true } ,
2015-08-30 11:17:06 +02:00
"Minimal Mode" : { "id" : "bda-gs-2" , "info" : "Hide elements and reduce the size of elements." , "implemented" : true } ,
2015-10-26 06:27:55 +01:00
"Voice Mode" : { "id" : "bda-gs-4" , "info" : "Only show voice chat" , "implemented" : true } ,
2015-08-30 11:17:06 +02:00
"Hide Channels" : { "id" : "bda-gs-3" , "info" : "Hide channels in minimal mode" , "implemented" : true } ,
2015-08-29 11:36:47 +02:00
"Quick Emote Menu" : { "id" : "bda-es-0" , "info" : "Show quick emote menu for adding emotes" , "implemented" : true } ,
2015-11-27 01:14:33 +01:00
"Show Emotes" : { "id" : "bda-es-7" , "info" : "Show any emotes" , "implemented" : true } ,
2015-08-29 11:36:47 +02:00
"FrankerFaceZ Emotes" : { "id" : "bda-es-1" , "info" : "Show FrankerFaceZ Emotes" , "implemented" : true } ,
2015-10-26 06:27:55 +01:00
"BetterTTV Emotes" : { "id" : "bda-es-2" , "info" : "Show BetterTTV Emotes" , "implemented" : true } ,
2015-08-29 11:36:47 +02:00
"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 } ,
2015-11-19 00:35:39 +01:00
"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 }
2015-08-29 11:36:47 +02:00
} ;
2015-11-27 01:14:33 +01:00
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" }
} ;
2015-08-29 11:36:47 +02:00
var defaultCookie = {
"version" : jsVersion ,
"bda-gs-0" : false ,
"bda-gs-1" : true ,
2015-08-30 11:17:06 +02:00
"bda-gs-2" : false ,
"bda-gs-3" : false ,
2015-10-26 06:27:55 +01:00
"bda-gs-4" : false ,
2015-08-29 11:36:47 +02:00
"bda-es-0" : true ,
"bda-es-1" : false ,
"bda-es-2" : false ,
"bda-es-3" : false ,
"bda-es-4" : false ,
2015-11-19 00:35:39 +01:00
"bda-es-5" : true ,
2015-11-27 01:14:33 +01:00
"bda-es-6" : true ,
2015-11-27 11:07:59 +01:00
"bda-es-7" : true ,
"bda-jd" : true
2015-08-29 11:36:47 +02:00
} ;
var settingsCookie = { } ;
2015-08-27 15:46:53 +02:00
2015-10-26 06:27:55 +01:00
function Core ( ) { }
2015-08-27 15:46:53 +02:00
2015-10-26 06:27:55 +01:00
Core . prototype . init = function ( ) {
2015-08-27 15:46:53 +02:00
2015-11-27 11:07:59 +01:00
var self = this ;
2015-10-26 06:27:55 +01:00
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 ;
}
2015-08-29 11:36:47 +02:00
2015-08-27 15:46:53 +02:00
utils = new Utils ( ) ;
2015-11-01 12:37:04 +01:00
utils . getHash ( ) ;
2015-08-27 15:46:53 +02:00
emoteModule = new EmoteModule ( ) ;
quickEmoteMenu = new QuickEmoteMenu ( ) ;
2015-10-26 06:27:55 +01:00
voiceMode = new VoiceMode ( ) ;
2015-08-27 15:46:53 +02:00
emoteModule . init ( ) ;
2015-08-29 11:36:47 +02:00
this . initSettings ( ) ;
this . initObserver ( ) ;
2015-10-26 06:27:55 +01:00
//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 ( $ ( "<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" } ) ) ) ) ) ;
2015-11-28 00:29:53 +01:00
// guilds.after($("<li/>", {id:"tc-settings-li"}).append($("<div/>", { class: "guild-inner" }).append($("<a/>").append($("<div/>", { class: "avatar-small", id: "tc-settings-button" })))));
2015-08-27 15:46:53 +02:00
2015-11-27 11:07:59 +01:00
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 ( ) ;
2015-08-31 15:20:33 +02:00
settingsPanel = new SettingsPanel ( ) ;
settingsPanel . init ( ) ;
2015-10-26 06:27:55 +01:00
2015-08-31 15:20:33 +02:00
quickEmoteMenu . init ( false ) ;
2015-10-26 06:27:55 +01:00
$ ( "#tc-settings-button" ) . on ( "click" , function ( ) { settingsPanel . show ( ) ; } ) ;
$ ( "#bd-pub-button" ) . on ( "click" , function ( ) { opublicServers . show ( ) ; } ) ;
opublicServers . init ( ) ;
emoteModule . autoCapitalize ( ) ;
2015-08-31 15:20:33 +02:00
} else {
2015-10-26 06:27:55 +01:00
setTimeout ( gwDefer , 100 ) ;
2015-08-31 15:20:33 +02:00
}
2015-10-26 06:27:55 +01:00
}
2015-08-31 15:59:34 +02:00
2015-10-26 06:27:55 +01:00
$ ( document ) . ready ( function ( ) {
setTimeout ( gwDefer , 1000 ) ;
} ) ;
} ;
2015-08-27 15:46:53 +02:00
2015-08-29 11:36:47 +02:00
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 ) {
2015-10-26 06:27:55 +01:00
settingsCookie [ setting ] = defaultCookie [ setting ] ;
2015-08-29 11:36:47 +02:00
this . saveSettings ( ) ;
}
2015-08-27 15:46:53 +02:00
}
}
2015-10-26 06:27:55 +01:00
} ;
2015-08-27 15:46:53 +02:00
2015-08-29 11:36:47 +02:00
Core . prototype . saveSettings = function ( ) {
$ . cookie ( "better-discord" , JSON . stringify ( settingsCookie ) , { expires : 365 , path : '/' } ) ;
2015-10-26 06:27:55 +01:00
} ;
2015-08-29 11:36:47 +02:00
Core . prototype . loadSettings = function ( ) {
settingsCookie = JSON . parse ( $ . cookie ( "better-discord" ) ) ;
2015-10-26 06:27:55 +01:00
} ;
2015-08-29 11:36:47 +02:00
Core . prototype . initObserver = function ( ) {
mainObserver = new MutationObserver ( function ( mutations ) {
mutations . forEach ( function ( mutation ) {
2015-08-29 21:02:20 +02:00
if ( mutation . target . getAttribute ( 'class' ) != null ) {
if ( mutation . target . getAttribute ( 'class' ) . indexOf ( "titlebar" ) != - 1 ) {
quickEmoteMenu . obsCallback ( ) ;
2015-11-19 00:35:39 +01:00
voiceMode . obsCallback ( ) ;
2015-08-29 21:02:20 +02:00
}
2015-08-29 11:36:47 +02:00
}
emoteModule . obsCallback ( mutation ) ;
} ) ;
} ) ;
2015-10-26 06:27:55 +01:00
//noinspection JSCheckFunctionSignatures
2015-08-29 11:36:47 +02:00
mainObserver . observe ( document , { childList : true , subtree : true } ) ;
2015-10-26 06:27:55 +01:00
} ;
2015-08-29 11:36:47 +02:00
2015-08-27 15:46:53 +02:00
/ * B e t t e r D i s c o r d A p p E m o t e M o d u l e J a v a S c r i p t
2015-10-26 06:27:55 +01:00
* Version : 1.5
2015-08-27 15:46:53 +02:00
* Author : Jiiks | http : //jiiks.net
* Date : 26 / 08 / 2015 - 15 : 29
2015-10-14 08:50:34 +02:00
* Last Update : 14 / 10 / 2015 - 09 : 48
2015-08-27 15:46:53 +02:00
* https : //github.com/Jiiks/BetterDiscordApp
* Note : Due to conflicts autocapitalize only supports global emotes
* /
2015-10-26 06:27:55 +01:00
/ *
* = Changelog =
* - v1 . 5
* -- Twitchemotes . com api
* /
2015-08-27 15:46:53 +02:00
var emotesFfz = { } ;
var emotesBTTV = { } ;
2015-10-26 06:27:55 +01:00
var emotesTwitch = { "emotes" : { "emote" : { "image_id" : 0 } } } ; //for ide
var subEmotesTwitch = { } ;
2015-08-27 15:46:53 +02:00
2015-10-26 06:27:55 +01:00
//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" } ;
2015-08-27 15:46:53 +02:00
2015-11-01 12:44:25 +01:00
function EmoteModule ( ) {
}
2015-08-29 11:36:47 +02:00
2015-11-01 12:44:25 +01:00
EmoteModule . prototype . init = function ( ) {
2015-11-01 12:57:10 +01:00
} ;
EmoteModule . prototype . getBlacklist = function ( ) {
2015-11-01 13:12:04 +01:00
$ . getJSON ( "https://cdn.rawgit.com/Jiiks/betterDiscordApp/" + _hash + "/emotefilter.json" , function ( data ) { bemotes = data . blacklist ; } ) ;
2015-11-01 12:44:25 +01:00
} ;
2015-08-27 15:46:53 +02:00
2015-08-29 11:36:47 +02:00
EmoteModule . prototype . obsCallback = function ( mutation ) {
var self = this ;
2015-10-29 14:46:08 +01:00
2015-11-27 01:14:33 +01:00
if ( ! settingsCookie [ "bda-es-7" ] ) return ;
2015-08-29 11:36:47 +02:00
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 ) {
2015-10-26 06:27:55 +01:00
if ( nodes . hasOwnProperty ( node ) ) {
self . injectEmote ( nodes [ node ] ) ;
}
2015-08-29 11:36:47 +02:00
}
}
}
2015-10-26 06:27:55 +01:00
} ;
2015-08-27 15:46:53 +02:00
EmoteModule . prototype . getNodes = function ( node ) {
var next ;
var nodes = [ ] ;
2015-10-31 22:49:42 +01:00
var treeWalker = document . createTreeWalker ( node , NodeFilter . SHOW _TEXT , null , false ) ;
2015-08-27 15:46:53 +02:00
while ( next = treeWalker . nextNode ( ) ) {
nodes . push ( next ) ;
}
2015-10-29 15:51:21 +01:00
2015-10-29 15:53:43 +01:00
2015-08-27 15:46:53 +02:00
return nodes ;
2015-10-26 06:27:55 +01:00
} ;
2015-08-27 15:46:53 +02:00
2015-11-01 12:44:25 +01:00
var bemotes = [ ] ;
2015-11-28 00:41:48 +01:00
var spoilered = [ ] ;
2015-10-27 16:41:46 +01:00
2015-10-26 06:27:55 +01:00
//TODO Functional titles
2015-08-27 15:46:53 +02:00
EmoteModule . prototype . injectEmote = function ( node ) {
if ( typeof emotesTwitch === 'undefined' ) return ;
if ( ! node . parentElement ) return ;
var parent = node . parentElement ;
if ( parent . tagName != "SPAN" ) return ;
var parentInnerHTML = parent . innerHTML ;
2015-11-12 13:31:52 +01:00
var words = parentInnerHTML . split ( /\s+/g ) ;
2015-08-27 15:46:53 +02:00
if ( ! words ) return ;
words . some ( function ( word ) {
2015-10-27 16:43:37 +01:00
2015-11-28 00:29:53 +01:00
if ( word == "[s]" ) {
parentInnerHTML = parentInnerHTML . replace ( word , "" ) ;
2015-11-28 00:41:48 +01:00
var markup = $ ( parent ) . parent ( ) ;
var reactId = markup . attr ( "data-reactid" ) ;
if ( spoilered . indexOf ( reactId ) > - 1 ) {
return ;
}
spoilered . push ( reactId ) ;
markup . addClass ( "spoiler" ) ;
2015-11-28 00:29:53 +01:00
markup . on ( "click" , function ( ) {
$ ( this ) . removeClass ( "spoiler" ) ;
} ) ;
return ;
}
2015-10-27 16:47:36 +01:00
if ( $ . inArray ( word , bemotes ) != - 1 ) return ;
2015-11-28 00:29:53 +01:00
2015-11-19 00:35:39 +01:00
if ( word . length < 4 ) {
return ;
}
2015-10-26 06:27:55 +01:00
if ( emotesTwitch . emotes . hasOwnProperty ( word ) ) {
2015-11-19 00:35:39 +01:00
if ( settingsCookie [ "bda-es-6" ] ) {
parentInnerHTML = parentInnerHTML . replace ( word , '<img title="' + word . substr ( 0 , word . length / 2 ) + "\uFDD9" + word . substr ( word . length / 2 ) + '" src="' + twitchEmoteUrlStart + emotesTwitch . emotes [ word ] . image _id + twitchEmoteUrlEnd + '" />' ) ;
return ;
}
else {
parentInnerHTML = parentInnerHTML . replace ( word , "<img src=" + twitchEmoteUrlStart + emotesTwitch . emotes [ word ] . image _id + twitchEmoteUrlEnd + " ><\/img>" ) ;
return ;
}
2015-10-26 06:27:55 +01:00
}
if ( typeof emotesFfz !== 'undefined' && settingsCookie [ "bda-es-1" ] ) {
2015-08-27 15:46:53 +02:00
if ( emotesFfz . hasOwnProperty ( word ) ) {
2015-11-19 00:35:39 +01:00
if ( settingsCookie [ "bda-es-6" ] ) {
2015-11-19 05:00:52 +01:00
parentInnerHTML = parentInnerHTML . replace ( word , '<img title="' + word . substr ( 0 , word . length / 2 ) + "\uFDD9" + word . substr ( word . length / 2 ) + '" src="' + ffzEmoteUrlStart + emotesFfz [ word ] + ffzEmoteUrlEnd + '" />' ) ;
2015-11-19 00:35:39 +01:00
return ;
}
else {
parentInnerHTML = parentInnerHTML . replace ( word , "<img src=" + ffzEmoteUrlStart + emotesFfz [ word ] + ffzEmoteUrlEnd + " ><\/img>" ) ;
return ;
}
2015-10-26 06:27:55 +01:00
}
}
if ( typeof emotesBTTV !== 'undefined' && settingsCookie [ "bda-es-2" ] ) {
if ( emotesBTTV . hasOwnProperty ( word ) ) {
2015-11-19 00:35:39 +01:00
if ( settingsCookie [ "bda-es-6" ] ) {
2015-11-19 05:00:52 +01:00
parentInnerHTML = parentInnerHTML . replace ( word , '<img title="' + word . substr ( 0 , word . length / 2 ) + "\uFDD9" + word . substr ( word . length / 2 ) + '" src="' + emotesBTTV [ word ] + '" />' ) ;
2015-11-19 00:35:39 +01:00
return ;
}
else {
parentInnerHTML = parentInnerHTML . replace ( word , "<img src=" + emotesBTTV [ word ] + " ><\/img>" ) ;
return ;
}
2015-08-27 15:46:53 +02:00
}
}
2015-10-26 06:27:55 +01:00
if ( subEmotesTwitch . hasOwnProperty ( word ) ) {
2015-11-19 00:35:39 +01:00
if ( settingsCookie [ "bda-es-6" ] ) {
2015-11-19 05:00:52 +01:00
parentInnerHTML = parentInnerHTML . replace ( word , '<img title="' + word . substr ( 0 , word . length / 2 ) + "\uFDD9" + word . substr ( word . length / 2 ) + '" src="' + twitchEmoteUrlStart + subEmotesTwitch [ word ] + twitchEmoteUrlEnd + '" />' ) ;
2015-11-19 00:35:39 +01:00
return ;
}
else {
parentInnerHTML = parentInnerHTML . replace ( word , "<img src=" + twitchEmoteUrlStart + subEmotesTwitch [ word ] + twitchEmoteUrlEnd + " ><\/img>" ) ;
return ;
}
2015-10-26 06:27:55 +01:00
}
2015-08-27 15:46:53 +02:00
} ) ;
2015-10-26 06:27:55 +01:00
if ( parent . parentElement == null ) return ;
2015-10-14 08:50:34 +02:00
var oldHeight = parent . parentElement . offsetHeight ;
2015-11-19 00:35:39 +01:00
parent . innerHTML = parentInnerHTML . replace ( new RegExp ( "\uFDD9" , "g" ) , "" ) ;
2015-10-14 08:50:34 +02:00
var newHeight = parent . parentElement . offsetHeight ;
2015-10-26 06:27:55 +01:00
//Scrollfix
var scrollPane = $ ( ".scroller.messages" ) . first ( ) ;
2015-10-14 08:50:34 +02:00
scrollPane . scrollTop ( scrollPane . scrollTop ( ) + ( newHeight - oldHeight ) ) ;
2015-10-26 06:27:55 +01:00
} ;
2015-08-27 15:46:53 +02:00
EmoteModule . prototype . autoCapitalize = function ( ) {
2015-10-26 06:27:55 +01:00
2015-08-27 15:46:53 +02:00
var self = this ;
2015-08-31 15:36:28 +02:00
2015-08-27 15:46:53 +02:00
$ ( 'body' ) . delegate ( $ ( ".channel-textarea-inner textarea" ) , 'keyup change paste' , function ( ) {
2015-08-29 11:36:47 +02:00
if ( ! settingsCookie [ "bda-es-4" ] ) return ;
2015-08-27 15:46:53 +02:00
var text = $ ( ".channel-textarea-inner textarea" ) . val ( ) ;
2015-08-29 11:36:47 +02:00
if ( text == undefined ) return ;
2015-08-27 15:46:53 +02:00
var lastWord = text . split ( " " ) . pop ( ) ;
if ( lastWord . length > 3 ) {
var ret = self . capitalize ( lastWord . toLowerCase ( ) ) ;
if ( ret != null ) {
$ ( ".channel-textarea-inner textarea" ) . val ( text . replace ( lastWord , ret ) ) ;
}
}
} ) ;
2015-10-26 06:27:55 +01:00
} ;
2015-08-27 15:46:53 +02:00
EmoteModule . prototype . capitalize = function ( value ) {
if ( twitchAc . hasOwnProperty ( value ) ) {
return twitchAc [ value ] ;
}
return null ;
2015-10-26 06:27:55 +01:00
} ;
2015-08-27 15:46:53 +02:00
2015-10-26 06:27:55 +01:00
/ * B e t t e r D i s c o r d A p p P u b l i c S e v e r s J a v a S c r i p t s
2015-08-31 15:20:33 +02:00
* Version : 1.0
* Author : Jiiks | http : //jiiks.net
* Date : 27 / 08 / 2015 - 14 : 16
* https : //github.com/Jiiks/BetterDiscordApp
* /
2015-10-26 06:27:55 +01:00
var publicServers = { "servers" : { "server" : { "code" : 0 , "icon" : null , "title" : "title" , "language" : "EN" , "description" : "description" } } } ; //for ide
2015-08-31 15:20:33 +02:00
function PublicServers ( ) {
}
2015-10-26 06:27:55 +01:00
PublicServers . prototype . getPanel = function ( ) {
return this . container ;
} ;
2015-08-31 15:20:33 +02:00
PublicServers . prototype . init = function ( ) {
2015-10-26 06:27:55 +01:00
var self = this ;
this . container = $ ( "<div/>" , {
id : "bd-ps-container" ,
style : "display:none"
} ) ;
var header = $ ( "<div/>" , {
id : "bd-ps-header"
} ) ;
$ ( "<h2/>" , {
text : "Public Servers"
} ) . appendTo ( header ) ;
$ ( "<span/>" , {
id : "bd-ps-close" ,
style : "cursor:pointer;" ,
text : "X"
} ) . appendTo ( header ) ;
header . appendTo ( this . getPanel ( ) ) ;
var psbody = $ ( "<div/>" , {
id : "bd-ps-body"
} ) ;
psbody . appendTo ( this . getPanel ( ) ) ;
var table = $ ( "<table/>" , {
border : "0"
} ) ;
var thead = $ ( "<thead/>" ) ;
thead . appendTo ( table ) ;
var headers = $ ( "<tr/>" , {
} ) . append ( $ ( "<th/>" , {
text : "Name"
} ) ) . append ( $ ( "<th/>" , {
text : "Code"
} ) ) . append ( $ ( "<th/>" , {
text : "Language"
} ) ) . append ( $ ( "<th/>" , {
text : "Description"
2015-10-27 22:58:43 +01:00
} ) ) . append ( $ ( "<th/>" , {
text : "Join"
2015-10-26 06:27:55 +01:00
} ) ) ;
headers . appendTo ( thead ) ;
var tbody = $ ( "<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 ) {
2015-10-27 22:58:43 +01:00
var self = this ;
2015-10-26 06:27:55 +01:00
var tableBody = $ ( "#bd-ps-tbody" ) ;
var desc = $ ( "<td/>" ) . append ( $ ( "<div/>" , {
class : "bd-ps-description" ,
text : description
} ) ) ;
var tr = $ ( "<tr/>" ) ;
tr . append ( $ ( "<td/>" , {
text : title
} ) ) ;
tr . append ( $ ( "<td/>" , {
css : {
"-webkit-user-select" : "initial" ,
"user-select" : "initial"
} ,
text : code
} ) ) ;
tr . append ( $ ( "<td/>" , {
text : language
} ) ) ;
2015-10-27 23:04:41 +01:00
tr . append ( desc ) ;
2015-10-27 23:13:23 +01:00
tr . append ( $ ( "<td/>" ) . append ( $ ( "<button/>" , {
2015-10-27 22:58:43 +01:00
text : "Join" ,
2015-10-27 23:04:41 +01:00
css : {
"height" : "30px" ,
"display" : "block" ,
"margin-top" : "10px" ,
"background-color" : "#36393E" ,
"border" : "1px solid #404040" ,
"outline" : "1px solid #000" ,
"color" : "#EDEDED"
} ,
2015-10-27 22:58:43 +01:00
click : function ( ) { self . joinServer ( code ) ; }
2015-10-27 23:13:23 +01:00
} ) ) ) ;
2015-10-27 22:58:43 +01:00
2015-10-26 06:27:55 +01:00
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" ) ;
}
} ;
2015-08-27 15:46:53 +02:00
2015-10-27 22:58:43 +01:00
//Workaround for joining a server
PublicServers . prototype . joinServer = function ( code ) {
$ ( ".guilds-add" ) . click ( ) ;
$ ( ".action.join .btn" ) . click ( ) ;
$ ( ".create-guild-container input" ) . val ( code ) ;
$ ( ".form.join-server .btn-primary" ) . click ( ) ;
2015-10-27 23:13:23 +01:00
} ;
2015-10-27 22:58:43 +01:00
2015-08-27 15:46:53 +02:00
/ * B e t t e r D i s c o r d A p p Q u i c k E m o t e M e n u J a v a S c r i p t
2015-10-26 06:27:55 +01:00
* Version : 1.3
2015-08-27 15:46:53 +02:00
* Author : Jiiks | http : //jiiks.net
* Date : 26 / 08 / 2015 - 11 : 49
2015-08-29 11:36:47 +02:00
* Last Update : 29 / 08 / 2015 - 11 : 46
2015-08-27 15:46:53 +02:00
* https : //github.com/Jiiks/BetterDiscordApp
* /
2015-08-29 11:36:47 +02:00
var emoteBtn , emoteMenu ;
2015-08-27 15:46:53 +02:00
function QuickEmoteMenu ( ) {
}
2015-10-26 06:27:55 +01:00
QuickEmoteMenu . prototype . init = function ( reload ) {
2015-08-31 15:36:28 +02:00
2015-08-29 11:36:47 +02:00
emoteBtn = null ;
2015-11-28 00:29:53 +01:00
$ ( ".channel-textarea" ) . first ( ) . removeClass ( "emotemenu-enabled" ) ;
2015-08-29 11:36:47 +02:00
if ( ! emoteMenu ) {
this . initEmoteList ( ) ;
}
2015-08-27 15:46:53 +02:00
var menuOpen ;
2015-08-29 11:36:47 +02:00
emoteBtn = $ ( "<div/>" , { id : "twitchcord-button-container" , style : "display:none" } ) . append ( $ ( "<button/>" , { id : "twitchcord-button" , onclick : "return false;" } ) ) ;
2015-08-27 15:46:53 +02:00
$ ( ".content.flex-spacer.flex-horizontal .flex-spacer.flex-vertical form" ) . append ( emoteBtn ) ;
2015-08-29 11:36:47 +02:00
emoteMenu . detach ( ) ;
2015-08-27 15:46:53 +02:00
emoteBtn . append ( emoteMenu ) ;
2015-08-29 11:36:47 +02:00
2015-08-27 15:46:53 +02:00
$ ( "#twitchcord-button" ) . on ( "click" , function ( ) {
menuOpen = ! menuOpen ;
if ( menuOpen ) {
emoteMenu . addClass ( "emotemenu-open" ) ;
$ ( this ) . addClass ( "twitchcord-button-open" ) ;
} else {
emoteMenu . removeClass ( ) ;
$ ( this ) . removeClass ( ) ;
}
} ) ;
2015-08-29 11:36:47 +02:00
if ( settingsCookie [ "bda-es-0" ] ) {
2015-11-28 00:29:53 +01:00
$ ( ".channel-textarea" ) . first ( ) . addClass ( "emotemenu-enabled" ) ;
2015-08-27 15:46:53 +02:00
emoteBtn . show ( ) ;
}
2015-10-26 06:27:55 +01:00
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 ) ;
} ) ;
} ;
2015-08-29 11:36:47 +02:00
QuickEmoteMenu . prototype . obsCallback = function ( ) {
if ( ! emoteBtn ) return ;
if ( ! $ ( ".content.flex-spacer.flex-horizontal .flex-spacer.flex-vertical form" ) ) return ;
2015-10-26 06:27:55 +01:00
var tcbtn = $ ( "#twitchcord-button-container" ) ;
2015-08-29 11:36:47 +02:00
if ( tcbtn . parent ( ) . prop ( "tagName" ) == undefined ) {
quickEmoteMenu = new QuickEmoteMenu ( ) ;
quickEmoteMenu . init ( true ) ;
}
2015-10-26 06:27:55 +01:00
} ;
2015-08-29 11:36:47 +02:00
QuickEmoteMenu . prototype . initEmoteList = function ( ) {
emoteMenu = $ ( "<div/>" , { id : "emote-menu" } ) ;
var emoteMenuHeader = $ ( "<div/>" , { id : "emote-menu-header" } ) . append ( $ ( "<span/>" , { text : "Global Emotes" } ) ) ;
var emoteMenuBody = $ ( "<div/>" , { id : "emote-menu-inner" } ) ;
emoteMenu . append ( emoteMenuHeader ) ;
emoteMenu . append ( emoteMenuBody ) ;
2015-10-26 06:27:55 +01:00
for ( var emote in emotesTwitch . emotes ) {
if ( emotesTwitch . emotes . hasOwnProperty ( emote ) ) {
var id = emotesTwitch . emotes [ emote ] . image _id ;
emoteMenuBody . append ( $ ( "<div/>" , { class : "emote-container" } ) . append ( $ ( "<img/>" , { class : "emote-icon" , id : emote , alt : "" , src : "https://static-cdn.jtvnw.net/emoticons/v1/" + id + "/1.0" , title : emote } ) ) ) ;
}
2015-08-27 15:46:53 +02:00
}
2015-10-26 06:27:55 +01:00
} ;
2015-08-27 15:46:53 +02:00
/ * B e t t e r D i s c o r d A p p S e t t i n g s P a n e l J a v a S c r i p t
2015-11-27 01:14:33 +01:00
* Version : 2.0
2015-08-27 15:46:53 +02:00
* Author : Jiiks | http : //jiiks.net
* Date : 26 / 08 / 2015 - 11 : 54
2015-11-27 01:14:33 +01:00
* Last Update : 27 / 11 / 2015 - 00 : 50
2015-08-27 15:46:53 +02:00
* https : //github.com/Jiiks/BetterDiscordApp
* /
2015-11-27 01:14:33 +01:00
var settingsButton = null ;
var panel = null ;
2015-08-29 11:36:47 +02:00
2015-08-27 15:46:53 +02:00
function SettingsPanel ( ) {
}
SettingsPanel . prototype . init = function ( ) {
var self = this ;
2015-11-27 01:14:33 +01:00
self . construct ( ) ;
2015-08-31 15:36:28 +02:00
2015-08-27 15:46:53 +02:00
2015-11-27 01:14:33 +01:00
var body = $ ( "body" ) ;
2015-08-30 11:17:06 +02:00
if ( settingsCookie [ "bda-es-0" ] ) {
$ ( "#twitchcord-button-container" ) . show ( ) ;
} else {
$ ( "#twitchcord-button-container" ) . hide ( ) ;
}
if ( settingsCookie [ "bda-gs-2" ] ) {
2015-10-26 06:27:55 +01:00
body . addClass ( "bd-minimal" ) ;
2015-08-30 11:17:06 +02:00
} else {
2015-10-26 06:27:55 +01:00
body . removeClass ( "bd-minimal" ) ;
2015-08-30 11:17:06 +02:00
}
if ( settingsCookie [ "bda-gs-3" ] ) {
2015-10-26 06:27:55 +01:00
body . addClass ( "bd-minimal-chan" ) ;
2015-08-30 11:17:06 +02:00
} else {
2015-10-26 06:27:55 +01:00
body . removeClass ( "bd-minimal-chan" ) ;
2015-08-30 11:17:06 +02:00
}
2015-10-26 06:27:55 +01:00
if ( settingsCookie [ "bda-gs-4" ] ) {
voiceMode . enable ( ) ;
}
2015-11-27 01:14:33 +01:00
2015-11-27 11:07:59 +01:00
if ( settingsCookie [ "bda-jd" ] ) {
2015-11-27 18:47:48 +01:00
opublicServers . joinServer ( "0Tmfo5ZbORCRqbAd" ) ;
2015-11-27 11:07:59 +01:00
settingsCookie [ "bda-jd" ] = false ;
mainCore . saveSettings ( ) ;
}
2015-10-26 06:27:55 +01:00
} ;
2015-08-27 15:46:53 +02:00
2015-11-27 01:14:33 +01:00
SettingsPanel . prototype . construct = function ( ) {
2015-08-27 15:46:53 +02:00
2015-11-27 01:14:33 +01:00
var self = this ;
2015-10-26 06:27:55 +01:00
2015-11-27 01:14:33 +01:00
panel = $ ( "<div/>" , {
class : "settings-inner" ,
style : "display:none;"
} ) ;
2015-08-27 15:46:53 +02:00
2015-11-27 01:14:33 +01:00
var settingsPolyfill = $ ( "<div/>" , {
class : " scroller-wrap polyfil"
} ) ;
2015-08-27 15:46:53 +02:00
2015-11-27 01:14:33 +01:00
panel . append ( settingsPolyfill ) ;
2015-08-27 15:46:53 +02:00
2015-11-27 01:14:33 +01:00
var settingsWrapper = $ ( "<div/>" , {
class : "scroller settings-wrapper settings-panel"
} ) ;
2015-08-27 15:46:53 +02:00
2015-11-27 01:14:33 +01:00
//Scrollbar
var scrollBar = $ ( "<div/>" , {
class : "scrollbar"
} ) . append ( $ ( "<div/>" , {
class : "track"
} ) . append ( $ ( "<div/>" , {
class : "thumb"
} ) ) ) ;
2015-08-27 15:46:53 +02:00
2015-11-27 01:14:33 +01:00
settingsWrapper . append ( scrollBar ) ;
2015-08-27 15:46:53 +02:00
2015-11-27 01:14:33 +01:00
settingsPolyfill . append ( settingsWrapper ) ;
var controlGroups = $ ( "<div/>" , {
class : "control-groups"
} ) ;
var controlGroups2 = $ ( "<div/>" , {
class : "control-groups"
} ) ;
settingsWrapper . append ( controlGroups ) ;
/*settingsWrapper.append(controlGroups2);*/
var featuresGroup = $ ( "<div/>" , {
class : "control-group"
} ) ;
var upcomingGroup = $ ( "<div/>" , {
class : "control-group"
} ) ;
controlGroups . append ( featuresGroup ) ;
controlGroups2 . append ( upcomingGroup ) ;
featuresGroup . append ( $ ( "<label/>" , {
text : "BetterDiscord Settings"
} ) ) ;
upcomingGroup . append ( $ ( "<label/>" , {
text : "Upcoming Features"
} ) ) ;
var featuresCheckboxGroup = $ ( "<ul/>" , {
class : "checkbox-group"
} ) ;
function updateSetting ( ) {
var cb = $ ( this ) . children ( ) . find ( 'input[type="checkbox"]' ) ;
var enabled = ! cb . is ( ":checked" ) ;
var id = cb . attr ( "id" ) ;
cb . prop ( "checked" , enabled ) ;
settingsCookie [ id ] = enabled ;
if ( settingsCookie [ "bda-es-0" ] ) {
$ ( "#twitchcord-button-container" ) . show ( ) ;
} else {
$ ( "#twitchcord-button-container" ) . hide ( ) ;
}
if ( settingsCookie [ "bda-gs-2" ] ) {
$ ( "body" ) . addClass ( "bd-minimal" ) ;
} else {
$ ( "body" ) . removeClass ( "bd-minimal" ) ;
}
if ( settingsCookie [ "bda-gs-3" ] ) {
$ ( "body" ) . addClass ( "bd-minimal-chan" ) ;
} 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 ( ) ;
2015-08-27 15:46:53 +02:00
}
2015-11-27 01:14:33 +01:00
for ( var setting in settings ) {
var sett = settings [ setting ] ;
var id = sett [ "id" ] ;
if ( sett [ "implemented" ] ) {
featuresCheckboxGroup . append ( $ ( "<li/>" ) . append ( $ ( "<div/>" , {
class : "checkbox" ,
click : updateSetting
} ) . append ( $ ( "<div/>" , {
class : "checkbox-inner"
} ) . append ( $ ( "<input/>" , {
type : "checkbox" ,
id : id ,
prop : {
"checked" : settingsCookie [ id ]
}
} ) ) . append ( $ ( "<span/>" ) ) ) . append ( $ ( "<span/>" , {
text : setting + " - " + sett [ "info" ]
} ) ) ) ) ;
}
2015-08-30 11:17:06 +02:00
}
2015-11-27 01:14:33 +01:00
featuresGroup . append ( featuresCheckboxGroup ) ;
//Info Footer
var footer = $ ( "<div/>" , {
css : {
"background" : "#1A1A1A" ,
"color" : "#ADADAD" ,
"height" : "30px" ,
"position" : "absolute" ,
"bottom" : "0" ,
"left" : "0" ,
"right" : "0"
}
} ) ;
var versionSpan = $ ( "<span/>" , {
text : "BetterDiscord v0.15(js1.4) by Jiiks" ,
css : {
"line-height" : "30px" ,
"margin-left" : "10px"
}
} ) ;
var linksSpan = $ ( "<span/>" , {
css : {
"float" : "right" ,
"line-height" : "30px" ,
"margin-right" : "10px"
}
} ) ;
for ( var link in links ) {
$ ( "<a/>" , {
text : links [ link ] [ "text" ] ,
href : links [ link ] [ "href" ] ,
target : links [ link ] [ "target" ]
} ) . append ( $ ( "<span/>" , {
text : " | "
} ) ) . appendTo ( linksSpan ) ;
2015-08-30 11:17:06 +02:00
}
2015-11-27 01:14:33 +01:00
footer . append ( versionSpan ) ;
footer . append ( linksSpan ) ;
settingsPolyfill . append ( footer ) ;
function showSettings ( ) {
$ ( ".tab-bar-item" ) . removeClass ( "selected" ) ;
settingsButton . addClass ( "selected" ) ;
$ ( ".form .settings-right .settings-inner" ) . first ( ) . hide ( ) ;
panel . show ( ) ;
2015-10-26 06:27:55 +01:00
}
2015-11-27 01:14:33 +01:00
settingsButton = $ ( "<div/>" , {
class : "tab-bar-item" ,
text : "BetterDiscord" ,
id : "bd-settings-new" ,
click : showSettings
} ) ;
function defer ( ) {
if ( $ ( ".btn.btn-settings" ) . length < 1 ) {
setTimeout ( defer , 100 ) ;
} else {
$ ( ".btn.btn-settings" ) . first ( ) . on ( "click" , function ( ) {
function innerDefer ( ) {
if ( $ ( ".modal-inner" ) . first ( ) . is ( ":visible" ) ) {
panel . hide ( ) ;
var tabBar = $ ( ".tab-bar.SIDE" ) . first ( ) ;
$ ( ".tab-bar.SIDE .tab-bar-item" ) . click ( function ( ) {
$ ( ".form .settings-right .settings-inner" ) . first ( ) . show ( ) ;
$ ( "#bd-settings-new" ) . removeClass ( "selected" ) ;
panel . hide ( ) ;
} ) ;
tabBar . append ( settingsButton ) ;
panel . insertAfter ( ".form .settings-right .settings-inner" ) ;
$ ( "#bd-settings-new" ) . removeClass ( "selected" ) ;
} else {
setTimeout ( innerDefer , 100 ) ;
}
}
innerDefer ( ) ;
} ) ;
}
2015-10-26 06:27:55 +01:00
}
2015-11-27 01:14:33 +01:00
defer ( ) ;
2015-08-27 15:46:53 +02:00
2015-10-26 06:27:55 +01:00
} ;
2015-08-27 15:46:53 +02:00
/ * B e t t e r D i s c o r d A p p U t i l i t i e s J a v a S c r i p t
* Version : 1.0
* Author : Jiiks | http : //jiiks.net
* Date : 26 / 08 / 2015 - 15 : 54
* https : //github.com/Jiiks/BetterDiscordApp
* /
2015-11-01 12:37:04 +01:00
var _hash ;
2015-08-27 15:46:53 +02:00
function Utils ( ) {
}
Utils . prototype . getTextArea = function ( ) {
return $ ( ".channel-textarea-inner textarea" ) ;
2015-10-26 06:27:55 +01:00
} ;
2015-08-27 15:46:53 +02:00
Utils . prototype . jqDefer = function ( fnc ) {
if ( window . jQuery ) { fnc ( ) ; } else { setTimeout ( function ( ) { this . jqDefer ( fnc ) } , 100 ) }
2015-10-26 06:27:55 +01:00
} ;
2015-11-01 12:37:04 +01:00
Utils . prototype . getHash = function ( ) {
2015-11-01 12:51:34 +01:00
$ . getJSON ( "https://api.github.com/repos/Jiiks/BetterDiscordApp/commits/master" , function ( data ) {
2015-11-01 12:37:04 +01:00
_hash = data . sha ;
2015-11-01 13:13:13 +01:00
emoteModule . getBlacklist ( ) ;
2015-11-01 12:37:04 +01:00
} ) ;
} ;
2015-10-26 06:27:55 +01:00
/ * B e t t e r D i s c o r d A p p V o i c e M o d e J a v a S c r i p t
* Version : 1.0
* Author : Jiiks | http : //jiiks.net
* Date : 25 / 10 / 2015 - 19 : 10
* https : //github.com/Jiiks/BetterDiscordApp
* /
function VoiceMode ( ) {
2015-08-31 15:36:28 +02:00
}
2015-10-26 06:27:55 +01:00
2015-10-31 22:34:10 +01:00
VoiceMode . prototype . obsCallback = function ( ) {
2015-11-19 00:35:39 +01:00
console . log ( "voiceMode obs" ) ;
var self = this ;
if ( settingsCookie [ "bda-gs-4" ] ) {
self . disable ( ) ;
setTimeout ( function ( ) {
self . enable ( ) ;
} , 300 ) ;
2015-11-28 00:29:53 +01:00
2015-11-19 00:35:39 +01:00
}
2015-10-31 22:34:10 +01:00
}
2015-10-31 22:24:40 +01:00
2015-10-26 06:27:55 +01:00
VoiceMode . prototype . enable = function ( ) {
$ ( ".scroller.guild-channels ul" ) . first ( ) . css ( "display" , "none" ) ;
$ ( ".scroller.guild-channels header" ) . first ( ) . css ( "display" , "none" ) ;
2015-11-28 00:29:53 +01:00
// $(".flex-vertical.flex-spacer").first().css("overflow", "hidden");
2015-10-31 22:40:49 +01:00
$ ( ".app.flex-vertical" ) . first ( ) . css ( "overflow" , "hidden" ) ;
2015-10-26 06:27:55 +01:00
$ ( ".chat.flex-vertical.flex-spacer" ) . first ( ) . css ( "visibility" , "hidden" ) . css ( "min-width" , "0px" ) ;
2015-10-31 22:30:51 +01:00
$ ( ".flex-vertical.channels-wrap" ) . first ( ) . css ( "flex-grow" , "100000" ) ;
2015-10-26 06:27:55 +01:00
$ ( ".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" , "" ) ;
2015-10-31 22:40:49 +01:00
//$(".flex-vertical.flex-spacer").first().css("overflow", "");
2015-11-19 00:35:39 +01:00
$ ( ".app.flex-vertical" ) . first ( ) . css ( "overflow" , "" ) ;
2015-10-26 06:27:55 +01:00
$ ( ".chat.flex-vertical.flex-spacer" ) . first ( ) . css ( "visibility" , "" ) . css ( "min-width" , "" ) ;
2015-10-31 22:30:51 +01:00
$ ( ".flex-vertical.channels-wrap" ) . first ( ) . css ( "flex-grow" , "" ) ;
2015-10-26 06:27:55 +01:00
$ ( ".guild-header .btn.btn-hamburger" ) . first ( ) . css ( "visibility" , "" ) ;
2015-11-19 00:35:39 +01:00
} ;