From 28c59595bb20562bf47b4fab292ee2c2ffd3d77f Mon Sep 17 00:00:00 2001 From: Believethehype <1097224+believethehype@users.noreply.github.com> Date: Fri, 15 Mar 2024 10:14:22 +0100 Subject: [PATCH] add nwc to noogle --- ui/noogle/package.json | 1 + ui/noogle/public/Alby.jpg | Bin 0 -> 17443 bytes ui/noogle/public/Mutiny.png | Bin 0 -> 5188 bytes ui/noogle/public/NWA.png | Bin 0 -> 75445 bytes ui/noogle/public/NWC.png | Bin 0 -> 75445 bytes ui/noogle/src/components/ImageGeneration.vue | 40 +-- ui/noogle/src/components/Login.vue | 286 ++++++++++++++- ui/noogle/src/components/NoteTable.vue | 55 +-- .../src/components/ProfileResultTable.vue | 9 +- .../components/RecommendationGeneration.vue | 249 +++++++++---- .../RecommendationGeneration_old.vue | 27 +- .../components/SummarizationGeneration.vue | 33 +- ui/noogle/src/components/helper/Helper.vue | 339 +++++++++++------- ui/noogle/src/components/helper/Zap.vue | 270 ++++++++++++++ 14 files changed, 969 insertions(+), 340 deletions(-) create mode 100644 ui/noogle/public/Alby.jpg create mode 100644 ui/noogle/public/Mutiny.png create mode 100644 ui/noogle/public/NWA.png create mode 100644 ui/noogle/public/NWC.png create mode 100644 ui/noogle/src/components/helper/Zap.vue diff --git a/ui/noogle/package.json b/ui/noogle/package.json index e2adf43..5cd9a17 100644 --- a/ui/noogle/package.json +++ b/ui/noogle/package.json @@ -11,6 +11,7 @@ "type-check": "vue-tsc --build --force" }, "dependencies": { + "@getalby/sdk": "^3.4.0", "@rust-nostr/nostr-sdk": "^0.11.1", "@vuepic/vue-datepicker": "^7.4.1", "@vueuse/core": "^10.7.2", diff --git a/ui/noogle/public/Alby.jpg b/ui/noogle/public/Alby.jpg new file mode 100644 index 0000000000000000000000000000000000000000..40a2a2d1531b6202a9b56dc9c538fa372c2bbe38 GIT binary patch literal 17443 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 literal 0 HcmV?d00001 diff --git a/ui/noogle/public/Mutiny.png b/ui/noogle/public/Mutiny.png new file mode 100644 index 0000000000000000000000000000000000000000..1d45cce59ab61f8a23fa7f57a72170ac394d7bed GIT binary patch literal 5188 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%0A0K}&I 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%0A0K}&I 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 i.bolt11 === invoice).status = "paid" + store.commit('set_imagedvm_results', dvms) } - - if (webln) { - try{ - let response = await webln.sendPayment(invoice) - dvms.find(i => i.bolt11 === invoice).status = "paid" - store.commit('set_imagedvm_results', dvms) - } - catch(err){ - console.log(err) - await copyinvoice(invoice) - } - - } - - - } +} defineProps({ @@ -417,7 +399,7 @@ const submitHandler = async () => { - + diff --git a/ui/noogle/src/components/Login.vue b/ui/noogle/src/components/Login.vue index 45a79af..dd8cf77 100644 --- a/ui/noogle/src/components/Login.vue +++ b/ui/noogle/src/components/Login.vue @@ -19,6 +19,102 @@

Sign out of your account

+ + + + +
@@ -92,10 +188,11 @@ import nip49, {decryptwrapper} from "./android-signer/helpers/nip49"; import { init as initNostrLogin } from "nostr-login" import { launch as launchNostrLoginDialog } from "nostr-login" import { logout as logoutNostrLogin } from "nostr-login" -import {parseandreplacenpubs} from "@/components/helper/Helper.vue" - +import {parseandreplacenpubs, hasActiveSubscription} from "@/components/helper/Helper.vue" +import {loadNWCObject} from "@/components/helper/Zap.vue" import {useDark, useToggle} from "@vueuse/core"; import {ref} from "vue"; +import {webln} from "@getalby/sdk"; const isDark = useDark(); //const toggleDark = useToggle(isDark); @@ -106,6 +203,10 @@ let nip89dvms = [] const nsec = ref(""); let logger = false + + + + export default { data() { @@ -115,6 +216,11 @@ export default { signer: "", supports_android_signer: false, ncryptsec: ref(""), + nwc: ref(""), + nwcmutiny: ref(""), + nwcalby: ref(""), + nwcconnector: ref("user"), + pw: ref("") @@ -136,7 +242,7 @@ export default { await this.sign_in_nip07() } else if (localStorage.getItem('nostr-key-method') === 'nsec') { - await this.sign_in_key(localStorage.getItem('nostr-key')) + await this.sign_in_key(localStorage.getItem('localNostrPrivkey')) } else if (localStorage.getItem('nostr-key-method') === 'nostr-login'){ console.log(localStorage.getItem('__nostrlogin_nip46')) @@ -156,6 +262,18 @@ export default { await this.sign_in_anon() } await this.getnip89s() + let nwc = loadNWCObject() + + + if(nwc.connectorType === "alby"){ + this.nwcalby = nwc.nwcUrl + } + else if(nwc.connectorType === "user"){ + this.nwc = nwc.nwcUrl + } + else if (nwc.connectorType === "mutiny"){ + this.nwcmutiny = nwc.nwcUrl + } @@ -214,7 +332,7 @@ export default { store.commit('set_pubkey', pubkey) store.commit('set_hasEventListener', false) localStorage.setItem('nostr-key-method', "nostr-login") - localStorage.setItem('nostr-key', '') + localStorage.setItem('nostr-key', pubkey.toHex()) console.log("Client Nip46 connected") await this.get_user_info(pubkey) this.reconcile_all_profiles(pubkey) @@ -328,9 +446,10 @@ export default { store.commit('set_signer', this.signer) store.commit('set_pubkey', pubkey) store.commit('set_hasEventListener', false) - console.log("LOGINANON") + console.log("LOGIN with Key") localStorage.setItem('nostr-key-method', "nsec") - localStorage.setItem('nostr-key', keys.secretKey.toBech32()) + localStorage.setItem('nostr-key', keys.publicKey.toHex()) + localStorage.setItem('localNostrPrivkey', keys.secretKey.toHex()) console.log("Client key connected") await this.get_user_info(pubkey) this.reconcile_all_profiles(pubkey) @@ -396,6 +515,9 @@ export default { store.commit('set_hasEventListener', false) localStorage.setItem('nostr-key-method', "nip07") localStorage.setItem('nostr-key', pubkey.toHex()) + + + console.log("Client Nip07 connected") await this.get_user_info(pubkey) @@ -562,19 +684,52 @@ export default { //console.log(dvmkinds) const filter = new Filter().kind(31990).customTag(SingleLetterTag.lowercase(Alphabet.K), dvmkinds) - //await client.reconcile(filter); - //const filterl = new Filter().kind(31990) - //let evts = await client.database.query([filterl]) let evts = await client.getEventsOf([filter], Duration.fromSecs(5)) + + let dvmkeys = [] + for (let evt of evts){ + for (const tag in evt.tags) { + if (evt.tags[tag].asVec()[1] >= 5000 && evt.tags[tag].asVec()[1] <= 5999 && deadnip89s.filter(i => i.id === evt.id.toHex()).length === 0) { + dvmkeys.push(evt.author) + } + } + + } + + const filtersubscription = new Filter().kind(37001).authors(dvmkeys) + let subscription_tiers = await client.getEventsOf([filtersubscription], Duration.fromSecs(5)) + //console.log(subscription_tiers) + for (const entry of evts){ for (const tag in entry.tags){ if (entry.tags[tag].asVec()[0] === "k") if(entry.tags[tag].asVec()[1] >= 5000 && entry.tags[tag].asVec()[1] <= 5999 && deadnip89s.filter(i => i.id === entry.id.toHex() ).length === 0) { // blocklist.indexOf(entry.id.toHex()) < 0){ + + try { let jsonentry = JSON.parse(entry.content) + + + let susbcrition_tier = subscription_tiers.find(x => x.author.toHex() === entry.author.toHex()) + + + let nip88 = { + title: "", + image: "", + amounts: [], + zaps: [], + perks: [], + description: "", + eventid: "", + event: "", + hasActiveSubscription: false, + subscribedUntil: 0, + subscriptionId: "", + } + if (jsonentry.picture){ jsonentry.image = jsonentry.picture } @@ -582,12 +737,79 @@ export default { if(!jsonentry.amount){ jsonentry.amount = "" } + if(jsonentry.amount === "subscription"){ + // if(susbcrition_tier) { + const filter = new Filter().kind(37001).author(entry.author) + let tiers = await client.getEventsOf([filter], Duration.fromSecs(5)) + + // todo handle multiple tiers + if (tiers.length > 0) { + let evt = tiers[0] + nip88.description = evt.content + nip88.eventid = evt.id.toHex() + nip88.event = evt.asJson() + + + for (let tag of evt.tags) { + if (tag.asVec()[0] === "amount"){ + let amount = { + amount: tag.asVec()[1], + unit: tag.asVec()[2], + cadence: tag.asVec()[3] + } + nip88.amounts.push(amount) + + } + else if(tag.asVec()[0] === "title"){ + nip88.title = tag.asVec()[1] + } + else if(tag.asVec()[0] === "image"){ + nip88.image = tag.asVec()[1] + } + else if(tag.asVec()[0] === "perk") { + nip88.perks.push(tag.asVec()[1]) + } + + else if(tag.asVec()[0] === "zap_local"){ + let zap = { + key: (tag.asVec()[1] !== "" ? tag.asVec()[1] : PublicKey.parse("npub1nxa4tywfz9nqp7z9zp7nr7d4nchhclsf58lcqt5y782rmf2hefjquaa6q8").toHex()) , + relay: tag.asVec()[2], + split: tag.asVec()[3] + } + + // TODO only use first tag for now, add others later. + // if(tag.asVec()[1] !== "" ){ + nip88.zaps.push(zap) + // } + + + } + + + + + } + let subscription_status = await hasActiveSubscription(localStorage.getItem("nostr-key"), evt.id.toHex(), evt.author.toHex(), nip88.amounts) + nip88.hasActiveSubscription = subscription_status.isActive + nip88.subscribedUntil = subscription_status.validuntil + nip88.subscriptionId = subscription_status.subscriptionId + + + jsonentry.nip88 = nip88 + console.log(jsonentry.nip88) + + } + } + jsonentry.id = entry.author.toHex() jsonentry.about = await parseandreplacenpubs(jsonentry.about) jsonentry.event = entry.asJson() jsonentry.kind = entry.tags[tag].asVec()[1] + + //jsonentry.nip90Params = JSON.parse(jsonentry.nip90Params) nip89dvms.push(jsonentry); + } catch (error){ //console.log(error) @@ -595,9 +817,10 @@ export default { } } - } - store.commit('set_nip89dvms', nip89dvms) + } + + store.commit('set_nip89dvms', nip89dvms) return nip89dvms @@ -664,6 +887,8 @@ export default { } }, + + async sign_out(){ this.current_user = "" if(localStorage.getItem('nostr-key-method') === "nostr-login"){ @@ -675,7 +900,40 @@ export default { //await this.state.client.shutdown(); await this.sign_in_anon() - } + }, + + async store_nwc(){ + let connector = "" + let nwc = "" + if (this.nwcalby.startsWith("nostr")){ + connector = "alby" + nwc = this.nwcalby + } + else if (this.nwcmutiny.startsWith("nostr") ){ + connector = "mutiny" + nwc = this.nwcmutiny + } + else{ + connector = "user" + nwc = this.nwc + } + localStorage.setItem("nwc", "{\"nwcUrl\":\"" + nwc + "\",\"connectorName\":\""+ connector +"\",\"connectorType\":\"" + connector +"\"}" ) + }, + + +async connect_alby_nwc(){ + +const alby = webln.NostrWebLNProvider.withNewSecret(); +let result = await alby.client.initNWC({ + name: `Noogle`, + }); + + if (result.payload.success){ + this.nwcalby = alby.client.getNostrWalletConnectUrl(true); + await this.store_nwc() + } +}, + }, }; @@ -713,6 +971,10 @@ export default { @apply bg-base-200 dark:bg-base-200 dark:text-white focus:ring-white border border-transparent px-3 py-1.5 text-sm leading-4 text-accent-content transition-colors duration-300 focus:ring-offset-2 focus:ring-offset-white dark:focus:ring-offset-gray-900; width: 220px; +} + +.nwc-Input { + @apply bg-base-200 dark:bg-base-200 dark:text-white focus:ring-white border border-white px-3 py-1.5 text-sm leading-4 text-accent-content transition-colors duration-300 focus:ring-offset-2 focus:ring-offset-white dark:focus:ring-offset-gray-900; diff --git a/ui/noogle/src/components/NoteTable.vue b/ui/noogle/src/components/NoteTable.vue index 3f6076e..9fa6a19 100644 --- a/ui/noogle/src/components/NoteTable.vue +++ b/ui/noogle/src/components/NoteTable.vue @@ -48,7 +48,7 @@ -
+
@@ -58,7 +58,7 @@

{{zapAmount/1000}}

-
+
@@ -91,6 +91,7 @@ import {copyinvoice, createBolt11Lud16, parseandreplacenpubs, zaprequest} from " import {requestProvider} from "webln"; import {Event, EventBuilder, EventId, PublicKey} from "@rust-nostr/nostr-sdk"; import amberSignerService from "@/components/android-signer/AndroidSigner"; +import zap, {zap_lud16} from "@/components/helper/Zap.vue"; const props = defineProps<{ @@ -145,56 +146,16 @@ async function react(eventid, authorid){ } -async function zap(lud16, eventid, authorid){ +async function zap_local(lud16, eventid, authorid){ - if(lud16 != Null && lud16 != ""){ - let invoice = await zaprequest(lud16, 21 , "with love from noogle.lol", eventid, authorid, store.state.relays) //Not working yet - // let invoice = await createBolt11Lud16(lud16, 21) - let webln; - try { - webln = await requestProvider(); - } catch (err) { - if (invoice === null){ - invoice = await createBolt11Lud16(lud16, 21) - } - - await copyinvoice(invoice) - - - } - if (webln) { - try{ - let response = await webln.sendPayment(invoice) - if(response.preimage != null && response.preimage != ""){ - - - let objects = (props.data.find(x=> x.id === eventid)) + let success = await zap_lud16(lud16, eventid, authorid) + if (success){ + let objects = props.data.find(x=> x.id === eventid) if (objects !== undefined){ - // console.log(objects.zapped) objects.zapped = true objects.zapAmount += 21000 - } + } - /* if (objects != undefined && objects.length > 0){ - console.log(objects[0]) - props.data.find(x=> x.id === eventid).zapped.push.apply(props.data.find(x=> x.id === eventid).zapped, true) - - - }*/ - - - // miniToastr.showMessage("Zapped " + author , "Success" , VueNotifications.types.warn) - console.log(response) - - } - - - } - catch(err){ - console.log(err) - await copyinvoice(invoice) - } - } } } diff --git a/ui/noogle/src/components/ProfileResultTable.vue b/ui/noogle/src/components/ProfileResultTable.vue index dee97ab..e45943c 100644 --- a/ui/noogle/src/components/ProfileResultTable.vue +++ b/ui/noogle/src/components/ProfileResultTable.vue @@ -5,15 +5,10 @@ :items="store.state.profile_results" >
- Avatar - - {{ author }} - - - -
+ {{ author }} +
diff --git a/ui/noogle/src/components/RecommendationGeneration.vue b/ui/noogle/src/components/RecommendationGeneration.vue index d2e31bb..01f9ef0 100644 --- a/ui/noogle/src/components/RecommendationGeneration.vue +++ b/ui/noogle/src/components/RecommendationGeneration.vue @@ -11,7 +11,7 @@ import { EventBuilder, Tag, EventId, - Nip19Event, Alphabet, Keys, nip04_decrypt, SecretKey, Duration + Nip19Event, Alphabet, Keys, nip04_decrypt, SecretKey, Duration, SingleLetterTag } from "@rust-nostr/nostr-sdk"; import store from '../store'; import miniToastr from "mini-toastr"; @@ -22,7 +22,9 @@ import {data} from "autoprefixer"; import {requestProvider} from "webln"; import Newnote from "@/components/Newnote.vue"; import SummarizationGeneration from "@/components/SummarizationGeneration.vue" -import {post_note, schedule, copyurl, copyinvoice, sleep, getEvents, get_user_infos, get_zaps, zaprequest, get_reactions, nextInput, createBolt11Lud16, getEventsOriginalOrder, parseandreplacenpubsName} from "../components/helper/Helper.vue" +import {post_note, schedule, copyurl, copyinvoice, sleep, getEvents, get_user_infos, get_zaps, get_reactions, nextInput, getEventsOriginalOrder, parseandreplacenpubsName} from "../components/helper/Helper.vue" +import {zap, createBolt11Lud16, zaprequest} from "../components/helper/Zap.vue" + import amberSignerService from "./android-signer/AndroidSigner"; import StringUtil from "@/components/helper/string.ts"; @@ -100,9 +102,6 @@ async function generate_feed(id) { } } - - - async function listen() { let client = store.state.client let pubkey = store.state.pubkey @@ -228,7 +227,7 @@ async function listen() { authors.push(evt.author) } catch(error){ - console.log(error) + //console.log(error) } } @@ -242,7 +241,11 @@ async function listen() { let ids = [] for (let evt of events){ - ids.push(evt.id) + try {ids.push(evt.id)} + catch(error){ + console.log(error) + } + } let zaps = await get_zaps(ids) let items = [] @@ -323,22 +326,18 @@ async function listen() { client.handleNotifications(handle); } - -const urlinput = ref(""); - - async function addAllContentDVMs() { - let relevent_dvms = [] + let relevant_dvms = [] for (const el of store.state.nip89dvms) { for (const tag of JSON.parse(el.event).tags) { if (tag[0] === "k" && tag[1] === "5300") { - relevent_dvms.push(PublicKey.parse(el.id)) + relevant_dvms.push(PublicKey.parse(el.id)) } } } let active_dvms = [] - for (let id of relevent_dvms) { + for (let id of relevant_dvms) { let jsonentry = { id: id.toHex(), last_active: 0 @@ -349,7 +348,7 @@ async function addAllContentDVMs() { console.log(active_dvms) - const filtera = new Filter().authors(relevent_dvms).kinds([6300, 7000]) + const filtera = new Filter().authors(relevant_dvms).kinds([6300, 7000]) let client = store.state.client let activities = await client.getEventsOf([filtera], Duration.fromSecs(1)) @@ -367,10 +366,10 @@ async function addAllContentDVMs() { // console.log(last_active) // If DVM hasn't been active for 3 weeks, don't consider it. - console.log(active_dvms) + //console.log(active_dvms) let final_dvms = [] for (let element of active_dvms) { - if (element.last_active > Timestamp.now().asSecs() - 60 * 60 * 24 * 7) { + if (element.last_active > Timestamp.now().asSecs() - 60 * 60 * 24 * 21) { final_dvms.push(store.state.nip89dvms.find(x => x.id === element.id)) } @@ -389,7 +388,8 @@ async function addAllContentDVMs() { amount: el.amount, bolt11: "", lud16: el.lud16, - subscription: "" + subscription: "", + nip88: el.nip88 } @@ -503,21 +503,75 @@ async function addDVM(event){ } -async function subscribe(lud16, days, amountperday, eventid, authorid) { - if (lud16 !== "") { - let profiles = await get_user_infos([PublicKey.parse(authorid)]) - if (profiles.length > 0) { - let current = profiles[0] - lud16 = current.profile.lud16 + + +async function subscribe(zaps, amount, cadence, activesubscriptioneventid, tierevent, tiereventid, dvmid) { + + // We only arrive here if no subscription exists, we might create a 7001 if it doesnt exist and we zap it + let client = store.state.client + + console.log(dvmid) + console.log(tiereventid) + console.log(JSON.stringify(tierevent)) + console.log(amount) + console.log(activesubscriptioneventid) + + + if (activesubscriptioneventid === ""){ + console.log("Creating 7001 event") + let tags = [ + Tag.parse([ "p", dvmid]), + Tag.parse([ "e" , tiereventid]), + Tag.parse([ "event", JSON.stringify(tierevent)]), + Tag.parse([ "amount", (amount).toString(), "msats", cadence]), + // Zap-splits todo order and splits + // Tag.parse([ "zap", authorid, "19" ]), // 95% + // Tag.parse([ "zap", "fa984bd7dbb282f07e16e7ae87b26a2a7b9b90b7246a44771f0cf5ae58018f52", "1" ]), // 5% to client developer where subscription was created + ] + + for(let zap of zaps){ + let zaptag = Tag.parse([ "zap", zap.key, zap.split]) + tags.push(zaptag) } + + console.log(tags) + let evt = new EventBuilder(7001, "Subscription from noogle.lol", tags) + let res = await client.sendEventBuilder(evt); + activesubscriptioneventid = res.toHex() + } - let invoice = await zaprequest(lud16, days * amountperday, "paid from noogle.lol", eventid, authorid, store.state.relays) - console.log(invoice) - await zap(invoice) + + let overallsplit = 0 + for (let zap of zaps){ + overallsplit += parseInt(zap.split) + } + for (let zap of zaps){ + let profiles = await get_user_infos([PublicKey.parse(zap.key)]) + if (profiles.length > 0) { + let current = profiles[0] + let lud16 = current.profile.lud16 + let splitted_amount = Math.floor((zap.split/overallsplit) * amount/1000) + console.log(splitted_amount) + console.log(overallsplit) + console.log(activesubscriptioneventid) + let invoice = await zaprequest(lud16, splitted_amount, "paid for " + cadence + " from noogle.lol", activesubscriptioneventid, dvmid, store.state.relays) + console.log(invoice) + await zapSubscription(invoice) + } + } + + + + dvms.find(x => x.nip88.eventid === tiereventid ).hasActiveSubscription = true + + + + // next, the dvm should listen to these 7001 events addressed to it and (or rather 9735 tagging the 7001 and the subscription should be considered valid for both) + } -async function zap(invoice) { +async function zapSubscription(invoice) { let webln; //this.dvmpaymentaddr = `https://chart.googleapis.com/chart?cht=qr&chl=${invoice}&chs=250x250&chld=M|0`; @@ -531,8 +585,9 @@ async function zap(invoice) { if (webln) { try{ let response = await webln.sendPayment(invoice) - dvms.find(i => i.bolt11 === invoice).status = "paid" - store.commit('set_recommendation_dvms', dvms) + + //dvms.find(i => i.bolt11 === invoice).status = "paid" + // store.commit('set_recommendation_dvms', dvms) } catch(err){ console.log(err) @@ -542,6 +597,17 @@ async function zap(invoice) { } +async function zap_local(invoice) { + + let success = await zap(invoice) + if (success){ + dvms.find(i => i.bolt11 === invoice).status = "paid" + store.commit('set_recommendation_dvms', dvms) + } + +} + + defineProps({ msg: { type: String, @@ -554,6 +620,7 @@ import ModalComponent from "../components/Newnote.vue"; import VueDatePicker from "@vuepic/vue-datepicker"; import {timestamp} from "@vueuse/core"; import NoteTable from "@/components/NoteTable.vue"; +import {nostrzapper_nwc} from "@rust-nostr/nostr-sdk/pkg/nostr_sdk_js_bg.wasm.js"; @@ -667,37 +734,22 @@ const submitHandler = async () => { - + - - -
+ +

Subscription required

-
-
-

Subscribe

-
-
-
-

Subscribe for a day

- - - -

Subscribe for a month

- - -
-
-
- -
- - + + @@ -723,13 +775,85 @@ const submitHandler = async () => {

Free

-

Flexible

-

Subscription

-
-
+

Flexible

+
+
+
+ +
+
+ + +
+
+ +
+ +

{{dvm.nip88.title}}

+ +

{{dvm.nip88.description}}

+
+
+

Subscribe and pay {{index.cadence}}

+ + +
+ +
+
+
+
+
+ + + +
+
+ +
+ +

{{dvm.nip88.title}}

+ +

{{dvm.nip88.description}}

+
+

Perks:

+
+

{{perk}}

+ + +
+
+

Subscription active until + {{Timestamp.fromSecs(parseInt(dvm.nip88.subscribedUntil)).toHumanDatetime().split("T")[0].split("-")[2].trim()}}.{{Timestamp.fromSecs(parseInt(dvm.nip88.subscribedUntil)).toHumanDatetime().split("T")[0].split("-")[1].trim()}}.{{Timestamp.fromSecs(parseInt(dvm.nip88.subscribedUntil)).toHumanDatetime().split("T")[0].split("-")[0].trim().slice(2)}} {{Timestamp.fromSecs(parseInt(dvm.nip88.subscribedUntil)).toHumanDatetime().split("T")[1].split("Z")[0].trim()}}

+ + + + +
+
+
+ +
+ + + + -
+
+
-->

-

+

{{dvm.amount/1000}}

@@ -787,6 +911,7 @@ const submitHandler = async () => { .sub-Button{ @apply btn hover:bg-nostr border-orange-500 text-base; + bottom: 0; } diff --git a/ui/noogle/src/components/RecommendationGeneration_old.vue b/ui/noogle/src/components/RecommendationGeneration_old.vue index 002a884..0f66e06 100644 --- a/ui/noogle/src/components/RecommendationGeneration_old.vue +++ b/ui/noogle/src/components/RecommendationGeneration_old.vue @@ -308,31 +308,19 @@ async function addDVM(event){ store.commit('set_recommendation_dvms', dvms) } -async function zap(invoice) { - let webln; - //this.dvmpaymentaddr = `https://chart.googleapis.com/chart?cht=qr&chl=${invoice}&chs=250x250&chld=M|0`; - //this.dvminvoice = invoice - try { - webln = await requestProvider(); - } catch (err) { - await copyinvoice(invoice) - } +async function zap_local(invoice) { - if (webln) { - try{ - let response = await webln.sendPayment(invoice) - dvms.find(i => i.bolt11 === invoice).status = "paid" + let success = await zap(invoice) + if (success){ + dvms.find(i => i.bolt11 === invoice).status = "paid" store.commit('set_recommendation_results', dvms) - } - catch(err){ - console.log(err) - await copyinvoice(invoice) - } } + } + defineProps({ msg: { type: String, @@ -345,6 +333,7 @@ import ModalComponent from "../components/Newnote.vue"; import VueDatePicker from "@vuepic/vue-datepicker"; import {timestamp} from "@vueuse/core"; import NoteTable from "@/components/NoteTable.vue"; +import zap from "@/components/helper/Zap.vue"; const isModalOpened = ref(false); const modalcontent = ref(""); @@ -456,7 +445,7 @@ const submitHandler = async () => { - +
diff --git a/ui/noogle/src/components/SummarizationGeneration.vue b/ui/noogle/src/components/SummarizationGeneration.vue index 7624427..3e19eef 100644 --- a/ui/noogle/src/components/SummarizationGeneration.vue +++ b/ui/noogle/src/components/SummarizationGeneration.vue @@ -28,6 +28,7 @@ import ModalComponent from "../components/Newnote.vue"; import VueDatePicker from "@vuepic/vue-datepicker"; import {timestamp} from "@vueuse/core"; import NoteTable from "@/components/NoteTable.vue"; +import {zap} from "@/components/helper/Zap.vue"; let dvms =[] async function summarizefeed(eventids) { @@ -245,36 +246,16 @@ async function listen() { } -async function zap(invoice) { - let webln; +async function zap_local(invoice) { - //this.dvmpaymentaddr = `https://chart.googleapis.com/chart?cht=qr&chl=${invoice}&chs=250x250&chld=M|0`; - //this.dvminvoice = invoice - - - try { - webln = await requestProvider(); - } catch (err) { - await copyinvoice(invoice) + let success = await zap(invoice) + if (success){ + dvms.find(i => i.bolt11 === invoice).status = "paid" + store.commit('set_summarization_dvms', dvms) } - if (webln) { - try{ - let response = await webln.sendPayment(invoice) - dvms.find(i => i.bolt11 === invoice).status = "paid" - store.commit('set_summarization_dvms', dvms) - } - catch(err){ - console.log(err) - await copyinvoice(invoice) - } - - } - - } - defineProps({ events: { type: Array, @@ -364,7 +345,7 @@ const submitHandler = async () => { - +
diff --git a/ui/noogle/src/components/helper/Helper.vue b/ui/noogle/src/components/helper/Helper.vue index ee38f00..c007c51 100644 --- a/ui/noogle/src/components/helper/Helper.vue +++ b/ui/noogle/src/components/helper/Helper.vue @@ -2,7 +2,19 @@ import {defineComponent} from 'vue' import store from "@/store"; import amberSignerService from "@/components/android-signer/AndroidSigner"; -import {Duration, Event, EventBuilder, EventId, Filter, Keys, PublicKey, Tag, Timestamp} from "@rust-nostr/nostr-sdk"; +import { + Alphabet, + Duration, + Event, + EventBuilder, + EventId, + Filter, + Keys, + PublicKey, + SingleLetterTag, + Tag, + Timestamp +} from "@rust-nostr/nostr-sdk"; import miniToastr from "mini-toastr/mini-toastr"; import VueNotifications from "vue-notifications"; import {bech32} from "bech32"; @@ -349,7 +361,7 @@ export async function parseandreplacenpubsName(note){ return finalnote.trimEnd() } -async function fetchAsync (url) { +export async function fetchAsync (url) { let response = await fetch(url); let data = await response.json(); return data; @@ -357,151 +369,202 @@ async function fetchAsync (url) { -export async function zaprequest(lud16, amount, content, zapped_event_id, zapped_user_id, relay_list){ - let url = "" - - console.log(lud16) - console.log(PublicKey.parse(zapped_user_id).toBech32()) - console.log(EventId.parse(zapped_event_id).toBech32()) - console.log(zapped_event_id) - - - zapped_user_id = PublicKey.parse(zapped_user_id).toHex() - zapped_event_id = EventId.parse(zapped_event_id).toHex() - - //overwrite for debug - //lud16 = "hype@bitcoinfixesthis.org" - //zapped_user_id = PublicKey.parse("npub1nxa4tywfz9nqp7z9zp7nr7d4nchhclsf58lcqt5y782rmf2hefjquaa6q8").toHex() - //zapped_event_id = EventId.parse("note1xsw95cp4ynelxdujd3xrh6kmre3y0lk699xn09z52mjenmktdllq9vtwyn").toHex() - - - - - - if (lud16 !== "" && lud16.toString().includes('@')){ - url = `https://${lud16.split('@')[1]}/.well-known/lnurlp/${lud16.split('@')[0]}`; - console.log(url) - } - else{ - return null - } - try{ - - let ob = await fetchAsync(url) - let callback = ob["callback"] - console.log(callback) - - - const urlBytes = new TextEncoder().encode(url); - const encoded_lnurl = bech32.encode('lnurl', bech32.toWords(urlBytes), 1023); - - - const amount_tag = ['amount', (amount * 1000).toString()]; - let relays = ['relays'] - relays.push.apply(relays, relay_list) - //let relays_tag = Tag.parse(relays); - - const lnurl_tag = ['lnurl', encoded_lnurl]; - - let tags = [] - let p_tag = ['p', zapped_user_id] - if (zapped_event_id !== null){ - let e_tag = ['e', zapped_event_id] - tags = [amount_tag, relays, p_tag, e_tag, lnurl_tag] - } - - else{ - tags = [amount_tag, relays, p_tag, lnurl_tag] - } - /*if (zaptype === "private") { - const key_str = keys.secret_key().to_hex() + zapped_event.id().to_hex() + zapped_event.created_at().as_secs().toString(); - const encryption_key = sha256(key_str).toString('hex'); - const zap_request = new EventBuilder(9733, content, [p_tag, e_tag]).to_event(keys).as_json(); - keys = Keys.parse(encryption_key); - const encrypted_content = enrypt_private_zap_message(zap_request, keys.secret_key(), zapped_event.author()); - const anon_tag = Tag.parse(['anon', encrypted_content]); - tags.push(anon_tag); - content = ""; - } */ - - - - let signer = store.state.signer - let zap_request = "" - - if (localStorage.getItem('nostr-key-method') === 'android-signer') { - let draft = { - content: content, - kind: 9734, - pubkey: store.state.pubkey.toHex(), - tags: tags, - createdAt: Date.now() - }; - - let res = await amberSignerService.signEvent(draft) - zap_request = JSON.stringify(res) - //await sleep(3000) - - } - else { - let tags_t = [] - for (let tag of tags){ - tags_t.push(Tag.parse(tag)) - } - let noteevent = new EventBuilder(9734, content, tags_t).toUnsignedEvent(store.state.pubkey) - let signedEvent = await signer.signEvent(noteevent) - zap_request = signedEvent.asJson() - } - - try{ - - const queryString = `amount=${(amount * 1000).toString()}&nostr=${encodeURIComponent(zap_request)}&lnurl=${encoded_lnurl}`; - - console.log(queryString) - let ob = await fetchAsync(`${callback}?${queryString}`) - return ob["pr"] - } - catch(e){ - console.log("HELLO" + e) - } - } - catch(error){ - console.log("ZAP REQUEST: " + error) +export async function hasActiveSubscription(pubkeystring, tiereventid, tierauthorid, amounts) { + console.log("Checking for subscription") + let client = store.state.client + let subscriptionstatus = { + isActive: false, + validuntil: 0, + subscriptionId: "", } + let event7001id = EventId + console.log(pubkeystring) + // look if user has 7001 event, and if 7001 has been canceled by 7002 + const filter = new Filter().kind(7001).author(PublicKey.parse(pubkeystring)).pubkey(PublicKey.parse(tierauthorid)).event(EventId.parse(tiereventid)) //only get latest with these conditions + let evts = await client.getEventsOf([filter], Duration.fromSecs(5)) + console.log(evts) + if (evts.length > 0) { + + //console.log("7001: " + evts[0].asJson()) + let checkispaid = [] + for (let tag of evts[0].tags){ + /*if (tag.asVec()[0] === "e"){ + console.log("sanity check") + const filtercheck = new Filter().kind(37001).id(EventId.parse(tag.asVec()[1])).limit(1) // get latest with these conditons # customTag(SingleLetterTag.lowercase(Alphabet.A), [eventid]) + let sanityevents = await client.getEventsOf([filtercheck], Duration.fromSecs(5)) + if (sanityevents.length === 0){ + subscriptionstatus.isActive = false + return subscriptionstatus + } + else{console.log(sanityevents[0].asJson()) + } + } */ + + if (tag.asVec()[0] === "zap"){ + checkispaid.push(tag) + } + } + + let splitids = [] + for (let tag of checkispaid){ + splitids.push(PublicKey.parse(tag.asVec()[1])) + console.log(tag.asVec()) + } + if (checkispaid.length === 0){ + subscriptionstatus.isActive = false + return subscriptionstatus + } + + for (let evt in evts){ + event7001id = evts[0].id + } + + event7001id = evts[0].id + + const filter = new Filter().kind(7002).pubkey(PublicKey.parse(tierauthorid)).event(event7001id).limit(1) // get latest with these conditons # customTag(SingleLetterTag.lowercase(Alphabet.A), [eventid]) + let cancelevts = await client.getEventsOf([filter], Duration.fromSecs(5)) + if (cancelevts.length > 0) { + if (cancelevts[0].createdAt.asSecs() > evts[0].createdAt.asSecs()) { + console.log("A subscription exists, but has been canceled") + subscriptionstatus.isActive = false + subscriptionstatus.subscriptionId = event7001id.toHex() + return subscriptionstatus + } + } + else { + console.log("A subscription exists, checking payment status") - return null + + + const zapfilter = new Filter().kind(9735).pubkeys(splitids).event(event7001id).limit(checkispaid.length) + let zapevents = await client.getEventsOf([zapfilter], Duration.fromSecs(5)) + if (zapevents.length > 0) { + console.log(zapevents) + let timeofourlastzap = 0 + + let overallamount = 0 + + let overall = 0 + for (let tag of checkispaid){ + let split = parseInt(tag.asVec()[2]) + overall += split + } + for(let zapevent of zapevents) { + + + if (zapevent.createdAt.asSecs() > timeofourlastzap) { + timeofourlastzap = zapevent.createdAt.asSecs() + } + + for (let tag of zapevent.tags) { + if (tag.asVec()[0] === "description") { + + let event9734 = Event.fromJson(tag.asVec()[1]) + + + for (let tag of event9734.tags) { + if (tag.asVec()[0] === "amount") { + let amount = parseInt(tag.asVec()[1]) + console.log("AMOUNT: " + amount) + overallamount = overallamount + amount + } + } + } + } + } + + + let entry + for (let index in amounts){ + if(parseInt(amounts[index].amount) === overallamount ){ + entry = amounts[index] + } + } + + if(!entry){ + console.log("Undefined amount") + subscriptionstatus.isActive = false + subscriptionstatus.subscriptionId = event7001id.toHex() + //subscriptionstatus.validuntil = zapevent.createdAt.asSecs() + 24*60*60 + return subscriptionstatus + } + else{ + console.log(entry.amount + " " + entry.cadence) + if (entry.cadence === "daily"){ + if (timeofourlastzap + 24*60*60 > Timestamp.now().asSecs()){ + console.log("A daily subscription exists, and is active") + subscriptionstatus.isActive = true + subscriptionstatus.subscriptionId = event7001id.toHex() + subscriptionstatus.validuntil = timeofourlastzap + 24*60*60 + return subscriptionstatus + + } + } + else if (entry.cadence === "monthly"){ + if (timeofourlastzap + 31*24*60*60 > Timestamp.now().asSecs()){ + console.log("A monthly subscription exists, and is active") + subscriptionstatus.isActive = true + subscriptionstatus.subscriptionId = event7001id.toHex() + subscriptionstatus.validuntil = timeofourlastzap + 31*24*60*60 + return subscriptionstatus + + } + } + else if (entry.cadence === "yearly"){ + if (timeofourlastzap + 366*24*60*60 > Timestamp.now().asSecs()){ + console.log("A yearly subscription exists, and is active") + subscriptionstatus.isActive = true + subscriptionstatus.subscriptionId = event7001id.toHex() + subscriptionstatus.validuntil = timeofourlastzap + 366*24*60*60 + return subscriptionstatus + + } + } + + + + + + /*else if (tag.asVec()[0] === "bolt11"){ + let lnurl = tag.asVec()[1] + console.log(lnurl) + } */ + + + + + + } + // todo check that subscription is within the range + + + + } else { + console.log("A subscription exists, but no payment has been made") + subscriptionstatus.isActive = false + subscriptionstatus.subscriptionId = event7001id.toHex() + return subscriptionstatus + } + + } + } -export async function createBolt11Lud16(lud16, amount) { - if (lud16 === null || lud16 === ""){ - return null; + + else { + console.log("No subscription exists") + subscriptionstatus.isActive = false + return subscriptionstatus } +} + + + + - let url; - if (lud16.includes('@')) { // LNaddress - const parts = lud16.split('@'); - url = `https://${parts[1]}/.well-known/lnurlp/${parts[0]}`; - } else { // No lud16 set or format invalid - return null; - } - try { - console.log(url); - const response = await fetch(url); - const ob = await response.json(); - const callback = ob.callback; - const amountInSats = parseInt(amount) * 1000; - const callbackResponse = await fetch(`${callback}?amount=${amountInSats}`); - const obCallback = await callbackResponse.json(); - return obCallback.pr; - } - catch (e) { - console.log(`LUD16: ${e}`); - return null; - } - } diff --git a/ui/noogle/src/components/helper/Zap.vue b/ui/noogle/src/components/helper/Zap.vue new file mode 100644 index 0000000..3abc452 --- /dev/null +++ b/ui/noogle/src/components/helper/Zap.vue @@ -0,0 +1,270 @@ + + + + + \ No newline at end of file