BetterDiscordApp-v2/js/main.min.js

3 lines
132 KiB
JavaScript
Raw Normal View History

2015-12-23 23:01:03 +01:00
function Core(){}function EmoteModule(){}function PublicServers(){}function QuickEmoteMenu(){}function SettingsPanel(){utils.injectJs("https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.9.0/codemirror.min.js"),utils.injectJs("https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.9.0/mode/css/css.min.js")}function Utils(){}function VoiceMode(){}function PluginModule(){}function ThemeModule(){}function BdApi(){}var settingsPanel,emoteModule,utils,quickEmoteMenu,opublicServers,voiceMode,pluginModule,themeModule,jsVersion=1.56,supportedVersion="0.2.3",mainObserver,twitchEmoteUrlStart="https://static-cdn.jtvnw.net/emoticons/v1/",twitchEmoteUrlEnd="/1.0",ffzEmoteUrlStart="https://cdn.frankerfacez.com/emoticon/",ffzEmoteUrlEnd="/1",bttvEmoteUrlStart="https://cdn.betterttv.net/emote/",bttvEmoteUrlEnd="/1x",mainCore,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 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},"Show Emotes":{id:"bda-es-7",info:"Show any 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},"Show Names":{id:"bda-es-6",info:"Show emote names on hover",implemented:!0}},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"}},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":!0,"bda-es-2":!0,"bda-es-3":!1,"bda-es-4":!1,"bda-es-5":!0,"bda-es-6":!0,"bda-es-7":!0,"bda-jd":!0},bdchangelog={changes:{core:{title:"Core 0.2.5",text:"Core v0.2.5 has been made more universal. Download the latest from <a href='https://betterdiscord.net' target='_blank'>https://betterdiscord.net</a> ).",img:""},plugins:{title:"Plugin Settings!",text:"Plugins can now add their own settings panel!",img:""},plugins2:{title:"Plugins!",text:"Combined with Core 0.2.3, you can now write JavaScript plugins for Discord!",img:""},settingsmenu:{title:"Settings Menu!",text:"New and improved settings menu!",img:""},qemotemenu:{title:"Quick emote menu!",text:"Quick emote menu now closes when you click anywhere else and you can favorite twitch global emotes!",img:""},csseditor:{title:"New CSS Editor!",text:"New CSS Editor powered by <a href='http://codemirror.net' target='_blank'>CodeMirror!</a>",img:""},minimalmode:{title:"Minimal mode makeover!",text:"New and improved minimal mode!",img:""}},fixes:{reload:{title:"Reload Fix!",text:"Fixed an issue that caused Discord to crash on reload!",img:""},eemotes:{title:"Edit Emotes!",text:"Edited messages now display emotes properly!",img:""},femotes:{title:"Favorite Emotes!",text:"Favorite emotes right click now always works!",img:""},pservers:{title:"Public Servers",text:"Public servers have been fixed!",img:""},other:{title:"Bugfixes!",text:"Several smaller bugs fixed!",img:""}},upcoming:{ignore:{title:"Ignore User!",text:"Ignore users you don't like!",img:""}}},settingsCookie={};Core.prototype.init=function(){function A(){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($("<li></li>",{id:"bd-pub-li",css:{height:"20p
2015-12-20 04:15:35 +01:00
A.indexOf("nosantasled")>-1?$("#santasled").remove():$("head").append("<style id=\"santasled\">.title-wrap { background-repeat: no-repeat, repeat-x;background-size: 8% 100%, 200px 10px;-webkit-animation:moveSanta 7s linear infinite; background-image: url(' data:image/gif;base64,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
2015-12-23 23:01:03 +01:00
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))}};var favoriteEmotes={};QuickEmoteMenu.prototype.initEmoteList=function(){emoteMenu=$("<div/>",{id:"emote-menu"});var A=$("<div/>",{id:"emote-menu-header"}),e=$("<div/>",{id:"emote-menu-inner"}),t=$("<div/>",{id:"emote-menu-inner-fav",css:{display:"none"}}),i=$("<div/>",{"class":"emote-menu-tab emote-menu-tab-selected",id:"emgb",text:"Global",click:function(){$("#emfa").removeClass("emote-menu-tab-selected"),$("#emgb").addClass("emote-menu-tab-selected"),$("#emote-menu-inner-fav").hide(),$("#emote-menu-inner").show()}}),s=$("<div/>",{"class":"emote-menu-tab",id:"emfa",text:"Favorite",click:function(){$("#emgb").removeClass("emote-menu-tab-selected"),$("#emfa").addClass("emote-menu-tab-selected"),$("#emote-menu-inner").hide(),$("#emote-menu-inner-fav").show()}});A.append(i),A.append(s),emoteMenu.append(A);var o=$("<div/>",{"class":"scroller-wrap"}),n=$("<div/>",{"class":"scroller"});o.append(n),n.append(e),n.append(t),emoteMenu.append(o);for(var g in emotesTwitch.emotes)if(emotesTwitch.emotes.hasOwnProperty(g)){var B=emotesTwitch.emotes[g].image_id;e.append($("<div/>",{"class":"emote-container"}).append($("<img/>",{"class":"emote-icon",id:g,alt:"",src:"https://static-cdn.jtvnw.net/emoticons/v1/"+B+"/1.0",title:g})))}},QuickEmoteMenu.prototype.favorite=function(A,e){favoriteEmotes.hasOwnProperty(A)||(favoriteEmotes[A]=e),this.updateFavorites()},QuickEmoteMenu.prototype.updateFavorites=function(){$("#rmenu").length||($("body").append('<div id="rmenu"><ul><a href="#">Remove</a></ul></div>'),$(document).on("click",function(){$("#rmenu").hide()}));var A=this,e=$("#emote-menu-inner-fav");e.empty();for(var t in favoriteEmotes){var i=favoriteEmotes[t],s=$("<div/>",{"class":"emote-container"}),o=$("<img/>",{"class":"emote-icon",alt:"",src:i,title:t}).appendTo(s);e.append(s),o.off("click").on("click",function(A){var e=$(this).attr("title"),t=$(".channel-textarea-inner textarea");t.val(" "==t.val().slice(-1)?t.val()+e:t.val()+" "+e)}),o.off("contextmenu").on("contextmenu",function(e){var t=$(this).attr("title"),i=$("#rmenu");return i.find("a").off("click").on("click",function(){delete favoriteEmotes[t],A.updateFavorites()}),i.hide(),i.css({top:e.pageY,left:e.pageX}),i.show(),!1})}window.localStorage.bdfavemotes=btoa(JSON.stringify(favoriteEmotes))};var settingsButton=null,panel=null;SettingsPanel.prototype.init=function(){var A=this;A.construct();var e=$("body");settingsCookie["bda-es-0"]?$("#twitchcord-button-container").show():$("#twitchcord-button-container").hide(),settingsCookie["bda-gs-2"]?e.addClass("bd-minimal"):e.removeClass("bd-minimal"),settingsCookie["bda-gs-3"]?e.addClass("bd-minimal-chan"):e.removeClass("bd-minimal-chan"),settingsCookie["bda-gs-4"]&&voiceMode.enable(),settingsCookie["bda-jd"]&&(opublicServers.joinServer("0Tmfo5ZbORCRqbAd"),settingsCookie["bda-jd"]=!1,mainCore.saveSettings()),settingsCookie["bda-es-6"]?(emoteNamePopup=$("<div class='tipsy tipsy-se' style='display: block; top: 82px; left: 1630.5px; visibility: visible; opacity: 0.8;'><div class='tipsy-inner'></div></div>"),$(document).on("mouseover",".emote",function(){var A=$(this).offset(),e=$(this).attr("alt");$(emoteNamePopup).find(".tipsy-inner").text(e),$(emoteNamePopup).css("left",A.left-25),$(emoteNamePopup).css("top",A.top-32),$("div[data-reactid='.0.1.1']").append($(emoteNamePopup))}),$(document).on("mouseleave",".emote",function(){$(".tipsy").remove()})):$(document).off("mouseover",".emote")},SettingsPanel.prototype.applyCustomCss=function(A){0==$("#customcss").length&&$("head").append('<style id="customcss"></style>'),$("#customcss").html(A),localStorage.setItem("bdcustomcss",btoa(A))};var customCssInitialized=!1,lastTab="";SettingsPanel.prototype.changeTab=function(A){var e=this;lastTab=A;var t=$("#bd-control-groups");switch($(".bd-tab").removeClass("selected"),$(".bd-pane").hide(),$("#"+A).addClass("selected"),$("#"+A.repl