This script retrieves information about a Discord server and displays it in HTML.
When I include this script everything that requires the Ajax Progress Bar does not load. If I remove it, they do load.
Could someone tell me what in the script causes this?
When I include this script everything that requires the Ajax Progress Bar does not load. If I remove it, they do load.
Could someone tell me what in the script causes this?
Code:
var discordWidget = discordWidget || (function() {
var c = {};
return {
init: function(e) {
e.serverId = typeof e.serverId !== "undefined" ? e.serverId : false;
e.title = typeof e.title !== "undefined" ? e.title : false;
e.join = typeof e.join !== "undefined" ? e.join : true;
e.alphabetical = typeof e.alphabetical !== "undefined" ? e.alphabetical : false;
e.theme = typeof e.theme !== "undefined" ? e.theme : "light";
e.hideChannels = typeof e.hideChannels !== "undefined" ? e.hideChannels : false;
e.showAllUsers = typeof e.showAllUsers !== "undefined" ? e.showAllUsers : false;
c.serverId = e.serverId;
c.title = e.title;
c.join = e.join;
c.alphabetical = e.alphabetical;
c.theme = e.theme;
c.hideChannels = e.hideChannels;
c.showAllUsers = e.showAllUsers
},
render: function() {
if (c.theme == "dark") {
b("http://discord.knightsoftheblade.com/dark.min.css", "css")
} else {
b("http://discord.knightsoftheblade.com/light.min.css", "css")
}
var e = "http://discordapp.com/api/servers/" + c.serverId + "/embed.json";
var f = new XMLHttpRequest();
f.onreadystatechange = function() {
if (f.readyState == 4 && f.status == 200) {
var g = JSON.parse(f.responseText);
d(g, c)
}
};
f.open("GET", e, true);
f.send()
}
};
function a(f, e) {
if (f.position < e.position) {
return -1
}
if (f.position > e.position) {
return 1
}
return 0
}
function d(t, g) {
var u = document.getElementsByClassName("discord-widget")[0];
var v = '<ul class="discord-tree"></ul><p class="discord-users-online"></p><p class="discord-join"></p><div class="discord-fade"></div>';
var n = "";
var k = "";
var e, q, r;
var o, f, h;
if (g.title !== false) {
u.innerHTML = '<div class="discord-title"><h3>' + g.title + "</h3></div>" + v;
e = document.getElementsByClassName("discord-tree")[0]
} else {
u.innerHTML = v;
e = document.getElementsByClassName("discord-tree")[0];
e.style.marginTop = "0"
}
q = document.getElementsByClassName("discord-users-online")[0];
r = document.getElementsByClassName("discord-join")[0];
if (g.alphabetical) {
o = [];
for (var m = 0; m < t.channels.length; m++) {
h = false;
for (var l = 0; l < g.hideChannels.length; l++) {
if (t.channels[m].name.includes(g.hideChannels[l])) {
h = true
}
}
if (!h) {
o.push(t.channels[m])
}
}
for (var m = 0; m < o.length; m++) {
n += '<li class="discord-channel">' + o[m].name + '</li><ul class="discord-userlist">';
for (var l = 0; l < t.members.length; l++) {
k = "";
if (t.members[l].game) {
k = " - " + t.members[l].game.name
}
if (t.members[l].channel_id == o[m].id) {
if (t.members[l].status != "online") {
n += '<li class="discord-user"><img src="' + t.members[l].avatar_url + '" class="discord-avatar"/><div class="discord-user-status discord-idle"></div>' + t.members[l].username + "<span>" + k + "</span></li>"
} else {
n += '<li class="discord-user"><img src="' + t.members[l].avatar_url + '" class="discord-avatar"/><div class="discord-user-status discord-online"></div>' + t.members[l].username + "<span>" + k + "</span></li>"
}
}
}
n += "</ul>"
}
} else {
o = [];
for (var m = 0; m < t.channels.length; m++) {
h = false;
for (var l = 0; l < g.hideChannels.length; l++) {
if (t.channels[m].name.includes(g.hideChannels[l])) {
h = true
}
}
if (!h) {
o.push(t.channels[m])
}
}
o.sort(a);
for (var m = 0; m < o.length; m++) {
n += '<li class="discord-channel">' + o[m].name + '</li><ul class="discord-userlist">';
for (var l = 0; l < t.members.length; l++) {
k = "";
if (t.members[l].game) {
k = " - " + t.members[l].game.name
}
if (t.members[l].channel_id == o[m].id) {
if (t.members[l].status != "online") {
n += '<li class="discord-user"><img src="' + t.members[l].avatar_url + '" class="discord-avatar"/><div class="discord-user-status discord-idle"></div>' + t.members[l].username + "<span>" + k + "</span></li>"
} else {
n += '<li class="discord-user"><img src="' + t.members[l].avatar_url + '" class="discord-avatar"/><div class="discord-user-status discord-online"></div>' + t.members[l].username + "<span>" + k + "</span></li>"
}
}
}
n += "</ul>"
}
}
if (g.showAllUsers) {
var x = document.createElement("script");
x.type = "text/javascript";
x.src = "http://code.jquery.com/jquery-1.11.3.min.js";
document.head.appendChild(x);
x.onload = function() {
$(".discord-allusers-toggle").click(function() {
$(".discord-allusers").toggle(200, function() {
if ($(this).is(":visible")) {
$(".discord-allusers-toggle").html("▼ Online Users")
} else {
$(".discord-allusers-toggle").html("▶ Online Users")
}
})
})
};
n += '<li class="discord-channel discord-allusers-toggle">▼ Online Users</li><ul class="discord-userlist discord-allusers">';
for (var l = 0; l < t.members.length; l++) {
if (!t.members[l].channel_id) {
if (t.members[l].status != "online") {
n += '<li class="discord-user"><img src="' + t.members[l].avatar_url + '" class="discord-avatar"/><div class="discord-user-status discord-idle"></div>' + t.members[l].username + "<span>" + k + "</span></li>"
} else {
n += '<li class="discord-user"><img src="' + t.members[l].avatar_url + '" class="discord-avatar"/><div class="discord-user-status discord-online"></div>' + t.members[l].username + "<span>" + k + "</span></li>"
}
}
}
n += "</ul>";
console.log("added")
}
var w = "";
if (t.instant_invite != "null") {
w = '<p class="discord-join"><a href="' + t.instant_invite + '">Join Our Discord!</a></p>'
}
e.innerHTML = n;
q.innerHTML = "Users Online: " + t.members.length;
if (g.join) {
r.innerHTML = w
} else {
r.style.display = "none"
}
}
function b(e, f) {
if (f == "css") {
var g = document.createElement("link");
g.setAttribute("rel", "stylesheet");
g.setAttribute("type", "text/css");
g.setAttribute("href", e)
}
if (typeof g != "undefined") {
document.getElementsByTagName("head")[0].appendChild(g)
}
}
}());