From ef057d637d107927400ea3608ff64d1feea95be7 Mon Sep 17 00:00:00 2001 From: Believethehype <1097224+believethehype@users.noreply.github.com> Date: Tue, 9 Apr 2024 11:20:40 +0200 Subject: [PATCH] noogle: improve recommendation search --- ui/noogle/src/components/ImageGeneration.vue | 20 +++++-- ui/noogle/src/components/Login.vue | 3 +- .../components/RecommendationGeneration.vue | 58 ++++++++++++------- ui/noogle/src/components/Search.vue | 8 +-- .../components/SummarizationGeneration.vue | 4 +- ui/noogle/src/store.js | 6 +- 6 files changed, 62 insertions(+), 37 deletions(-) diff --git a/ui/noogle/src/components/ImageGeneration.vue b/ui/noogle/src/components/ImageGeneration.vue index 980e839..2da327d 100644 --- a/ui/noogle/src/components/ImageGeneration.vue +++ b/ui/noogle/src/components/ImageGeneration.vue @@ -88,8 +88,10 @@ async function generate_image(message) { }; res = await amberSignerService.signEvent(draft) - await client.sendEvent(Event.fromJson(JSON.stringify(res))) - requestid = res.id; + requestid = res.id + store.commit('set_current_request_id_image', requestid) + await client.sendEvent(Event.fromJson(JSON.stringify(res))) + } else { @@ -97,13 +99,19 @@ async function generate_image(message) { for (let tag of tags){ tags_t.push(Tag.parse(tag)) } - let evt = new EventBuilder(kind, content, tags_t) - res = await client.sendEventBuilder(evt); - requestid = res.toHex(); + + let evt = new EventBuilder(kind, content, tags_t) + let unsigned = evt.toUnsignedEvent(store.state.pubkey) + let signedEvent = await (await client.signer()).signEvent(unsigned) + console.log(signedEvent.id.toHex()) + requestid = signedEvent.id.toHex() + store.commit('set_current_request_id_image', requestid) + await client.sendEvent(signedEvent) + + } - store.commit('set_current_request_id_image', requestid) } catch (error) { diff --git a/ui/noogle/src/components/Login.vue b/ui/noogle/src/components/Login.vue index 9d4d832..c8bf0fc 100644 --- a/ui/noogle/src/components/Login.vue +++ b/ui/noogle/src/components/Login.vue @@ -864,8 +864,9 @@ export default { dbclient = new ClientBuilder().signer(signer).database(await db).build() await dbclient.addRelay("wss://relay.damus.io"); - await dbclient.addRelay( "wss://purplepag.es"); + //await dbclient.addRelay( "wss://purplepag.es"); await dbclient.connect() + store.commit('set_dbclient', dbclient) let direction = NegentropyDirection.Down; let opts = new NegentropyOptions().direction(direction); diff --git a/ui/noogle/src/components/RecommendationGeneration.vue b/ui/noogle/src/components/RecommendationGeneration.vue index 34ed145..d104994 100644 --- a/ui/noogle/src/components/RecommendationGeneration.vue +++ b/ui/noogle/src/components/RecommendationGeneration.vue @@ -45,6 +45,7 @@ import StringUtil from "@/components/helper/string.ts"; let dvms =[] +let requestids = [] onMounted(async () => { @@ -73,17 +74,19 @@ function set_subscription_props(amount, cadence, dvm) { async function generate_feed(id) { + // if (!store.state.recommendationehasEventListener){ + // store.commit('set_recommendationEventListener', true) + listen() + + // } + // else{ + // console.log("Already has event listener") + // } + + try { - if (!store.state.recommendationehasEventListener){ - store.commit('set_recommendationEventListener', true) - listen() - - } - else{ - console.log("Already has event listener") - } let client = store.state.client //console.log(dvms.find(i => i.id === id).encryptionSupported) @@ -134,6 +137,9 @@ async function generate_feed(id) { res = await amberSignerService.signEvent(draft) await client.sendEvent(Event.fromJson(JSON.stringify(res))) requestid = res.id; + requestids.push(requestid) + store.commit('set_current_request_id_recommendation', requestids) + await client.sendEvent(Event.fromJson(JSON.stringify(res))) } else{ @@ -146,9 +152,14 @@ async function generate_feed(id) { tags_t.push(Tag.parse(["client", "noogle"])) - let evt = new EventBuilder(kind, content, tags_t) - res = await client.sendEventBuilder(evt); - requestid = res.toHex(); + + let evt = new EventBuilder(kind, content, tags_t) + let unsigned = evt.toUnsignedEvent(store.state.pubkey) + let signedEvent = await (await client.signer()).signEvent(unsigned) + console.log(signedEvent.id.toHex()) + requestids.push(signedEvent.id.toHex()) + store.commit('set_current_request_id_recommendation', requestids) + res = await client.sendEvent(signedEvent) } @@ -170,8 +181,12 @@ async function generate_feed(id) { }; res = await amberSignerService.signEvent(draft) + requestid = res.id; + requestids.push(requestid) + + store.commit('set_current_request_id_recommendation', requestids) await client.sendEvent(Event.fromJson(JSON.stringify(res))) - requestid = res.id; + } else { @@ -181,10 +196,13 @@ async function generate_feed(id) { tags_t.push(Tag.parse(tag)) } let evt = new EventBuilder(kind, content, tags_t) - res = await client.sendEventBuilder(evt); + let unsigned = evt.toUnsignedEvent(store.state.pubkey) + let signedEvent = await (await client.signer()).signEvent(unsigned) + console.log(signedEvent.id.toHex()) + requestids.push(signedEvent.id.toHex()) + store.commit('set_current_request_id_recommendation', requestids) + res = await client.sendEvent(signedEvent) - - requestid = res.toHex(); } } @@ -193,10 +211,6 @@ async function generate_feed(id) { - - store.commit('set_current_request_id_recommendation', requestid) - - } catch (error) { console.log(error); } @@ -213,10 +227,10 @@ async function listen() { // Handle event handleEvent: async (relayUrl, subscriptionId, event) => { let resonsetorequest = false - sleep(1200).then(async () => { + //sleep(1200).then(async () => { for (let tag in event.tags) { if (event.tags[tag].asVec()[0] === "e") { - if (event.tags[tag].asVec()[1] === store.state.requestidRecommendation) { + if (store.state.requestidRecommendation.includes(event.tags[tag].asVec()[1])){ resonsetorequest = true } @@ -500,7 +514,7 @@ async function listen() { } } - }) + // }) }, // Handle relay message handleMsg: async (relayUrl, message) => { diff --git a/ui/noogle/src/components/Search.vue b/ui/noogle/src/components/Search.vue index 4a481b1..9315c5f 100644 --- a/ui/noogle/src/components/Search.vue +++ b/ui/noogle/src/components/Search.vue @@ -137,9 +137,9 @@ async function send_search_request(msg) { }; res = await amberSignerService.signEvent(draft) - await client.sendEvent(Event.fromJson(JSON.stringify(res))) - requestid = res.id; - res = res.id; + let result = await client.sendEvent(Event.fromJson(JSON.stringify(res))) + requestid = result.toHex() + } else { @@ -164,7 +164,7 @@ async function send_search_request(msg) { store.commit('set_current_request_profile_id_search', requestid_profile) - console.log(res) + } catch (error) { console.log(error); } diff --git a/ui/noogle/src/components/SummarizationGeneration.vue b/ui/noogle/src/components/SummarizationGeneration.vue index 6843bdf..479baba 100644 --- a/ui/noogle/src/components/SummarizationGeneration.vue +++ b/ui/noogle/src/components/SummarizationGeneration.vue @@ -78,8 +78,8 @@ let sortedIds = eventids.sort(function(a,b) {return (a.index > b.index) ? 1 : (( }; res = await amberSignerService.signEvent(draft) - await client.sendEvent(Event.fromJson(JSON.stringify(res))) - requestid = res.id; + let result = await client.sendEvent(Event.fromJson(JSON.stringify(res))) + requestid = result.toHex() } else { diff --git a/ui/noogle/src/store.js b/ui/noogle/src/store.js index 218780a..c961d62 100644 --- a/ui/noogle/src/store.js +++ b/ui/noogle/src/store.js @@ -16,7 +16,7 @@ const store = createStore({ requestidSearch: String, requestidSearchProfile: String, requestidImage: String, - requestidRecommendation: String, + requestidRecommendation: [], requestidSummarization: String, hasEventListener: false, imagehasEventListener: false, @@ -118,7 +118,9 @@ const store = createStore({ state.requestidImage = requestid }, set_current_request_id_recommendation(state, requestid){ - state.requestidRecommendation = requestid + state.requestidRecommendation.length = 0 + state.requestidRecommendation.push.apply(state.requestidRecommendation, requestid) + //state.requestidRecommendation = requestid }, set_search_results(state, results){