diff --git a/ui/noogle/src/components/ImageGeneration.vue b/ui/noogle/src/components/ImageGeneration.vue index 5be95f0..3ca88a6 100644 --- a/ui/noogle/src/components/ImageGeneration.vue +++ b/ui/noogle/src/components/ImageGeneration.vue @@ -32,7 +32,9 @@ let listener = false - +const sleep = (ms) => { + return new Promise(resolve => setTimeout(resolve, ms)) +} async function generate_image(message) { try { @@ -90,22 +92,21 @@ async function listen() { //const dvmname = getNamefromId(event.author.toHex()) console.log("Received new event from", relayUrl); let resonsetorequest = false - for (let tag in event.tags) { - if (event.tags[tag].asVec()[0] === "e") { - console.log("IMAGE ETAG: " + event.tags[tag].asVec()[1]) - console.log("IMAGE LISTEN TO : " + store.state.requestidImage) - if (event.tags[tag].asVec()[1] === store.state.requestidImage) { - resonsetorequest = true + sleep(500).then(async () => { + for (let tag in event.tags) { + if (event.tags[tag].asVec()[0] === "e") { + console.log("IMAGE ETAG: " + event.tags[tag].asVec()[1]) + console.log("IMAGE LISTEN TO : " + store.state.requestidImage) + if (event.tags[tag].asVec()[1] === store.state.requestidImage) { + resonsetorequest = true + } + } + } - } - - } - if (resonsetorequest === true) { + if (resonsetorequest === true) { - - if (event.kind === 7000) { - + if (event.kind === 7000) { try { @@ -167,19 +168,17 @@ async function listen() { } + } else if (event.kind === 6100) { + let entries = [] + console.log("6100:", event.content); + + //miniToastr.showMessage("DVM: " + dvmname, "Received Results", VueNotifications.types.success) + dvms.find(i => i.id === event.author.toHex()).result = event.content + dvms.find(i => i.id === event.author.toHex()).status = "finished" + store.commit('set_imagedvm_results', dvms) } - - - else if(event.kind === 6100) { - let entries = [] - console.log("6100:", event.content); - - //miniToastr.showMessage("DVM: " + dvmname, "Received Results", VueNotifications.types.success) - dvms.find(i => i.id === event.author.toHex()).result = event.content - dvms.find(i => i.id === event.author.toHex()).status = "finished" - store.commit('set_imagedvm_results', dvms) - } - } + } + }) }, // Handle relay message handleMsg: async (relayUrl, message) => { diff --git a/ui/noogle/src/components/Nip07.vue b/ui/noogle/src/components/Nip07.vue index 5130803..877fdb4 100644 --- a/ui/noogle/src/components/Nip07.vue +++ b/ui/noogle/src/components/Nip07.vue @@ -132,8 +132,8 @@ export default { this.signer = ClientSigner.keys(Keys.generate()) } - let zapper = ClientZapper.webln() - let client = new ClientBuilder().signer(this.signer).zapper(zapper).build(); + //let zapper = ClientZapper.webln() + let client = new ClientBuilder().signer(this.signer).build(); for (const relay of store.state.relays){ await client.addRelay(relay); diff --git a/ui/noogle/src/components/Search.vue b/ui/noogle/src/components/Search.vue index 303b870..be0c4d7 100644 --- a/ui/noogle/src/components/Search.vue +++ b/ui/noogle/src/components/Search.vue @@ -9,7 +9,7 @@ import { EventBuilder, Tag, EventId, - Nip19Event + Nip19Event, Alphabet } from "@rust-nostr/nostr-sdk"; import store from '../store'; import miniToastr from "mini-toastr"; @@ -73,7 +73,9 @@ async function send_search_request(message) { let evt = new EventBuilder(5302, "NIP 90 Search request", tags) let res = await client.sendEventBuilder(evt) let requestid = res.toHex() + console.log("STORE: " +store.state.requestidSearch) store.commit('set_current_request_id_search', requestid) + console.log("STORE AFTER: " + store.state.requestidSearch) //miniToastr.showMessage("Sent Request to DVMs", "Awaiting results", VueNotifications.types.warn) @@ -127,6 +129,7 @@ async function listen() { listener = true let client = store.state.client let pubkey = store.state.pubkey + let originale = [store.state.requestidSearch] const filter = new Filter().kinds([7000, 6302]).pubkey(pubkey).since(Timestamp.now()); await client.subscribe([filter]); @@ -137,23 +140,27 @@ async function listen() { if (store.state.hasEventListener === false){ return true } - const dvmname = getNamefromId(event.author.toHex()) + //const dvmname = getNamefromId(event.author.toHex()) console.log("Received new event from", relayUrl); let resonsetorequest = false - for (let tag in event.tags) { - if (event.tags[tag].asVec()[0] === "e") { - console.log("SEARCH ETAG: " + event.tags[tag].asVec()[1]) - console.log("SEARCH LISTEN TO : " + store.state.requestidSearch) - //if (event.tags[tag].asVec()[1] === store.state.requestidSearch) { - resonsetorequest = true - //} + + sleep(500).then(async () => { + + for (let tag in event.tags) { + if (event.tags[tag].asVec()[0] === "e") { + console.log("SEARCH ETAG: " + event.tags[tag].asVec()[1]) + console.log("SEARCH LISTEN TO : " + store.state.requestidSearch) + if (event.tags[tag].asVec()[1] === store.state.requestidSearch) { + resonsetorequest = true + } + } + } - } - if(resonsetorequest){ + if (resonsetorequest) { - if (event.kind === 7000) { - try { + if (event.kind === 7000) { + try { console.log("7000: ", event.content); console.log("DVM: " + event.author.toHex()) searching = false @@ -195,7 +202,6 @@ async function listen() { jsonentry.name = el.name jsonentry.about = event.content jsonentry.image = el.image - console.log(jsonentry) } @@ -204,9 +210,8 @@ async function listen() { dvms.push(jsonentry) } - dvms.find(i => i.id === jsonentry.id).status = status - if(status === "error"){ + if (status === "error") { const index = dvms.indexOf((dvms.find(i => i.id === event.author.toHex()))); if (index > -1) { dvms.splice(index, 1); @@ -214,80 +219,77 @@ async function listen() { } store.commit('set_active_search_dvms', dvms) - + console.log(store.state.activesearchdvms) } catch (error) { console.log("Error: ", error); } - - } + else if (event.kind === 6302) { + let entries = [] + console.log("6302:", event.content); + + //miniToastr.showMessage("DVM: " + dvmname, "Received Results", VueNotifications.types.success) + let event_etags = JSON.parse(event.content) + if (event_etags.length > 0) { + for (let etag of event_etags) { + const eventid = EventId.fromHex(etag[1]) + entries.push(eventid) + } + const events = await getEvents(entries) + let authors = [] + for (const evt of events) { + authors.push(evt.author) + } + if (authors.length > 0) { + let profiles = await get_user_infos(authors) + for (const evt of events) { + let p = profiles.find(record => record.author === evt.author.toHex()) + let bech32id = evt.id.toBech32() + let nip19 = new Nip19Event(event.id, event.author, store.state.relays) + let nip19bech32 = nip19.toBech32() + let picture = p === undefined ? "../assets/nostr-purple.svg" : p["profile"]["picture"] + let name = p === undefined ? bech32id : p["profile"]["name"] + let highlighterurl = "https://highlighter.com/a/" + bech32id + let njumpurl = "https://njump.me/" + bech32id + let nostrudelurl = "https://nostrudel.ninja/#/n/" + bech32id + let uri = "nostr:" + bech32id // nip19.toNostrUri() + + if (items.find(e => e.id.toHex() === evt.id.toHex()) === undefined) { + items.push({ + id: evt.id, + content: evt.content, + author: name, + authorurl: "https://njump.me/" + evt.author.toBech32(), + links: { + "uri": uri, + "highlighter": highlighterurl, + "njump": njumpurl, + "nostrudel": nostrudelurl + }, + avatar: picture, + indicator: {"time": evt.createdAt.toHumanDatetime()} + }) + } - - - - - - /* try { - console.log("7000: ", event.content); - console.log("DVM: " + event.author.toHex()) - - - miniToastr.showMessage("DVM: " + dvmname, event.content, VueNotifications.types.info) - } catch (error) { - console.log("Error: ", error); - } */ - - else if(event.kind === 6302) { - let entries = [] - console.log("6302:", event.content); - - //miniToastr.showMessage("DVM: " + dvmname, "Received Results", VueNotifications.types.success) - let event_etags = JSON.parse(event.content) - for (let etag of event_etags){ - const eventid = EventId.fromHex(etag[1]) - entries.push(eventid) - } - const events = await getEvents(entries) - let authors = [] - for (const evt of events){ - authors.push(evt.author) - } - let profiles = await get_user_infos(authors) - - - for (const evt of events){ - let p = profiles.find( record => record.author === evt.author.toHex()) - let bech32id = evt.id.toBech32() - let nip19 = new Nip19Event(event.id, event.author, store.state.relays) - let nip19bech32 = nip19.toBech32() - let picture = p === undefined ? "../assets/nostr-purple.svg" : p["profile"]["picture"] - let name = p === undefined ? bech32id : p["profile"]["name"] - let highlighterurl = "https://highlighter.com/a/" + bech32id - let njumpurl = "https://njump.me/" + bech32id - let nostrudelurl = "https://nostrudel.ninja/#/n/" + bech32id - let uri = "nostr:" + bech32id // nip19.toNostrUri() - - if (items.find(e => e.id.toHex() === evt.id.toHex()) === undefined) { - items.push({id:evt.id, content: evt.content, author: name, authorurl: "https://njump.me/" + evt.author.toBech32(), links: {"uri": uri, "highlighter": highlighterurl, "njump": njumpurl, "nostrudel": nostrudelurl} , avatar: picture, indicator: {"time": evt.createdAt.toHumanDatetime()}}) } + } + } + const index = dvms.indexOf((dvms.find(i => i.id === event.author.toHex()))); + if (index > -1) { + dvms.splice(index, 1); + } + + store.commit('set_active_search_dvms', dvms) + console.log("Events from" + event.author.toHex()) + store.commit('set_search_results', items) } - - const index = dvms.indexOf((dvms.find(i => i.id === event.author.toHex()))); - if (index > -1) { - dvms.splice(index, 1); - } - - store.commit('set_active_search_dvms', dvms) - console.log("Events from" + event.author.toHex()) - console.log(items) - store.commit('set_search_results', items) - } } + }) }, // Handle relay message handleMsg: async (relayUrl, message) => { @@ -326,49 +328,41 @@ defineProps({ diff --git a/ui/noogle/src/store.js b/ui/noogle/src/store.js index fb37a04..07c1e8d 100644 --- a/ui/noogle/src/store.js +++ b/ui/noogle/src/store.js @@ -16,7 +16,13 @@ const store = createStore({ nip89dvms: [], activesearchdvms: [], results: [], - relays: ["wss://relay.damus.io", "wss://nos.lol", "wss://pablof7z.nostr1.com", "wss://relay.nostr.net", "wss://relay.nostr.net", "wss://relay.nostr.band", "wss://nostr-pub.wellorder.net"], + relays: [ + //"wss://relay.damus.io", + "wss://nos.lol", + "wss://pablof7z.nostr1.com", + "wss://relay.nostr.net", + "wss://relay.nostr.band", + "wss://nostr-pub.wellorder.net"], } }, mutations: {