Discovery fixes

This commit is contained in:
MathMan05 2024-07-01 14:26:45 -05:00
parent 04112732ae
commit b848a812e1
3 changed files with 76 additions and 5 deletions

View file

@ -365,6 +365,13 @@ class Localuser {
console.log("clicked :3"); console.log("clicked :3");
this.createGuild(); this.createGuild();
}; };
const guildDiscoveryContainer = document.createElement("div");
guildDiscoveryContainer.textContent = "🧭";
guildDiscoveryContainer.classList.add("home", "servericon");
serverlist.appendChild(guildDiscoveryContainer);
guildDiscoveryContainer.addEventListener("click", () => {
this.guildDiscovery();
});
} }
this.unreads(); this.unreads();
} }
@ -412,6 +419,60 @@ class Localuser {
]]); ]]);
full.show(); 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) { messageCreate(messagep) {
messagep.d.guild_id ??= "@me"; messagep.d.guild_id ??= "@me";
this.guildids[messagep.d.guild_id].channelids[messagep.d.channel_id].messageCreate(messagep); this.guildids[messagep.d.guild_id].channelids[messagep.d.channel_id].messageCreate(messagep);

View file

@ -440,6 +440,7 @@ class Localuser{
} }
async guildDiscovery() { async guildDiscovery() {
const content=document.createElement("div"); const content=document.createElement("div");
content.classList.add("guildy");
content.textContent="Loading..."; content.textContent="Loading...";
const full=new Fullscreen(["html", content]); const full=new Fullscreen(["html", content]);
full.show(); full.show();
@ -465,7 +466,7 @@ class Localuser{
const banner=document.createElement("img"); const banner=document.createElement("img");
banner.classList.add("banner"); banner.classList.add("banner");
banner.crossOrigin="anonymous"; 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=""; banner.alt="";
content.appendChild(banner); content.appendChild(banner);
} }
@ -475,7 +476,7 @@ class Localuser{
const img=document.createElement("img"); const img=document.createElement("img");
img.classList.add("icon"); img.classList.add("icon");
img.crossOrigin="anonymous"; 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=""; img.alt="";
nameContainer.appendChild(img); nameContainer.appendChild(img);

View file

@ -1244,14 +1244,15 @@ span {
} }
#discovery-guild-content { #discovery-guild-content {
display: grid; display: flex;
/*grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));*/ /*grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));*/
grid-template-columns: 1fr 1fr 1fr 1fr; grid-template-columns: 1fr 1fr 1fr 1fr;
flex-direction: column;
min-height: 0px;
overflow: auto;
} }
.discovery-guild { .discovery-guild {
width: 220px;
height: 175px;
margin: 5px; margin: 5px;
padding: 5px; padding: 5px;
background-color: var(--discovery-bg); background-color: var(--discovery-bg);
@ -1259,6 +1260,7 @@ span {
box-shadow: 1px 1px 7px var(--primary-text); box-shadow: 1px 1px 7px var(--primary-text);
overflow: hidden; overflow: hidden;
cursor: pointer; cursor: pointer;
flex-shrink: 0;
} }
.discovery-guild .flex { .discovery-guild .flex {
@ -1284,3 +1286,10 @@ span {
overflow-wrap: anywhere; overflow-wrap: anywhere;
max-width: 215px; max-width: 215px;
} }
.guildy{
height:80vh;
width:80vw;
display: flex;
flex-direction: column;
}