Add prefixes to help when parsing values

This commit is contained in:
arthurfranca 2024-05-17 12:18:39 -03:00
parent a6a71cd48b
commit 6af79cbf93

35
22.md
View File

@ -19,21 +19,24 @@ or on an off-nostr news article or to reply to another comment.
A comment is an event of `kind:1111` with plaintext `.content`
(no HTML, no Markdown nor other formatting).
It must have a `k` tag pointing to the kind of the subject being commented on.
For example, when commenting on a `kind:30023`, the `k` tag is set to "30023".
When replying to another `kind:1111`, the `k` tag is set to "1111".
If commenting on an `https://abc.com/articles/1` article the `k` tag is set to "https://abc.com" (its domain).
The `k` tag is useful to fetch top-level comments about events of specific kinds (or domains), for example,
by filtering with `{ "#k": ["30023"], "kinds": [1111] }`.
**It must have a `k` tag** pointing to the kind of the subject being commented on.
It has a prefix: `"n:"` for nostr subjects and `"r:"` for url ones.
An uppercase `K` tag must also be present. The difference is that it is set to the original post (the one starting the thread) kind.
For example, when commenting on a `kind:30023`, the `k` tag is set to "n:30023".
When replying to another `kind:1111`, the `k` tag is set to "n:1111".
If commenting on an `https://abc.com/articles/1` article the `k` tag is set to "r:https://abc.com" (its domain).
The `k` tag is useful to fetch top-level comments about events of specific kinds (or domains), for example,
by filtering with `{ "#k": ["n:30023"], "kinds": [1111] }`.
**An uppercase `K` tag must also be present.** The difference is that it is set to the original post (the one starting the thread) kind.
This way a client can request all comments related to the kind it supports, not only the top-level comments.
### Threads
There is always an `o` tag pointing to the original post that started the thread.
**There is always an `o` tag** pointing to the original post that started the thread.
It can be an event id (with an `"i:<event-kind>:<event-pubkey>:"` prefix),
an event address (`"a:"` prefix) or an url (`"<protocol>"` prefix). The second value
an event address (`"a:"` prefix) or an url (`"r:"` prefix). The second value
is the optional recommended relay url where the referenced event may be found.
This tag is useful to load all messages of a thread at once.
@ -43,9 +46,9 @@ Examples:
- `["o", "i:<event-kind>:<event-pubkey>:<event-id>", "<relay-url, optional>"]`
- `["o", "a:<event-kind>:<event-pubkey>:<d-tag, optional>", "<relay-url, optional>"]`
- `["o", "https://abc.com/articles/1/"]`
- `["o", "r:https://abc.com/articles/1/"]`
Also, there is always an `r` tag pointing to the subject being directly commented on or replied to, using the
Also, **there is always an `r` tag** pointing to the subject being directly commented on or replied to, using the
same structure of the `o` tag.
This tag is useful to lazily load a thread.
@ -63,13 +66,13 @@ the client supports the [NIP-65](65.md) relay usage spec,
content: 'Agree with your comment.',
tags: [
// referencing the OP
["o", "https://abc.com/articles/1/"],
["o", "r:https://abc.com/articles/1/"],
// replying to a parent kind:1111 comment
["r", "i:1111:f7234bd4c1394dda46d09f35bd384dd30cc552ad5541990f98844fb06676e9ca:5c83da77af1dec6d7289834998ad7aafbd9e2191396d75ec3cc27f5a77226f36"],
// the OP "kind"; for an url, the kind is its domain
["K", "https://abc.com"]
["K", "r:https://abc.com"]
// the parent kind
["k", "1111"]
["k", "n:1111"]
]
// other fields
}
@ -84,9 +87,9 @@ the client supports the [NIP-65](65.md) relay usage spec,
["o", "a:30023:3c9849383bdea883b0bd16fece1ed36d37e37cdde3ce43b17ea4e9192ec11289:f9347ca7"],
["r", "a:30023:3c9849383bdea883b0bd16fece1ed36d37e37cdde3ce43b17ea4e9192ec11289:f9347ca7"],
// the OP kind
["K", "30023"]
["K", "n:30023"]
// the parent kind
["k", "30023"],
["k", "n:30023"],
// the nostr:npub1... mentioned on .content
["p", "84dee6e676e5bb67b4ad4e042cf70cbd8681155db535942fcc6a0533858a7240"]
]