mirror of
https://codeberg.org/keyoxide/keyoxide-web.git
synced 2024-12-22 23:09:29 -07:00
Add function to generate profile urls
This commit is contained in:
parent
92ce753e01
commit
140f645055
1 changed files with 61 additions and 1 deletions
|
@ -658,6 +658,32 @@ async function computeWKDLocalPart(message) {
|
||||||
return encodeZBase32(new Uint8Array(hash));
|
return encodeZBase32(new Uint8Array(hash));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function generateProfileURL(data) {
|
||||||
|
if (data.input == "") {
|
||||||
|
return "Waiting for input...";
|
||||||
|
}
|
||||||
|
switch (data.source) {
|
||||||
|
case "wkd":
|
||||||
|
return `https://keyoxide.org/${data.input}`;
|
||||||
|
break;
|
||||||
|
case "hkp":
|
||||||
|
if (/.*@.*\..*/.test(data.input)) {
|
||||||
|
return `https://keyoxide.org/hkp/${data.input}`;
|
||||||
|
} else {
|
||||||
|
return `https://keyoxide.org/${data.input}`;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "keybase":
|
||||||
|
const re = /https\:\/\/keybase.io\/(.*)\/pgp_keys\.asc\?fingerprint\=(.*)/;
|
||||||
|
if (!re.test(data.input)) {
|
||||||
|
return "Incorrect Keybase public key URL.";
|
||||||
|
}
|
||||||
|
const match = data.input.match(re);
|
||||||
|
return `https://keyoxide.org/keybase/${match[1]}/${match[2]}`;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// General purpose
|
// General purpose
|
||||||
let elFormVerify = document.body.querySelector("#form-verify"),
|
let elFormVerify = document.body.querySelector("#form-verify"),
|
||||||
elFormEncrypt = document.body.querySelector("#form-encrypt"),
|
elFormEncrypt = document.body.querySelector("#form-encrypt"),
|
||||||
|
@ -666,7 +692,8 @@ let elFormVerify = document.body.querySelector("#form-verify"),
|
||||||
elProfileMode = document.body.querySelector("#profileMode"),
|
elProfileMode = document.body.querySelector("#profileMode"),
|
||||||
elModeSelect = document.body.querySelector("#modeSelect"),
|
elModeSelect = document.body.querySelector("#modeSelect"),
|
||||||
elUtilWKD = document.body.querySelector("#form-util-wkd"),
|
elUtilWKD = document.body.querySelector("#form-util-wkd"),
|
||||||
elUtilQR = document.body.querySelector("#form-util-qr");
|
elUtilQR = document.body.querySelector("#form-util-qr"),
|
||||||
|
elUtilProfileURL = document.body.querySelector("#form-util-profile-url");
|
||||||
|
|
||||||
if (elModeSelect) {
|
if (elModeSelect) {
|
||||||
elModeSelect.onchange = function (evt) {
|
elModeSelect.onchange = function (evt) {
|
||||||
|
@ -870,3 +897,36 @@ if (elUtilQR) {
|
||||||
|
|
||||||
elInput.dispatchEvent(new Event("input"));
|
elInput.dispatchEvent(new Event("input"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (elUtilProfileURL) {
|
||||||
|
elUtilProfileURL.onsubmit = function (evt) {
|
||||||
|
evt.preventDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
const elInput = document.body.querySelector("#input"),
|
||||||
|
elSource = document.body.querySelector("#source"),
|
||||||
|
elOutput = document.body.querySelector("#output");
|
||||||
|
|
||||||
|
let data = {
|
||||||
|
input: elInput.value,
|
||||||
|
source: elSource.value
|
||||||
|
};
|
||||||
|
|
||||||
|
elInput.addEventListener("input", async function(evt) {
|
||||||
|
data = {
|
||||||
|
input: elInput.value,
|
||||||
|
source: elSource.value
|
||||||
|
};
|
||||||
|
elOutput.innerText = await generateProfileURL(data);
|
||||||
|
});
|
||||||
|
|
||||||
|
elSource.addEventListener("input", async function(evt) {
|
||||||
|
data = {
|
||||||
|
input: elInput.value,
|
||||||
|
source: elSource.value
|
||||||
|
};
|
||||||
|
elOutput.innerText = await generateProfileURL(data);
|
||||||
|
});
|
||||||
|
|
||||||
|
elInput.dispatchEvent(new Event("input"));
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue