From 436ff29135e3deade80a6e53e53d74dddb613481 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Thu, 31 Jul 2025 16:28:04 +0100 Subject: fix: mention marker ~> q tag NIP-10 update required for rust-nostr v0.43 update --- src/lib/git_events.rs | 38 ++++++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) (limited to 'src/lib') diff --git a/src/lib/git_events.rs b/src/lib/git_events.rs index 2e1f215..79f5772 100644 --- a/src/lib/git_events.rs +++ b/src/lib/git_events.rs @@ -184,7 +184,7 @@ pub async fn generate_patch_event( event_tag_from_nip19_or_hex( &event_ref, "proposal", - Marker::Reply, + EventRefType::Reply, false, false, )?, @@ -277,10 +277,17 @@ pub async fn generate_patch_event( .context("failed to sign event") } +#[derive(Debug, PartialEq)] +pub enum EventRefType { + Root, + Reply, + Quote, +} + pub fn event_tag_from_nip19_or_hex( reference: &str, reference_name: &str, - marker: Marker, + ref_type: EventRefType, allow_npub_reference: bool, prompt_for_correction: bool, ) -> Result { @@ -291,22 +298,41 @@ pub fn event_tag_from_nip19_or_hex( PromptInputParms::default().with_prompt(format!("{reference_name} reference")), )?; } + let marker = match ref_type { + EventRefType::Root => Some(Marker::Root), + EventRefType::Reply => Some(Marker::Reply), + EventRefType::Quote => None, + }; if let Ok(nip19) = Nip19::from_bech32(&bech32) { match nip19 { Nip19::Event(n) => { + if ref_type == EventRefType::Quote { + break Ok(Tag::from_standardized(nostr_sdk::TagStandard::Quote { + event_id: n.event_id, + relay_url: n.relays.first().cloned(), + public_key: None, + })); + } break Ok(Tag::from_standardized(nostr_sdk::TagStandard::Event { event_id: n.event_id, relay_url: n.relays.first().cloned(), - marker: Some(marker), + marker, public_key: None, uppercase: false, })); } Nip19::EventId(id) => { + if ref_type == EventRefType::Quote { + break Ok(Tag::from_standardized(nostr_sdk::TagStandard::Quote { + event_id: id, + relay_url: None, + public_key: None, + })); + } break Ok(Tag::from_standardized(nostr_sdk::TagStandard::Event { event_id: id, relay_url: None, - marker: Some(marker), + marker, public_key: None, uppercase: false, })); @@ -335,7 +361,7 @@ pub fn event_tag_from_nip19_or_hex( break Ok(Tag::from_standardized(nostr_sdk::TagStandard::Event { event_id: id, relay_url: None, - marker: Some(marker), + marker, public_key: None, uppercase: false, })); @@ -574,7 +600,7 @@ pub async fn generate_cover_letter_and_patch_events( Tag::hashtag("root"), Tag::hashtag("revision-root"), // TODO check if id is for a root proposal (perhaps its for an issue?) - event_tag_from_nip19_or_hex(&event_ref,"proposal",Marker::Reply, false, false)?, + event_tag_from_nip19_or_hex(&event_ref,"proposal",EventRefType::Reply, false, false)?, ] } else { vec![ -- cgit v1.2.3