A simple BlueSky profile labeler that can be ran on Cloudflare Workers
github.com/SocksTheWolf/SimpleBSkyLabeler
cf
bsky
profile
label
bluesky
cloudflare
workers
1function clearResult() {
2 document.getElementById("form-output").innerHTML = "";
3}
4const bskyHandleEl = document.getElementById("username");
5const addForm = document.getElementById("addform");
6if (bskyHandleEl !== null && addForm !== null) {
7 bskyHandleEl.value = "";
8 bskyHandleEl.addEventListener("paste", ev => {
9 ev.preventDefault();
10 clearResult();
11
12 // regex to clean up URLs
13 const linkRegex = /(?:^.*\/profile\/)([0-9a-zA-Z\-\.]+)(?:\/post\/\w+)?(?:\/)?$/gm;
14
15 // Clean any unicode trash that bsky likes to hide near handle names.
16 let inputData = ev.clipboardData.getData("text").replace(/[^\x00-\x7F]/g, "").replace("@", "");
17
18 // Convert urls into handles
19 var matches = linkRegex.exec(inputData);
20 if (matches != null && matches.length >= 2) {
21 // was a URL, convert to handle
22 bskyHandleEl.value = matches[1];
23 } else {
24 // was something else, w/e
25 bskyHandleEl.value = inputData;
26 }
27 console.log(`output: ${bskyHandleEl.value}`);
28 });
29 // clear previous results upon submit
30 addForm.addEventListener("submit", () => clearResult);
31}