@@ -31,6 +31,10 @@
+
+
+
+
-
{{reactions}}
+
{{reactions}}
-
+
-
@@ -125,7 +146,7 @@ async function react(eventid, authorid, evt){
content: "🧡",
kind: 7,
pubkey: store.state.pubkey.toHex(),
- tags: [],
+ tags: [["e", eventid]],
createdAt: Date.now()
};
let res = await amberSignerService.signEvent(draft)
@@ -133,22 +154,65 @@ async function react(eventid, authorid, evt){
let requestid = res.id;
}
else {
- // let event = new EventBuilder(7, "🧡", [])
let event = EventBuilder.reaction(evt, "🧡")
let requestid = await client.sendEventBuilder(event);
}
objects.reacted = true
objects.reactions += 1
+ console.log("reacted")
+ }
+ }
+}
+async function boost(eventid, authorid, evt){
+
+// TODO
+ let event_id = EventId.parse(eventid)
+ let public_key = PublicKey.parse(authorid);
+ let signer = store.state.signer
+ let client = store.state.client
+ let objects = (props.data.find(x=> x.id === eventid))
+ if (objects !== undefined){
+ if(!objects.boosted ){
+
+ console.log(evt.asJson())
+ let relay = "wss://relay.damus.io"
+ for (let tag of evt.tags){
+ if (tag.asVec()[0] == "relays"){
+ console.log(tag.asVec()[1])
+ }
+
+ }
+
+ if (localStorage.getItem('nostr-key-method') === 'android-signer') {
+
+ let draft = {
+ content: evt.asJson(),
+ kind: 6,
+ pubkey: store.state.pubkey.toHex(),
+ tags: [["e", eventid]],
+ createdAt: Date.now()
+ };
+ let res = await amberSignerService.signEvent(draft)
+ await client.sendEvent(Event.fromJson(JSON.stringify(res)))
+ let requestid = res.id;
+ }
+ else {
+ let event = EventBuilder.repost(evt)
+ let requestid = await client.sendEventBuilder(event);
+ }
+
+ objects.boosted = true
+ objects.boosts += 1
//props.data.push.apply(props.data.find(x=> x.id === eventid), objects)
- console.log("reacted")
+ console.log("boosted")
}
}
diff --git a/ui/noogle/src/components/RecommendationGeneration.vue b/ui/noogle/src/components/RecommendationGeneration.vue
index b102653..9c1af80 100644
--- a/ui/noogle/src/components/RecommendationGeneration.vue
+++ b/ui/noogle/src/components/RecommendationGeneration.vue
@@ -30,7 +30,7 @@ import {data} from "autoprefixer";
import {requestProvider} from "webln";
import Newnote from "@/components/Newnote.vue";
import SummarizationGeneration from "@/components/SummarizationGeneration.vue"
-import {sleep, get_user_infos, get_zaps, hasActiveSubscription, getEventsOriginalOrder, parseandreplacenpubsName} from "../components/helper/Helper.vue"
+import {sleep, get_user_infos, get_event_reactions, hasActiveSubscription, getEventsOriginalOrder, parseandreplacenpubsName} from "../components/helper/Helper.vue"
import {zap, createBolt11Lud16, zaprequest} from "../components/helper/Zap.vue"
import { ref } from "vue";
import ModalComponent from "../components/Newnote.vue";
@@ -431,7 +431,7 @@ async function listen() {
}
}
- let zaps = await get_zaps(ids)
+ let zaps = await get_event_reactions(ids)
let items = []
let index = 0
for (const evt of events) {
@@ -488,6 +488,8 @@ async function listen() {
zapAmount: react.amount,
reacted: react.reactedbyUser,
reactions: react.reactions,
+ boosts: react.reposts,
+ boosted: react.repostedbyUser
})
index = index + 1
diff --git a/ui/noogle/src/components/helper/Helper.vue b/ui/noogle/src/components/helper/Helper.vue
index 5a5571c..b7741fb 100644
--- a/ui/noogle/src/components/helper/Helper.vue
+++ b/ui/noogle/src/components/helper/Helper.vue
@@ -47,16 +47,37 @@ export async function post_note(note){
}
export async function react_to_dvm(dvm, reaction) {
let client = store.state.client
- let event = EventBuilder.reaction(dvm.event, reaction)
- let requestid = await client.sendEventBuilder(event);
+ if (localStorage.getItem('nostr-key-method') === 'android-signer') {
+ let draft = {
+ content: reaction,
+ kind: 7,
+ pubkey: store.state.pubkey.toHex(),
+ tags: [["e", dvm.event.id.toHex()]],
+ createdAt: Date.now()
+ };
+ let res = await amberSignerService.signEvent(draft)
+ await client.sendEvent(Event.fromJson(JSON.stringify(res)))
+ let requestid = res.id;
+ }
+ else {
+ let event = EventBuilder.reaction(dvm.event, reaction)
+ let requestid = await client.sendEventBuilder(event);
+ }
+
+ let pk = PublicKey.parse(store.state.pubkey.toHex())
+
+ let users = await get_user_infos([pk])
+ console.log(users[0])
if (reaction === "👎"){
dvm.reactions.negativeUser = true
- dvm.reactions.negative.push(store.state.pubkey.toHex())
+
+
+ dvm.reactions.negative.push(users[0])
}
else {
dvm.reactions.positiveUser = true
- dvm.reactions.positive.push(store.state.pubkey.toHex())
+ dvm.reactions.positive.push(users[0])
}
}
@@ -164,7 +185,7 @@ export async function get_user_infos(pubkeys){
return profiles
}
-export async function get_zaps(ids){
+export async function get_event_reactions(ids){
let zapsandreactions = []
for (let id of ids){
@@ -172,12 +193,14 @@ export async function get_zaps(ids){
id: id.toHex(),
amount: 0,
reactions: 0,
+ reposts: 0,
zappedbyUser: false,
- reactedbyUser: false,})
+ reactedbyUser: false,
+ repostedbyUser: false,})
}
let client = store.state.client
- const zap_filter = new Filter().kinds([9735, 7]).events(ids)
+ const zap_filter = new Filter().kinds([9735, 6, 7]).events(ids)
let evts = await client.getEventsOf([zap_filter], Duration.fromSecs(10))
for (const entry of evts){
@@ -220,6 +243,20 @@ export async function get_zaps(ids){
}
+ else if (entry.kind === 6) {
+ for (let tag of entry.tags) {
+
+ if (tag.asVec()[0] === "e") {
+ if (entry.author.toHex() === localStorage.getItem("nostr-key")) {
+ zapsandreactions.find(x => x.id === tag.asVec()[1]).repostedbyUser = true
+ }
+ zapsandreactions.find(x => x.id === tag.asVec()[1]).reposts += 1
+
+ }
+ }
+
+
+ }
//console.log(contentjson)