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

Quote posts #461

Closed
jamietanna opened this issue Mar 25, 2023 · 59 comments
Closed

Quote posts #461

jamietanna opened this issue Mar 25, 2023 · 59 comments
Labels

Comments

@jamietanna
Copy link
Contributor

Quoting a post on Mastodon ends up looking a bit odd (https://indieweb.social/@www.jvt.me@www.jvt.me/110084066464382647) as the original content doesn't get presented - is there something we can do to ie add the link to the post being quoted, rather than trying to embed it?

@snarfed
Copy link
Owner

snarfed commented Mar 25, 2023

Hmm, interesting question!

Afaik Mastodon deliberately has no native quote feature, by design. Background in eg mastodon/mastodon#20673, among others. We could try to construct it ourselves, manually, with text and minimal HTML inside content, but I'm always reluctant to do that kind of thing.

I wonder how other fediverse software supports quoting, if at all, that might be a good place to start.

BF currently converts mf2 quotation-of to AS2 attachment. Here's the log for this post. Mastodon's AP docs say attachment is for media, and don't say anything about quotes, nor do the AS2 core or vocab specs.

@snarfed snarfed changed the title Improve Mastodon repost (quote) How to handle wm => AP u-quote-of? Apr 9, 2023
@snarfed
Copy link
Owner

snarfed commented Apr 24, 2023

Sounds like the semi-standard way to do AP quotes is FEP-e232 (https://codeberg.org/fediverse/fep/issues/14, https://socialhub.activitypub.rocks/t/announce-activity/3129/4 ). Looks like it's a Note with a Link tag and content in content, eg:

{
    "type": "Note",
    "content": "This is a quote:<br>RE: https://example.com/objects/123",
    "tag": [
        {
            "type": "Link",
            "mediaType": "application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"",
            "href": "https://example.com/objects/123",
            "name": "RE: https://example.com/objects/123"
        }
    ]
}

I assume the RE: https://example.com/objects/123 part of the content is optional.

@trwnh
Copy link

trwnh commented Jul 12, 2023

the RE: <url> is the part that gets replaced by tag[0]. basically name is the microsyntax. if you wanted to have explicit affordance for "quote tweet" style semantics, you can use rel.

for example, foundkey does this: https://akkoma.dev/FoundKeyGang/FoundKey/pulls/318 and expects at least one of the following rels:

  • https://misskey-hub.net/ns#_misskey_quote
  • http://fedibird.com/ns#quoteUri
  • https://www.w3.org/ns/activitystreams#quoteUrl

basically, at some point these three uris were used as JSON-LD properties for the same thing.

@snarfed
Copy link
Owner

snarfed commented Jul 12, 2023

Oh wow interesting, microsyntax. Whee, and ugh. Thank you!

@snarfed
Copy link
Owner

snarfed commented Nov 29, 2023

This is officially on Mastodon's roadmap: mastodon/mastodon#309, https://joinmastodon.org/roadmap

@snarfed snarfed changed the title How to handle wm => AP u-quote-of? Quote posts Feb 12, 2024
@jamietanna
Copy link
Contributor Author

Quotes are coming in Mastodon 4.4 - https://oisaur.com/@renchap/112299860209222424

@temtemy
Copy link

temtemy commented May 4, 2024

The URL to the quoted post does get included when it comes to Misskey quote posts, though for some reason the URL is not a link. And they should be shown as quote posts in Bluesky anyway because it natively supports it.

Example: https://bsky.app/profile/mima.makai.chaotic.ninja.ap.brid.gy/post/3krmzapfowqg2
Original Misskey post: https://makai.chaotic.ninja/notes/9sv2d3tpar

@qazmlp
Copy link

qazmlp commented May 4, 2024

This seems to be because Misskey doesn't attach a "Link" "tag" for the quote URL.
Which also explains why some clients fail to open these quoted posts natively, in my experience.

(Bridgy probably shouldn't require a "tag" for turning an <a> into a link in general, only for rewriting the href to a bridged one where available.)

Misskey instead attaches the quote URL under the canoncial IRI "https://misskey-hub.net/ns#_misskey_quote" directly to the post to enable quote presentation, which is documented here: https://misskey-hub.net/ns/

(I wouldn't use "https://www.w3.org/ns/activitystreams#quoteUrl".
That appears to be not canonical and potentially collision-prone with future protocol updates.)

@temtemy
Copy link

temtemy commented May 4, 2024

Btw quote posts from Bluesky to AP also seem to fail, I don't see any indication of a quote whether it's Mastodon or Misskey.

Mastodon example: https://yamabi.co/@makai.chaotic.ninja@bsky.brid.gy/112278586683792932
Misskey example: https://makai.chaotic.ninja/notes/9s5ccwqg2f
Original Bluesky quote post: https://bsky.app/profile/did:plc:cu33jkvtkoxyfd45wg7hrhra/post/3kq7qpwkces2q

@AtiusAmy
Copy link

AtiusAmy commented May 5, 2024

I feel like Misskey quotes support would be nice as Threads added that as well!

@snarfed
Copy link
Owner

snarfed commented May 8, 2024

Note to myself: Bluesky quote post app.bsky.embed.records aren't yet implemented in granary's bluesky.py. Need to do that first here. Would be a good starter project for anyone else interested in contributing!

@wakest
Copy link

wakest commented May 10, 2024

This seems like it should get some priority cause how you have it now the feeds with people who are Quote posting a lot totally don't make any sense cause you don't have ANY indication of that they are talking about something else. No need to wait for mastodon to do anything, just include the url of the post they QP about

@npdoty
Copy link

npdoty commented Jun 14, 2024

This would be a huge help for those of us following bridged Bluesky accounts from the fediverse. As it is, many posts simply don't make any sense.

Some Mastodon clients are already handling some version of quoting, even if it's not a part of the core Mastodon software, just by having a URL, and then doing link preview rendering. It's definitely effective, and would make the bridged messages a lot less confusing.

@AtiusAmy
Copy link

We could also do something like Threads. Threads will have a link to the quote post, but if you're on a software with quote post (for ex: Misskey) it will show as quotes. On software that dont like Mastodon will show as link and if someone quote post a post from someone who is not bridged it will also be a link no matter what software you're on.

English is not my first language, so i must apologize if my point seem not concise

(PS: I also kinda want quote post bridging from AP -> Bsky, I'm from Misskey (one of the many software that supports it) and it looks weird on bsky)

Screenshot_20240615-044947_Firefox.png

Screenshot_20240615-045049_Aria.png

@snarfed
Copy link
Owner

snarfed commented Jun 18, 2024

Progress. Here's how Bluesky quote posts now look in Mastodon (https://bsky.app/profile/snarfed.bsky.social/post/3kv6hsw44wk2q => https://indieweb.social/@snarfed.bsky.social@bsky.brid.gy/112636479451138698 ):

image

@snarfed
Copy link
Owner

snarfed commented Jun 18, 2024

I'm still looking for a Misskey instance I can create an account on to test this. I've looked at https://misskey.io/ and https://quietplace.xyz/ , and neither of them can see @bsky.brid.gy@bsky.brid.gy, so I can't enable the bridge on them. makai.chaotic.ninja, which @temtemy mentioned above, doesn't have open signups.

@AtiusAmy, any thoughts on where I can test this?

@nanikamado
Copy link

nanikamado commented Jun 18, 2024

Here is the link for @bsky.brid.gy@bsky.brid on misskey.io:
https://misskey.io/@bsky.brid.gy@bsky.brid.gy

@snarfed
Copy link
Owner

snarfed commented Jun 18, 2024

Ah, thank you! And on quietplace.xyz : https://quietplace.xyz/@bsky.brid.gy@bsky.brid.gy

Any idea why it doesn't show up in user search on those instances? Or on eg the users tab of https://quietplace.xyz/instance-info/bsky.brid.gy ?

@snarfed
Copy link
Owner

snarfed commented Jun 18, 2024

Useful thoughts from @qazmlp in snarfed/granary@3fc6eb9#commitcomment-143259713 :

Since posts can be edited, the pointed to post may change from the state it was quoted in. Bluesky appears to have laid some groundwork to detect this (I assume to display a notice in such cases, once editing lands and content can diverge).

Fediverse instances (unfortunately) don't do this, and it was only mentioned once in FED-e232: Object Links. The proposal linked there was also closed, so I'm just going to assume it's both not planned and, if it was, would look a bit more complex than what Bluesky is doing 🤷

The alternative is to detect and notify users when a post they've quoted changes, but that's neither reliable in a federated system nor would it work for quoters who don't use social media enough to react. Oh well. Someone might eventually go ahead and do it if it becomes a serious-enough problem.

It seems like current inbox delivery could easily be extended to send Updates for a given post to all authors of known quote posts of that post, which could help with this. I don't know if any fediverse projects currently do that, though. I'm guessing no.

@dploeger
Copy link

Thanks a lot for your work!

@hybridhavoc
Copy link

That's interesting because the link posted above (https://fed.brid.gy/r/https://bsky.app/profile/did:plc:vzeclfzjqfezzecw543cafaq/post/3kvc5vutiol2v) works for me, sends me to the Bluesky post. But I've seen some other bridged Bluesky posts today (like this one https://darkfriend.social/@mmasnick.bsky.social@bsky.brid.gy/112644015357113938) that still just have the link to the JSON.

image

My instance is Mastodon version 4.2.9. The quoted post is probably not itself bridged, so I don't know if that's actually the problem - that it's meant to display differently if it is bridged. If there is intended to be an embed, so far as I can tell that embed never appears for me.

@dploeger
Copy link

@hybridhavoc yes it does. I'm sorry. I thought it would lead to a Mastodon website for it, but bridgy (intelligently) directly forwards to BlueSky. What I originally meant was the link INSIDE that post, after the RE (see the screenshot above)

@snarfed
Copy link
Owner

snarfed commented Jun 19, 2024

@hybridhavoc Mastodon doesn't support quote posts yet, so they won't show embeds at all. But you're also right that quoted posts that aren't bridged won't show as embeds even on platforms that do support them.

I think I've fixed the RE: links now. Example: https://bsky.app/profile/snarfed.bsky.social/post/3kvcdqj4vik2f => https://indieweb.social/@snarfed.bsky.social@bsky.brid.gy/112644716938090636 , screenshot below. Please post here again if you see any new bridged quote posts created after ~11:30a PT today that still have the old bad links!

image

@mackuba
Copy link

mackuba commented Jun 19, 2024

Ooh, I was just going to ask if they could include the bsky.app URL instead of the ugly /convert/at:// thing, let me test this…

@mackuba
Copy link

mackuba commented Jun 19, 2024

Yup, looking good, thanks @snarfed! 👏

Screen Shot 2024-06-19 at 20 51 04

@snarfed
Copy link
Owner

snarfed commented Jun 19, 2024

Oh wow, nice, the link preview turns it into a hacky approximation of a quote post anyway, even on Mastodon. Love it.

@AtiusAmy
Copy link

https://bsky.app/profile/AmyIsCoolz.social.atiusamy.com.ap.brid.gy/post/3kvcmqcpywtt2

Does quote post not work with images on bsky or it can't fetch that specific post of mine (which was bridged afaik)

@AtiusAmy
Copy link

AtiusAmy commented Jun 19, 2024

AP->AT
huh, when I quote post myself (without images) it does not seem to be bridged at all, I'll try again in a sec

@AtiusAmy
Copy link

AtiusAmy commented Jun 19, 2024

Phew Not sure if I should create a new issue, but I narrowed down the problem!

You can see the difference in bridged post here:

https://social.atiusamy.com/@atiusamy

https://bsky.app/profile/atiusamy.social.atiusamy.com.ap.brid.gy

  1. If I quote post a Bluesky user, it is bridged
  2. If I quote post a Fediverse user (that is bridged) it will not be be bridged, however if I send an image in the quote post, it will be bridged just not the quote post.

@snarfed
Copy link
Owner

snarfed commented Jun 19, 2024

Thanks for the investigation @AtiusAmy! Will look.

@snarfed snarfed reopened this Jun 19, 2024
@dploeger
Copy link

I can confirm that it works perfectly now. Thanks a lot for all your work, people! ♥️

@AtiusAmy
Copy link

Thanks for the investigation @AtiusAmy! Will look.

Ok I found out something
image
image

The amount of post is the same on bsky and AP, despite having less post on the BSKY side (You can count). Not sure what's going on, maybe it is bridged but the appview won't render?

@jamietanna
Copy link
Contributor Author

jamietanna commented Jun 22, 2024

Noticed that my first quote hasn't rendered properly - maybe my MF2 markup?

Post: https://fed.brid.gy/r/https://www.jvt.me/mf2/2024/06/o0vwu/

Screenshot_20240622-225708

Or is this expected?

@AtiusAmy
Copy link

image
Probably expected? Misskey supports native quote posting and they doesn't seem to show anything (aside from the weird unknown thing).

@snarfed
Copy link
Owner

snarfed commented Jun 22, 2024

Interesting! We haven't really tested web => AP quote posting yet; we clearly need to. @jamietanna I think your mf2 here is probably fine, the (initial) problem here is that BF interpreted it as an article quote, which doesn't trigger the rest of its quote post pipeline. Clearly wrong, the quoted URL is an AP note, so we can do better.

This issue is pretty long and hairy, I'll create a new one.

@snarfed
Copy link
Owner

snarfed commented Jun 22, 2024

(Oh and yeah @AtiusAmy is right, Mastodon itself doesn't support quote posts so you won't see it properly there anyway, but BF isn't quite working here regardless.)

@AtiusAmy
Copy link

Thanks for the investigation @AtiusAmy! Will look.

Ok I found out something
image
image

The amount of post is the same on bsky and AP, despite having less post on the BSKY side (You can count). Not sure what's going on, maybe it is bridged but the appview won't render?

@snarfed Do you might know the reason of that (the post that aren't bridged are the quote post of AP user)

@snarfed
Copy link
Owner

snarfed commented Jun 23, 2024

@AtiusAmy I don't know for sure, but that's a good guess!

snarfed added a commit that referenced this issue Jun 25, 2024
for #461 , fixes AP => ATProto quote post of AP original post that was bridged
@snarfed
Copy link
Owner

snarfed commented Jun 25, 2024

OK @AtiusAmy I think I've fixed this issue, bridging fediverse quote posts of bridged native fediverse posts to Bluesky. (Phew, that's a mouthful.) Feel free to try again!

@AtiusAmy
Copy link

OK @AtiusAmy I think I've fixed this issue, bridging fediverse quote posts of bridged native fediverse posts to Bluesky. (Phew, that's a mouthful.) Feel free to try again!

https://bsky.app/profile/atiusamy.social.atiusamy.com.ap.brid.gy/post/3kvrsg4xahiw2

Took a while to bridge but it works!

@snarfed
Copy link
Owner

snarfed commented Jun 25, 2024

Great! Yeah we were backed up for a bit, but we're through the backlog now.

@snarfed snarfed closed this as completed Jun 25, 2024
snarfed added a commit that referenced this issue Jun 26, 2024
@dploeger
Copy link

@snarfed the problem with the link to the JSON representation instead of the quoted post somehow is back.

@snarfed
Copy link
Owner

snarfed commented Jun 26, 2024

@dploeger yes! sorry about that, tracked in #1154. I fixed it last night but had to roll back the fix. Attempt #2 is deploying now.

@silverpill
Copy link

Hello @snarfed ! I can confirm that your FEP-e232 implementation is correct.

You may also add rel property with value https://misskey-hub.net/ns#_misskey_quote. Some implementations do that to indicate that object link is a quote, though this is not required.

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

No branches or pull requests