Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Want the ability to see all quotes of a post #616

Open
alexgleason opened this issue Jun 20, 2023 · 18 comments
Open

Want the ability to see all quotes of a post #616

alexgleason opened this issue Jun 20, 2023 · 18 comments

Comments

@alexgleason
Copy link
Member

I was reluctant to bring this up because of all the drama of NIP-10 and NIP-27, but I think the current solution is still wrong. Quotes of a post should be indexable and able to be viewed.

This is related to #523

IMG_20230620_091944

I would propose using a "q" tag. It's effectively the same as "e" except it's explicitly a quoted event on kind 1 notes, where "e" is just a reply.

@fiatjaf
Copy link
Member

fiatjaf commented Jun 20, 2023

Are you a nym of @arthurfranca?

@arthurfranca
Copy link
Contributor

Heheh I've also pointed out in the past that using e tags to reference events in any context has problems (NIP-10 marks can't be filtered relay-side).

However, when i brought back to life NIP-18 and also when I tried to change how reply threads should be built, I had to accept the "rule" that whatever main nostr clients were doing would become the NIPs, even if it was a poor implementaion. So if I want a different behavior, I must send a PR before people had already implemented things.

So the immutable reality is this: one variant of the reposts is kind 6 (this you can filter) and the other one is kind 1 with mention and e tag (this you can't really filter).

For the kind 1 variant, we could add a ["q", "true"] tag (NIP-18 Quote Reposts) so to be able to filter this kind of repost. It would be a good change that would make no harm imo as it would be just an addition that wouldn't break things. What do you think?

But good luck convincing Damus, Amethyst, Coracle, Snort, Iris, Gossip etc to add it or waiting for them to read the updated NIP.

@arthurfranca
Copy link
Contributor

@alexgleason also check this NIP-17 PR which would also help.

@fiatjaf
Copy link
Member

fiatjaf commented Jun 20, 2023

You know Twitter didn't display quote counts at all until last year perhaps? I think they had a data model pretty similar to Nostr.

With that said I think if maybe there is a way to move on with these things slowly and without breaking other clients and without bloating the protocol in the end we could maybe try to do it.

@alexgleason
Copy link
Member Author

I think it's a feature users expect, but I definitely see it as part of a long-term plan. For now I just want an issue open.

I'll probably try a "q" tag in Ditto later and see how that goes. As arthurfranca said, it's possible to do this without breaking backwards-compatibility.

@arthurfranca
Copy link
Contributor

["q", "true"], ["q", "t"] or ["q", "1"] which one is best?

@alexgleason
Copy link
Member Author

@arthurfranca It would have to be ["q" <event-id>] so you could query the quotes of a post. For backwards compat, clients could still add an "e" tag.

@arthurfranca
Copy link
Contributor

arthurfranca commented Jul 11, 2023

Ok, just saw a random thread on nostr saying Damus (Highlighter also) is using ["q" <event-id>] for atleast 6 weeks already

Edit: event example. It has no fallback e tag but a nostr:note1... at the end of the content that holds the same event id of the q tag.

It is interesting that the q tag is for identifying it as a quote/boost and enabling counting/fetching, while the nostr:note1... mention (would be better if nevent1) tells the client exactly where it should be placed.

@ryzizub
Copy link

ryzizub commented Jul 14, 2023

Yes, the 'q' tag is a good way to handle quotes, I like it a lot. I think we should also keep the e tag with mention marker for a while as fallback but at the end we don't need that or i'm wrong (When I first saw Damus q tag i thought we need both, but i don't find reason keeping that mention e tag, root and reply are still needed for sure)

@fiatjaf
Copy link
Member

fiatjaf commented Jul 14, 2023

Using a q tag doesn't sound bad.

@v0l @jb55 @staab @pablof7z what do you have to say about this?

@pablof7z
Copy link
Member

yeah, I like q tag a lot and afaik damus already uses it and so does highlighter; I think that's the right way forward

no e tag though; that's redundant and quotes don't belong in replies anyway so it's not breaking prior implementations, it's actually fixing them

@fiatjaf
Copy link
Member

fiatjaf commented Jul 14, 2023

I like quotes in replies, but I guess it is fine to not have them.

@jb55
Copy link
Contributor

jb55 commented Jul 14, 2023

yeah damus already uses q and no e

@jb55
Copy link
Contributor

jb55 commented Jul 14, 2023

I like quotes in replies, but I guess it is fine to not have them.

if you're replying then it's already quoted above the thing you're replying to in some sense, so not sure when this makes sense. many clients already use an e tag when quoting and it shows up in damus threads, looks a bit weird.

@arthurfranca
Copy link
Contributor

@jb55 you created kind 6 reposts that have the stringified JSON of the reposted event inside the .content for fast lookups (no need to ask relay for the event using the e tag value).

But for quotes you decided not to add the stringified JSON in some tag. Why is that?

@jb55
Copy link
Contributor

jb55 commented Jul 14, 2023

it was always just an optimization.. I still could? damus got better at fetching notes inline. it's still not as reliable as kind6 reposts but it works well enough.

@jb55
Copy link
Contributor

jb55 commented Jul 14, 2023

now that we have longer notes like longform, the optimization is looking less attractive.

@staab
Copy link
Member

staab commented Jul 14, 2023

q makes sense to me

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants