supakaity, to random
@supakaity@blahaj.zone avatar

Preface: This is a long, technical post so I apologise in advance. Please avert your eyes if such things offend you.

Hi everybeings!

Overview

@ada and I have discussed many areas where we see problems in the way the Fediverse currently works and where would like to see improvements made to improve safety of the fediverse.

Safety on the fediverse is one of the topics we hold most dear.

One of these areas (and one that has recently garnered a lot of attention) has been in the area of full-text search, and despite the option for account-wide no-crawl options in many pieces of fediverse softwares, this option is not-federated, non-specific, non-granular and not-for-purpose with regards to fediverse searching. It's specifically designed and worded for crawler bots at a html scraping level, and while we could repurpose it for fedi-searching, it just doesn't feel right or quite fit.

There's been a lot of talk on a lot of different levels out there, but nobody's come to a concensus. A lot of people are talking about how we should do it and what standards we should use, and generally making the whole concept a lot more complicated than it needs to be.

In this post, I want to share with you some of the ideas that I've gathered through my research, and implemented in a way that is simple enough (KISS), not overly complicated (YAGNI) yet still fit for the purpose I need as both a software engineer and an instance admin, and that anyone accessing the content will need.

The idea in sharing this is not to convince me that it shouldn't be done, or to create the absolutely most perfect solution possible that's going to take 20 years to build and will be outdated by the time we get there.

This will be getting built and going out in weeks, not months, not next year. It's needed now. This is my current plan how to implement something we needed months ago, now. This is your chance to change my mind and help refine this plan before I start really coding it up.

Technical/implementation details

A lot of these options will be settable as a default value in your settings as well as at an individual post / file level during composition or afterwards at editing stage.

In terms of inbound federated AP objects which do not support these new fields, we will try to infer the intent based off existing AP fields and other metadata when present.

Specifically, we will be using the Mastodon Account Lookup API (GET /api/v1/accounts/lookup?acct=) to get and store the noindex flag during actor creation/refresh. This will also allow us to put the noindex meta tag on any HTML pages containing that actor's posts.

Searchability

So you don't want people to be able to search for you. But is that everybody? Maybe you want your followers to be able to find your posts? Maybe the people you mention should be able to find your post? What about actual users on your local instance? Maybe a particular post you never want to appear in searches? Maybe a particular post you write contains stuff you want everyone to see?

We will be adding a global default and per-post override federated in AP as hk:searchableBy which will be settable to public, private or a combination of followers, mentions or local. This is different to the currentvisibility in that you can have a public visibility post that is searchable by followers and mentions for example.

{
    ...
    "searchableBy": ["followers", "mentions"]
}

Interactivity

The other problem is that at the moment you can't control who can reply, boost, vote and/or react to your posts.

To this end, we will be adding per-post overrides federated in AP as hk:canReply and hk:canInteract which will allow you to specify like on searches a combination of public, private, followers, mentions and local for replying to, and boost, voting or reacting to your posts respectively.

{
    ...
    "canReply": ["mentions"],
    "canInteract": ["public"]
}

Licensing

Licensing and attribution can get pretty tricky. On the fediverse, we're assuming that if you're making a post, then you have the rights and willingness to let the content be federated. If you didn't you wouldn't post.

However posting content sometimes requires you to provide the license and attribution that you're using along with the content. At the moment there's no reasonable or standardised way to provide this information on an image or in a post, thus you're in breach if you post a CC-BY licensed image.

So to alleviate this, we will be providing 2 federated AP fields hk:licensing and hk:attribution. The licensing field will contain the URL of the license under which the content is being shared and the attribution will contain any links to the source content/s and/or creator/s.

{
    ...
    "license": "https://creativecommons.org/licenses/by-sa-nc/4.0/",
    "attribution": [
        "https://github.com/supakaity/icons"
    ]
}

Crawlability

