From 3768f07c76f2a192384dadffac13600013e4d28f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A2u=20Cao?= Date: Fri, 18 Oct 2024 18:29:10 +0200 Subject: [PATCH] Remove client-side nostr discovery --- .../settings/nostr_pubkey_controller.js | 180 +----------------- config/importmap.rb | 1 - vendor/gems/nostr | 1 - 3 files changed, 1 insertion(+), 181 deletions(-) delete mode 160000 vendor/gems/nostr diff --git a/app/javascript/controllers/settings/nostr_pubkey_controller.js b/app/javascript/controllers/settings/nostr_pubkey_controller.js index 9bf07da..4de30e5 100644 --- a/app/javascript/controllers/settings/nostr_pubkey_controller.js +++ b/app/javascript/controllers/settings/nostr_pubkey_controller.js @@ -1,14 +1,8 @@ import { Controller } from "@hotwired/stimulus" -import { Nostrify } from "nostrify" // Connects to data-controller="settings--nostr-pubkey" export default class extends Controller { - static targets = [ - "noExtension", - "setPubkey", "pubkeyBech32Input", - "relayList", "relayListStatus", - "profileStatusNip05", "profileStatusLud16" - ] + static targets = [ "noExtension", "setPubkey", "pubkeyBech32Input" ] static values = { userAddress: String, pubkeyHex: String, @@ -21,14 +15,6 @@ export default class extends Controller { if (this.hasSetPubkeyTarget) { this.setPubkeyTarget.disabled = false } - - if (this.pubkeyHexValue) { - // this.discoverUserOnNostr().then(() => { - // this.renderRelayStatus() - // this.renderProfileNip05Status() - // this.renderProfileLud16Status() - // }) - } } else { this.noExtensionTarget.classList.remove("hidden") } @@ -63,172 +49,8 @@ export default class extends Controller { } } - async discoverUserOnNostr () { - this.nip65Relays = await this.findUserRelays() - this.profile = await this.findUserProfile() - } - - async findUserRelays () { - const controller = new AbortController(); - const signal = controller.signal; - const filters = [{ kinds: [10002], authors: [this.pubkeyHexValue], limit: 1 }] - const messages = [] - - for await (const msg of this.discoveryPool.req(filters, { signal })) { - if (msg[0] === 'EVENT') { - if (!messages.find(m => m.id === msg[2].id)) { - messages.push(msg[2]) - } - } - if (msg[0] === 'EOSE') { break } - } - - // Close the relay subscription - controller.abort() - if (messages.length === 0) { return messages } - - const sortedMessages = messages.sort((a, b) => a.createdAt - b.createdAt) - const newestMessage = messages[messages.length - 1] - - return newestMessage.tags.filter(t => t[0] === 'r') - .map(t => { return { url: t[1], marker: t[2] } }) - } - - async findUserProfile () { - const controller = new AbortController(); - const signal = controller.signal; - const filters = [{ kinds: [0], authors: [this.pubkeyHexValue], limit: 1 }] - const messages = [] - - for await (const msg of this.discoveryPool.req(filters, { signal })) { - if (msg[0] === 'EVENT') { - if (!messages.find(m => m.id === msg[2].id)) { - messages.push(msg[2]) - } - } - if (msg[0] === 'EOSE') { break } - } - - // Close the relay subscription - controller.abort() - if (messages.length === 0) { return null } - - const sortedMessages = messages.sort((a, b) => a.createdAt - b.createdAt) - const newestMessage = messages[messages.length - 1] - - return JSON.parse(newestMessage.content) - } - - renderRelayStatus () { - let showStatus - - if (this.nip65Relays.length > 0) { - if (this.relaysContainAccountsRelay) { - showStatus = 'green' - } else { - showStatus = 'orange' - } - } else { - showStatus = 'red' - } - // showStatus = 'red' - - this.relayListStatusTarget - .querySelector(`.status-${showStatus}`) - .classList.remove("hidden") - } - - renderProfileNip05Status () { - let showStatus - - if (this.profile?.nip05) { - if (this.profile.nip05 === this.userAddressValue) { - showStatus = 'green' - } else { - showStatus = 'red' - } - } else { - showStatus = 'orange' - } - - this.profileStatusNip05Target - .querySelector(`.status-${showStatus}`) - .classList.remove("hidden") - } - - renderProfileLud16Status () { - let showStatus - - if (this.profile?.lud16) { - if (this.profile.lud16 === this.userAddressValue) { - showStatus = 'green' - } else { - showStatus = 'red' - } - } else { - showStatus = 'orange' - } - - this.profileStatusLud16Target - .querySelector(`.status-${showStatus}`) - .classList.remove("hidden") - } - - // renderRelayList (relays) { - // const html = relays.map(relay => ` - //
  • - // ${relay.url} - // - //
  • - // `).join("") - // - // this.relayListTarget.innerHTML = html - // } - get csrfToken () { const element = document.head.querySelector('meta[name="csrf-token"]') return element.getAttribute("content") } - - // Used to find a user's profile and relays - get discoveryRelays () { - return [ - 'ws://localhost:4777', - 'wss://nostr.kosmos.org', - 'wss://purplepag.es', - // 'wss://relay.nostr.band', - // 'wss://njump.me', - // 'wss://relay.damus.io', - // 'wss://nos.lol', - // 'wss://eden.nostr.land', - // 'wss://relay.snort.social', - // 'wss://nostr.wine', - // 'wss://relay.primal.net', - // 'wss://nostr.bitcoiner.social', - ] - } - - get discoveryPool () { - if (!this._discoveryPool) { - this._discoveryPool = new Nostrify.NPool({ - open: (url) => new Nostrify.NRelay1(url), - reqRouter: async (filters) => new Map( - this.discoveryRelays.map(relayUrl => [ relayUrl, filters ]) - ), - eventRouter: async (event) => [], - }) - } - - return this._discoveryPool - } - - get relaysContainAccountsRelay () { - // TODO use URL from view/settings - return !!this.nip65Relays.find(r => r.url.match('wss://nostr.kosmos.org')) - } } diff --git a/config/importmap.rb b/config/importmap.rb index d6d00ff..cb396cc 100644 --- a/config/importmap.rb +++ b/config/importmap.rb @@ -6,4 +6,3 @@ pin "@hotwired/stimulus", to: "stimulus.min.js", preload: true pin "@hotwired/stimulus-loading", to: "stimulus-loading.js", preload: true pin_all_from "app/javascript/controllers", under: "controllers" pin "tailwindcss-stimulus-components" # @4.0.3 -pin "nostrify" diff --git a/vendor/gems/nostr b/vendor/gems/nostr deleted file mode 160000 index 44e7454..0000000 --- a/vendor/gems/nostr +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 44e7454990cffc66167254db9703fda642799588