diff options
Diffstat (limited to 'src/lib/git_events.rs')
| -rw-r--r-- | src/lib/git_events.rs | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/lib/git_events.rs b/src/lib/git_events.rs index 8689b33..2e9f797 100644 --- a/src/lib/git_events.rs +++ b/src/lib/git_events.rs | |||
| @@ -3,7 +3,7 @@ use std::str::FromStr; | |||
| 3 | use anyhow::{bail, Context, Result}; | 3 | use anyhow::{bail, Context, Result}; |
| 4 | use nostr::nips::{nip01::Coordinate, nip10::Marker, nip19::Nip19}; | 4 | use nostr::nips::{nip01::Coordinate, nip10::Marker, nip19::Nip19}; |
| 5 | use nostr_sdk::{ | 5 | use nostr_sdk::{ |
| 6 | hashes::sha1::Hash as Sha1Hash, Event, EventBuilder, FromBech32, Kind, Tag, TagKind, | 6 | hashes::sha1::Hash as Sha1Hash, Event, EventBuilder, EventId, FromBech32, Kind, Tag, TagKind, |
| 7 | TagStandard, UncheckedUrl, | 7 | TagStandard, UncheckedUrl, |
| 8 | }; | 8 | }; |
| 9 | use nostr_signer::NostrSigner; | 9 | use nostr_signer::NostrSigner; |
| @@ -37,6 +37,19 @@ pub fn get_commit_id_from_patch(event: &Event) -> Result<String> { | |||
| 37 | } | 37 | } |
| 38 | } | 38 | } |
| 39 | 39 | ||
| 40 | pub fn get_event_root(event: &nostr::Event) -> Result<EventId> { | ||
| 41 | Ok(EventId::parse( | ||
| 42 | event | ||
| 43 | .tags() | ||
| 44 | .iter() | ||
| 45 | .find(|t| t.is_root()) | ||
| 46 | .context("no thread root in event")? | ||
| 47 | .as_vec() | ||
| 48 | .get(1) | ||
| 49 | .unwrap(), | ||
| 50 | )?) | ||
| 51 | } | ||
| 52 | |||
| 40 | pub fn status_kinds() -> Vec<Kind> { | 53 | pub fn status_kinds() -> Vec<Kind> { |
| 41 | vec![ | 54 | vec![ |
| 42 | Kind::GitStatusOpen, | 55 | Kind::GitStatusOpen, |