So crawlability is about indexing of the content by external parties whether they be search engines or fedicrawlers. It will provide a per-object level flag under the AP field hk:crawlable that lists whether the item may be processed by a bot. The possible values are true or false.

{
    ...
    "crawlable": false
}

Quotability

Now this is a controvertial one. Sometimes people out there don't mind their posts being boosted, but don't want them to be quoted. You know what we say? If you don't want your posts quoted, we should respect that and not allow people to quote you. So we'll be supplying an AP field hk:canQuote that lists who can quote your posts using the same combination of actor types as above.

{
    ...
    "canQuote": ["followers"]
}
fediversereport,
@fediversereport@mastodon.social avatar

@supakaity @ada Great work! To be clear, this is something you are proposing to be added to right, federate it out, with the hope that other software will add implementations that respect this?

jo, to random

Best part of the post editing feature coming to is you can add a content warning to your existing post and alt text to your attached images.

No more excuses, folks.

RE: https://blahaj.zone/notes/9ee3y442n3

jo,

And @supakaity went and did it. Now available on the fork of
@HistoPol

testing, to random

fyi: i just tried to boost this post while also adding a cw to it (experimenting a lil bit...), but unfortunately, adding the cw did not work

RE: https://calckey.social/notes/9gu9o2lmnfyt6b2x

testing,

adding a cw to a boosted post does not yet work > quoting a post and adding a cw to it works fine, though ❤️

testing,

to add a cw to an existing post written by somebody else is both intriguing and new - so i am not surprised about confusion regarding this concept ❤️

testing,

i don't really know - this is why i would like to test this function ❤️

testing,

this is the issue for real! i would love to see this feature implemented in activitypub tbh

maikelthedev, to fediverse

I've somehow settled on a working environment where I use interchangeably my and accounts in my PC.

to follow a long thread I prefer Masto.
to reply on that thread with more than 500 chars, I continue from Hajkey
to find content I use Hajkey's antennas.
to find people, definitely Hajkey. I'm much faster being over to hover over a name to see all the details before I decide to follow or not.
to keep up with what's going on with the people I follow: Mastodon. Home tab is easier on Masto.

Natasha_Jay,

@RiversideBryan @maikelthedev
For me I think I'd move over my main account 100% immediately when ...

  • There's an "Edit posts", sorry I just can't do without that now😥
  • Mobile app support - to the level of a Calckeyed ❤️

Also

  • want to test the post migration, see it working irl
  • agree the Home and Social timelines feel messy ... but I know that will get sorted, and anyway I follow a lot via Lists a LOT (and now would use those brilliant 🎉antennas too)

maikelthedev, to random

Did you know another of the absurd restrictions of Mastodon by design is that you cannot delete more than 30 statuses per 30 minutes? Literally one deletion per minute.

Another reason to move to

https://github.com/mastodon/mastodon/issues/10557

jo, to fediverse

Love the new timeline filters!!! ❤️❤️❤️ I cannot begin to tell you how simple it was to check my mentions with the parent post hidden - Fine-grain controls and yet easily toggled! 🤤😅 You are amazing @supakaity 💜💜💜 I hope these become available for everyone using eventually.

starcross, to fediverse

I would like to take this moment to recognize how / is the most powerful of applications. So many great features you certainly wouldn't find on anytime soon!

jo, to trans

Blahaj.zone has just passed 800 accounts on our server. Thank you to all the lovely people who have joined us here! ​:blahaj_zone:​ ​:Blobhaj_Heart_Trans:​

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • GTA5RPClips
  • DreamBathrooms
  • cubers
  • mdbf
  • everett
  • magazineikmin
  • Durango
  • Youngstown
  • rosin
  • slotface
  • modclub
  • kavyap
  • ethstaker
  • megavids
  • ngwrru68w68
  • thenastyranch
  • cisconetworking
  • khanakhh
  • osvaldo12
  • InstantRegret
  • Leos
  • tester
  • tacticalgear
  • normalnudes
  • provamag3
  • anitta
  • lostlight
  • All magazines