diff options
| author | DanConwayDev <DanConwayDev@protonmail.com> | 2024-12-02 05:58:58 +0000 |
|---|---|---|
| committer | DanConwayDev <DanConwayDev@protonmail.com> | 2024-12-02 05:58:58 +0000 |
| commit | 830056c10111c6b2049513323e7e7dba81260138 (patch) | |
| tree | 8a7e66593aef942b239e39bebef3226ad1d63b5d /src/lib | |
| parent | 8c763d0483309c85a32a7f4a20ba0279083ee40f (diff) | |
fix(repo_ref): `try_from` capture `euc`
if there is no marker or "euc".
also capture name and description even if there are additional items
in the tag array.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/repo_ref.rs | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/lib/repo_ref.rs b/src/lib/repo_ref.rs index d566b43..69fbe64 100644 --- a/src/lib/repo_ref.rs +++ b/src/lib/repo_ref.rs | |||
| @@ -57,9 +57,9 @@ impl TryFrom<(nostr::Event, Option<PublicKey>)> for RepoRef { | |||
| 57 | 57 | ||
| 58 | for tag in event.tags.iter() { | 58 | for tag in event.tags.iter() { |
| 59 | match tag.as_slice() { | 59 | match tag.as_slice() { |
| 60 | [t, id] if t == "d" => r.identifier = id.clone(), | 60 | [t, id, ..] if t == "d" => r.identifier = id.clone(), |
| 61 | [t, name] if t == "name" => r.name = name.clone(), | 61 | [t, name, ..] if t == "name" => r.name = name.clone(), |
| 62 | [t, description] if t == "description" => r.description = description.clone(), | 62 | [t, description, ..] if t == "description" => r.description = description.clone(), |
| 63 | [t, clone @ ..] if t == "clone" => { | 63 | [t, clone @ ..] if t == "clone" => { |
| 64 | r.git_server = clone.to_vec(); | 64 | r.git_server = clone.to_vec(); |
| 65 | } | 65 | } |
| @@ -73,6 +73,14 @@ impl TryFrom<(nostr::Event, Option<PublicKey>)> for RepoRef { | |||
| 73 | { | 73 | { |
| 74 | r.root_commit = commit_id.clone(); | 74 | r.root_commit = commit_id.clone(); |
| 75 | } | 75 | } |
| 76 | [t, commit_id, marker] | ||
| 77 | if t == "r" | ||
| 78 | && marker == "euc" | ||
| 79 | && commit_id.len() == 40 | ||
| 80 | && git2::Oid::from_str(commit_id).is_ok() => | ||
| 81 | { | ||
| 82 | r.root_commit = commit_id.clone(); | ||
| 83 | } | ||
| 76 | [t, relays @ ..] if t == "relays" => { | 84 | [t, relays @ ..] if t == "relays" => { |
| 77 | for relay in relays { | 85 | for relay in relays { |
| 78 | if let Ok(relay_url) = RelayUrl::parse(relay) { | 86 | if let Ok(relay_url) = RelayUrl::parse(relay) { |