Kinds 1 & 6 special handling
Processing kinds 1 & 6 before displaying
Side effects
Every time kind 1 or kind 6 events are requested, the following other kinds are also returned:
- kind
0used to display information about the author - kind
10002used to display information about reposts/quotes- for each:
- kind
6- where the
ptag this event = pubkey of kind10002event
- where the
- or kind
1with aqtag- the
qtag has he same structure as theetag in the nostr protocol + 1 custom alteration we made, a 4th element, which is the pubkey of the author:["q", <32-bytes lowercase hex of the id of another event>, <recommended relay URL, optional>, <32-bytes lowercase hex-encoded public key of the event creator>]- where this new 4th element = pubkey of kind
10002event
- the
- kind
- for each:
- kind
7used to display if the logged-in user liked that post- matched by its
etag and itspubkey
- matched by its
- additional kind
1withetag used to display if the logged-in user has a reply to that post- matched by its
["e", <post-event-id>, "", "root"]tag and itspubkey
- matched by its
- additional kind
1withqtag used to display if the logged-in user has a quote to that post- matched by its
qtag and itspubkey
- matched by its
- additional kind
6used to display if the logged-in user has a repost to that post- matched by its
etag and itspubkey
- matched by its
multiple kind6400` used to display various counts- matched by its
itag. I.E.:[ "i", "<kind 1 event id>", "event", "", <marker> ], wheremarkercan be one of:reactionsrepliesquotesreposts
- matched by its
Querying the data the reposts/quotes point to
Achieved by simulating a traditional request-response flow via an ad-hoc subscription to a random r tag of the kind 10002 event associated with the kind 6 or the kind 1+e tag events, with 1 filters JSON:
{"kinds":[1],"ids":["eventId1","eventId2","eventId3",...,"eventIdN"]}
Where the ids array is built from the e tag of the kind 6 events or the 2nd element*(event id)* of the q tag array of the kind 1 events that are associated with the kind 10002 event through their author as described above
If multiple r tags must be queried (1 for every kind 10002), each of them must be independent and done in parallel
This also generates the same side effects mentioned above, but the kind 10002 one should be ignored; we only have 2 levels of depth max