diff --git a/.dist/localuser.js b/.dist/localuser.js index 14b10a7..500cf0d 100644 --- a/.dist/localuser.js +++ b/.dist/localuser.js @@ -365,6 +365,13 @@ class Localuser { console.log("clicked :3"); this.createGuild(); }; + const guildDiscoveryContainer = document.createElement("div"); + guildDiscoveryContainer.textContent = "🧭"; + guildDiscoveryContainer.classList.add("home", "servericon"); + serverlist.appendChild(guildDiscoveryContainer); + guildDiscoveryContainer.addEventListener("click", () => { + this.guildDiscovery(); + }); } this.unreads(); } @@ -412,6 +419,60 @@ class Localuser { ]]); full.show(); } + async guildDiscovery() { + const content = document.createElement("div"); + content.classList.add("guildy"); + content.textContent = "Loading..."; + const full = new Fullscreen(["html", content]); + full.show(); + const res = await fetch(this.info.api.toString() + "/v9/discoverable-guilds?limit=16", { + headers: this.headers + }); + const json = await res.json(); + content.innerHTML = ""; + const title = document.createElement("h2"); + title.textContent = "Guild discovery (" + json.total + " entries)"; + content.appendChild(title); + const guilds = document.createElement("div"); + guilds.id = "discovery-guild-content"; + json.guilds.forEach(guild => { + const content = document.createElement("div"); + content.classList.add("discovery-guild"); + if (guild.banner) { + const banner = document.createElement("img"); + banner.classList.add("banner"); + banner.crossOrigin = "anonymous"; + banner.src = this.info.cdn.toString() + "icons/" + guild.id + "/" + guild.banner + ".png?size=256"; + banner.alt = ""; + content.appendChild(banner); + } + const nameContainer = document.createElement("div"); + nameContainer.classList.add("flex"); + const img = document.createElement("img"); + img.classList.add("icon"); + img.crossOrigin = "anonymous"; + img.src = this.info.cdn.toString() + (guild.icon ? ("icons/" + guild.id + "/" + guild.icon + ".png?size=48") : "embed/avatars/3.png"); + img.alt = ""; + nameContainer.appendChild(img); + const name = document.createElement("h3"); + name.textContent = guild.name; + nameContainer.appendChild(name); + content.appendChild(nameContainer); + const desc = document.createElement("p"); + desc.textContent = guild.description; + content.appendChild(desc); + content.addEventListener("click", async () => { + const joinRes = await fetch(this.info.api.toString() + "/v9/guilds/" + guild.id + "/members/@me", { + method: "PUT", + headers: this.headers + }); + if (joinRes.ok) + full.hide(); + }); + guilds.appendChild(content); + }); + content.appendChild(guilds); + } messageCreate(messagep) { messagep.d.guild_id ??= "@me"; this.guildids[messagep.d.guild_id].channelids[messagep.d.channel_id].messageCreate(messagep); diff --git a/webpage/localuser.ts b/webpage/localuser.ts index 13ebd16..f327476 100644 --- a/webpage/localuser.ts +++ b/webpage/localuser.ts @@ -440,6 +440,7 @@ class Localuser{ } async guildDiscovery() { const content=document.createElement("div"); + content.classList.add("guildy"); content.textContent="Loading..."; const full=new Fullscreen(["html", content]); full.show(); @@ -465,7 +466,7 @@ class Localuser{ const banner=document.createElement("img"); banner.classList.add("banner"); banner.crossOrigin="anonymous"; - banner.src=this.info.api.toString()+"/v9/icons/"+guild.id+"/"+guild.banner+".png?size=256"; + banner.src=this.info.cdn.toString()+"icons/"+guild.id+"/"+guild.banner+".png?size=256"; banner.alt=""; content.appendChild(banner); } @@ -475,7 +476,7 @@ class Localuser{ const img=document.createElement("img"); img.classList.add("icon"); img.crossOrigin="anonymous"; - img.src=this.info.api.toString()+"/v9/"+(guild.icon ? ("icons/"+guild.id+"/"+guild.icon+".png?size=48") : "embed/avatars/3.png"); + img.src=this.info.cdn.toString()+(guild.icon ? ("icons/"+guild.id+"/"+guild.icon+".png?size=48") : "embed/avatars/3.png"); img.alt=""; nameContainer.appendChild(img); diff --git a/webpage/style.css b/webpage/style.css index bb6767d..59c7f63 100644 --- a/webpage/style.css +++ b/webpage/style.css @@ -1244,14 +1244,15 @@ span { } #discovery-guild-content { - display: grid; + display: flex; /*grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));*/ grid-template-columns: 1fr 1fr 1fr 1fr; + flex-direction: column; + min-height: 0px; + overflow: auto; } .discovery-guild { - width: 220px; - height: 175px; margin: 5px; padding: 5px; background-color: var(--discovery-bg); @@ -1259,6 +1260,7 @@ span { box-shadow: 1px 1px 7px var(--primary-text); overflow: hidden; cursor: pointer; + flex-shrink: 0; } .discovery-guild .flex { @@ -1284,3 +1286,10 @@ span { overflow-wrap: anywhere; max-width: 215px; } + +.guildy{ + height:80vh; + width:80vw; + display: flex; + flex-direction: column; +} \ No newline at end of file