'use strict';window.addEventListener('load',()=>{for(let widget of document.getElementsByTagName('discord-widget')) {let id=widget.getAttribute('id')??null; let width=widget.getAttribute('width')??'350px'; let height=widget.getAttribute('height')??'500px'; let footerText=widget.getAttribute('footerText')??''; let color=widget.getAttribute('color')??'#5865f2'; let backgroundColor=widget.getAttribute('backgroundColor')??'#0c0c0d'; let textColor=widget.getAttribute('textColor')??'#fff'; let statusColor=widget.getAttribute('statusColor')??'#858585'; let head=document.createElement('widget-header'); let logo=document.createElement('widget-logo'); let count=document.createElement('widget-header-count'); head.append(logo,count); let body=document.createElement('widget-body'); if(!id)body.innerHTML='No Discord server ID was specified.'; let footer=document.createElement('widget-footer'); let footerInfo=document.createElement('widget-footer-info'); let joinButton=document.createElement('widget-button-join'); joinButton.addEventListener('click',(e)=>{if(joinButton.getAttribute('href')){window.open(joinButton.getAttribute('href')||'',joinButton.getAttribute('target')||'','');}}); footerInfo.innerText=footerText;joinButton.innerText='Join'; footer.append(footerInfo,joinButton); widget.innerHTML=''; widget.style.height=height;widget.style.width=width; widget.style.setProperty('--color',color); widget.style.setProperty('--bgColor',backgroundColor); widget.style.setProperty('--textColor',textColor); widget.style.setProperty('--buttonColor',`#${LDColor(color.replace('#',''),-10)}`); widget.style.setProperty('--statusColor',statusColor);widget.append(head,body,footer); fetch(`https://discord.com/api/guilds/${id}/widget.json`).then((data)=>{data.json().then((data)=>{count.innerHTML=`${data.presence_count||0} Online`; joinButton.setAttribute('href',data.instant_invite);joinButton.setAttribute('target','_blank');if(data.instant_invite===null||data.instant_invite===undefined)joinButton.remove(); data.members.forEach((user)=>{let member=document.createElement('widget-member'); let avatar=document.createElement('widget-member-avatar');let avatarIMG=document.createElement('img'); let status=document.createElement(`widget-member-status-${user.status}`); let name=document.createElement('widget-member-name'); let statusText=document.createElement('widget-member-status-text'); avatarIMG.src=user.avatar_url;status.classList.add('widget-member-status'); name.innerText=user.username;if(user.game){statusText.innerText=user.game.name;} avatar.append(avatarIMG,status); member.append(avatar,name,statusText); body.append(member);});});});}}); function LDColor(color,percent) {let num=parseInt(color,16); let amt=Math.round(2.55*percent); let R=(num>>16)+amt;let B=((num>>8)&0x00ff)+amt; let G=(num&0x0000ff)+amt; return(0x1000000+(R<255?(R<1?0:R):255)*0x10000+(B<255?(B<1?0:B):255)*0x100+(G<255?(G<1?0:G):255)).toString(16).slice(1);}