Browse Source

remove relay suffix

master
Silberengel 1 week ago
parent
commit
8b3c3037b6
  1. 4
      src/relayManager.ts
  2. 16
      src/ui/settingsTab.ts

4
src/relayManager.ts

@ -136,6 +136,7 @@ export async function fetchRelayList(
/** /**
* Normalize a relay URL * Normalize a relay URL
* - Removes /ReadWrite, /Read, /Write suffixes
* - Removes trailing slashes * - Removes trailing slashes
* - Ensures lowercase * - Ensures lowercase
* - Validates wss:// or ws:// protocol * - Validates wss:// or ws:// protocol
@ -145,6 +146,9 @@ export function normalizeRelayUrl(url: string): string {
let normalized = url.trim().toLowerCase(); let normalized = url.trim().toLowerCase();
// Remove /ReadWrite, /Read, /Write suffixes (case insensitive)
normalized = normalized.replace(/\/(readwrite|read|write)\/?$/i, "");
// Remove trailing slashes // Remove trailing slashes
normalized = normalized.replace(/\/+$/, ""); normalized = normalized.replace(/\/+$/, "");

16
src/ui/settingsTab.ts

@ -256,14 +256,22 @@ export class ScriptoriumSettingTab extends PluginSettingTab {
containerEl.createEl("h4", { text: "Current Relays" }); containerEl.createEl("h4", { text: "Current Relays" });
this.plugin.settings.relayList.forEach((relay, index) => { this.plugin.settings.relayList.forEach((relay, index) => {
const relayDiv = containerEl.createDiv({ cls: "scriptorium-relay-item" }); const relayDiv = containerEl.createDiv({ cls: "scriptorium-relay-item" });
relayDiv.createSpan({ text: relay.url });
// Display URL without ReadWrite suffix
const urlSpan = relayDiv.createSpan({ text: relay.url });
urlSpan.style.fontFamily = "monospace";
urlSpan.style.marginRight = "8px";
// Display permissions as badges
const badges = relayDiv.createSpan({ cls: "scriptorium-relay-badges" }); const badges = relayDiv.createSpan({ cls: "scriptorium-relay-badges" });
if (relay.read) { if (relay.read && relay.write) {
badges.createSpan({ text: "Read/Write", cls: "scriptorium-badge" });
} else if (relay.read) {
badges.createSpan({ text: "Read", cls: "scriptorium-badge" }); badges.createSpan({ text: "Read", cls: "scriptorium-badge" });
} } else if (relay.write) {
if (relay.write) {
badges.createSpan({ text: "Write", cls: "scriptorium-badge" }); badges.createSpan({ text: "Write", cls: "scriptorium-badge" });
} }
new Setting(relayDiv) new Setting(relayDiv)
.addButton((button) => { .addButton((button) => {
button.setButtonText("Remove") button.setButtonText("Remove")

Loading…
Cancel
Save