Updates to fix errors for CC

This commit is contained in:
MathMan05 2024-08-21 14:51:34 -05:00
parent 3ccb7e63e1
commit 274c165357
22 changed files with 731 additions and 926 deletions

View file

@ -1,116 +1,118 @@
import { getBulkUsers, getapiurls } from "./login.js";
const users = getBulkUsers();
const well = new URLSearchParams(window.location.search).get("instance");
const joinable = [];
for (const thing in users.users) {
const user = users.users[thing];
if (user.serverurls.wellknown.includes(well)) {
joinable.push(user);
}
console.log(users.users[thing]);
}
let urls;
if (!joinable.length) {
const out = await getapiurls(well);
if (out) {
urls = out;
for (const thing in users.users) {
const user = users.users[thing];
if (user.serverurls.api.includes(out.api)) {
joinable.push(user);
}
console.log(users.users[thing]);
(async () => {
const users = getBulkUsers();
const well = new URLSearchParams(window.location.search).get("instance");
const joinable = [];
for (const thing in users.users) {
const user = users.users[thing];
if (user.serverurls.wellknown.includes(well)) {
joinable.push(user);
}
console.log(users.users[thing]);
}
else {
throw Error("someone needs to handle the case where the servers don't exist");
}
}
else {
urls = joinable[0].serverurls;
}
if (!joinable.length) {
document.getElementById("AcceptInvite").textContent = "Create an account to accept the invite";
}
const code = window.location.pathname.split("/")[2];
let guildinfo;
fetch(`${urls.api}/invites/${code}`, {
method: "GET"
}).then(_ => _.json()).then(json => {
const guildjson = json.guild;
guildinfo = guildjson;
document.getElementById("invitename").textContent = guildjson.name;
document.getElementById("invitedescription").textContent =
`${json.inviter.username} invited you to join ${guildjson.name}`;
if (guildjson.icon) {
const img = document.createElement("img");
img.src = `${urls.cdn}/icons/${guildjson.id}/${guildjson.icon}.png`;
img.classList.add("inviteGuild");
document.getElementById("inviteimg").append(img);
}
else {
const txt = guildjson.name.replace(/'s /g, " ").replace(/\w+/g, word => word[0]).replace(/\s/g, "");
const div = document.createElement("div");
div.textContent = txt;
div.classList.add("inviteGuild");
document.getElementById("inviteimg").append(div);
}
});
function showAccounts() {
const table = document.createElement("dialog");
for (const thing of Object.values(joinable)) {
const specialuser = thing;
console.log(specialuser.pfpsrc);
const userinfo = document.createElement("div");
userinfo.classList.add("flexltr", "switchtable");
const pfp = document.createElement("img");
userinfo.append(pfp);
const user = document.createElement("div");
userinfo.append(user);
user.append(specialuser.username);
user.append(document.createElement("br"));
const span = document.createElement("span");
span.textContent = specialuser.serverurls.wellknown.replace("https://", "").replace("http://", "");
user.append(span);
user.classList.add("userinfo");
span.classList.add("serverURL");
pfp.src = specialuser.pfpsrc;
pfp.classList.add("pfp");
table.append(userinfo);
userinfo.addEventListener("click", _ => {
console.log(thing);
fetch(`${urls.api}/invites/${code}`, {
method: "POST",
headers: {
Authorization: thing.token
let urls;
if (!joinable.length) {
const out = await getapiurls(well);
if (out) {
urls = out;
for (const thing in users.users) {
const user = users.users[thing];
if (user.serverurls.api.includes(out.api)) {
joinable.push(user);
}
}).then(_ => {
users["currentuser"] = specialuser.uid;
localStorage.setItem("userinfos", JSON.stringify(users));
window.location.href = "/channels/" + guildinfo.id;
});
});
}
{
const td = document.createElement("div");
td.classList.add("switchtable");
td.append("Login or create an account ⇌");
td.addEventListener("click", _ => {
const l = new URLSearchParams("?");
l.set("goback", window.location.href);
l.set("instance", well);
window.location.href = "/login?" + l.toString();
});
if (!joinable.length) {
const l = new URLSearchParams("?");
l.set("goback", window.location.href);
l.set("instance", well);
window.location.href = "/login?" + l.toString();
console.log(users.users[thing]);
}
}
else {
throw Error("someone needs to handle the case where the servers don't exist");
}
table.append(td);
}
table.classList.add("accountSwitcher");
console.log(table);
document.body.append(table);
}
document.getElementById("AcceptInvite").addEventListener("click", showAccounts);
else {
urls = joinable[0].serverurls;
}
if (!joinable.length) {
document.getElementById("AcceptInvite").textContent = "Create an account to accept the invite";
}
const code = window.location.pathname.split("/")[2];
let guildinfo;
fetch(`${urls.api}/invites/${code}`, {
method: "GET"
}).then(_ => _.json()).then(json => {
const guildjson = json.guild;
guildinfo = guildjson;
document.getElementById("invitename").textContent = guildjson.name;
document.getElementById("invitedescription").textContent =
`${json.inviter.username} invited you to join ${guildjson.name}`;
if (guildjson.icon) {
const img = document.createElement("img");
img.src = `${urls.cdn}/icons/${guildjson.id}/${guildjson.icon}.png`;
img.classList.add("inviteGuild");
document.getElementById("inviteimg").append(img);
}
else {
const txt = guildjson.name.replace(/'s /g, " ").replace(/\w+/g, word => word[0]).replace(/\s/g, "");
const div = document.createElement("div");
div.textContent = txt;
div.classList.add("inviteGuild");
document.getElementById("inviteimg").append(div);
}
});
function showAccounts() {
const table = document.createElement("dialog");
for (const thing of Object.values(joinable)) {
const specialuser = thing;
console.log(specialuser.pfpsrc);
const userinfo = document.createElement("div");
userinfo.classList.add("flexltr", "switchtable");
const pfp = document.createElement("img");
userinfo.append(pfp);
const user = document.createElement("div");
userinfo.append(user);
user.append(specialuser.username);
user.append(document.createElement("br"));
const span = document.createElement("span");
span.textContent = specialuser.serverurls.wellknown.replace("https://", "").replace("http://", "");
user.append(span);
user.classList.add("userinfo");
span.classList.add("serverURL");
pfp.src = specialuser.pfpsrc;
pfp.classList.add("pfp");
table.append(userinfo);
userinfo.addEventListener("click", _ => {
console.log(thing);
fetch(`${urls.api}/invites/${code}`, {
method: "POST",
headers: {
Authorization: thing.token
}
}).then(_ => {
users["currentuser"] = specialuser.uid;
localStorage.setItem("userinfos", JSON.stringify(users));
window.location.href = "/channels/" + guildinfo.id;
});
});
}
{
const td = document.createElement("div");
td.classList.add("switchtable");
td.append("Login or create an account ⇌");
td.addEventListener("click", _ => {
const l = new URLSearchParams("?");
l.set("goback", window.location.href);
l.set("instance", well);
window.location.href = "/login?" + l.toString();
});
if (!joinable.length) {
const l = new URLSearchParams("?");
l.set("goback", window.location.href);
l.set("instance", well);
window.location.href = "/login?" + l.toString();
}
table.append(td);
}
table.classList.add("accountSwitcher");
console.log(table);
document.body.append(table);
}
document.getElementById("AcceptInvite").addEventListener("click", showAccounts);
});