this post was submitted on 22 Jan 2026
50 points (98.1% liked)

Slop.

771 readers
567 users here now

For posting all the anonymous reactionary bullshit that you can't post anywhere else.

Rule 1: All posts must include links to the subject matter, and no identifying information should be redacted.

Rule 2: If your source is a reactionary website, please use archive.is instead of linking directly.

Rule 3: No sectarianism.

Rule 4: TERF/SWERFs Not Welcome

Rule 5: No bigotry of any kind, including ironic bigotry.

Rule 6: Do not post fellow hexbears.

Rule 7: Do not individually target federated instances' admins or moderators.

founded 1 year ago
MODERATORS
 

So, it seems like PieFed is becoming a real alternative to lemmy.

What are the differences between these two? From a tech perspective, and also morality/ethics, if you want. Any differences in vision for these services?

Say whatever is on your mind. I want to know.

On which one should we put our weight?

PieFed all the way. It’s developing at lightning speed, while Lemmy lags behind as the transphobic genocide denying devs beg for donations with in built donation begging banners on all Lemmy instances front pages. Instances are apparently scared to defed from .ml for fear the devs wont support them with help.

Rimu has made some interesting choices, such as blocking 196 from default federating posts until a user subs first or a dislike for meme subs. But when spoken to has been receptive and removed such things or made them optional for admins.

Ethically and feature wise PieFed is in the lead, its not perfect but its open to change and receptive to ideas

you are viewing a single comment's thread
view the rest of the comments
[–] edie@lemmy.encryptionin.space 15 points 4 days ago* (last edited 4 days ago) (1 children)

Also add if the poster has blocked you! It is exactly as nonsense as you think.

Example:

I made a post in testing@piefed.social from my account testingpiefed@piefed.social, replied to it from my other testingpiefed@piefed.zip account. Since the .social account has blocked the .zip, it doesn't show up on .social, nor on e.g. piefed.europe.pub.

I then made a comment from my lemmy.ml account, and replied to it from my piefed.zip account, and neither .social, nor europe.pub can see that .zip reply, but can see my lemmy.ml comment!

Edit: here is the post on dbzer0, also can't see any .zip comments


This user is suspected of being a cat. Please report any suspicious behavior.

[–] RedWizard@hexbear.net 11 points 4 days ago* (last edited 4 days ago) (1 children)

🥴

Ok, so if you block a person, it enforces that block for other users and even logged off users. Meaning, if me and you had a beef. I could block you, and then talk shit about you openly, and if you wanted to reply to me, you could, but it would then drop the comment and no one on my instance would see it, and no one on other instances would see it, unless you were on say, a Lemmy instance?

edit: sorry I had to rewrite that like twice because it's so fucking confusing.

[–] edie@lemmy.encryptionin.space 10 points 4 days ago* (last edited 4 days ago) (2 children)

So, what I'm talking about here is this code:

if post.author.has_blocked_user(user.id) or post.author.has_blocked_instance(user.instance_id):
    log_incoming_ap(id, APLOG_CREATE, APLOG_FAILURE, saved_json, 'Post author blocked replier')
    return None

Where if the author of the post you are making a comment on has blocked you, the comment is dropped.

no one on your instance would see it

No. People on your own instance will always be able to see your comments, even if people on the piefed instance can't.

And the reason why piefed.europe.pub cannot see the comment from my piefed.zip account is that the testing community is on piefed.social, and it doesn't announce the comment to other instances. I think the reason why lemmy.ml can still see the comment is because piefed.zip sent it directly to lemmy.ml? But I don't really know.

Edit: I see you edited it. My reply is still more or less correct even with the edit. I will add, that being lemmy instance isn't going to fix it, it's still the piefed instance's (the instance the community is on) job to federate the comment. And if you were talking on a community not on your instance, so my reply wouldn't be dropped by the community's instance, every other instance except yours would know of my comments.


This user is suspected of being a cat. Please report any suspicious behavior.

[–] into_highest_invite@lemmygrad.ml 8 points 4 days ago (2 children)

if i'm on piefed god forbid, and i reply to a comment on an OP who has blocked me, will my own instance reject my comment? will it give me an error or will it silently drop it or what?

[–] edie@lemmy.encryptionin.space 8 points 4 days ago (1 children)

I completely misread your comment.

If you are on the same instance as the blocker, you will get this error message: "Your reply was not accepted because The author of the parent post has blocked the author or instance of the new reply."


This user is suspected of being a cat. Please report any suspicious behavior.

[–] into_highest_invite@lemmygrad.ml 6 points 4 days ago (1 children)

but if you're on different instances, even if everybody is using pyfedi, it won't say anything?

[–] edie@lemmy.encryptionin.space 6 points 4 days ago* (last edited 4 days ago) (1 children)

It won't. See above how I could make a reply from an account on a pyfedi instance to another


This user is suspected of being a cat. Please report any suspicious behavior.

oh lmao my bad i read that and then immediately forgot it. what a stupid website. seems like they saw .world and decided it wasn't enough that its entire community was reddit logo, they had to make it function identically too

[–] edie@lemmy.encryptionin.space 6 points 4 days ago* (last edited 4 days ago) (1 children)

If you on lemmygrad.ml reply to a comment on a post where the OP has blocked you (no matter if you reply directly to the post or to another comment), you will think that the reply has gone through, it will show on lemmygrad.ml.

If the community the post is in, is on the same instance as the OP who has blocked you, the OP's instance and other instances e.g. lemmy.ml will not see the comment. If the community is not on the same instance as the OP, other instances will see it, only the OP's instance won't.

(This is at least how I understand it, if I'm wrong I really hope someone will correct me)


This user is suspected of being a cat. Please report any suspicious behavior.

no i mean suppose i have an account on piefed and i'm doing all this from that account

[–] RedWizard@hexbear.net 3 points 4 days ago (1 children)

I think I figured it out. Look at process_new_content. If the content is blocked, it sends a deleted to remote instances, I think when the content isn't allowed. Check this commit: https://codeberg.org/rimu/pyfedi/commit/ed7169b40c2b9ac0ae546d9badea45bbe57bcec5

[–] edie@lemmy.encryptionin.space 8 points 4 days ago* (last edited 4 days ago) (1 children)

I see, that commit was made just a week ago, after I looked at the code.

Edit: Also it's only on main, and doesn't seem to have been added to a release yet

Edit: Ah, no, the 2170 / 2176 line was there before

Edit: NO, it was added a week ago: https://codeberg.org/rimu/pyfedi/commit/6b692c3beec7b427494708b3ad55c30875e94f7d


This user is suspected of being a cat. Please report any suspicious behavior.

[–] RedWizard@hexbear.net 7 points 4 days ago (1 children)

I feel like this has been a thing for a while though. But this function

proactively_delete_reply

def proactively_delete_reply(community: Community, ap_id: str):
	    deletor = None
	    # Try to find a local moderator to send the Delete
	    for moderator in community.moderators():
	        moderator_account = db.session.query(User).get(moderator.user_id)
	        if moderator_account.is_local():
	            deletor = moderator_account
	            break
	    # Use admin account if there is not one.
	    if deletor is None:
	        deletor = db.session.query(User).get(1)
	    if deletor:
	
	        delete_id = f"https://{current_app.config['SERVER_NAME']}/activities/delete/{gibberish(15)}"
	        to = ["https://www.w3.org/ns/activitystreams#Public"]
	        cc = [community.public_url()]
	        delete = {
	          'id': delete_id,
	          'type': 'Delete',
	          'actor': deletor.public_url(),
	          'object': ap_id,
	          'audience': community.public_url(),
	          'to': to,
	          'cc': cc,
	          'summary': 'Automatic deletion due to block'
	        }
	
	        announce_id = f"https://{current_app.config['SERVER_NAME']}/activities/announce/{gibberish(15)}"
	        actor = community.public_url()
	        cc = [community.ap_followers_url]
	        to = ["https://www.w3.org/ns/activitystreams#Public"]
	        announce = {
	            'id': announce_id,
	            'type': 'Announce',
	            'actor': actor,
	            'object': delete,
	            '@context': default_context(),
	            'to': to,
	            'cc': cc
	        }
	        domain = furl(ap_id).host
	        instance = find_instance_by_domain(domain)
	        if instance and instance.inbox:
	            send_post_request(instance.inbox, announce, community.private_key, community.public_url() + '#main-key')

Is a strange way to handle blocks, right? It's fetching either a local moderator account, or a local admin account, and then using that account to send a block command on behalf of that user account? I still don't really know why the system doesn't simply store the blocks locally and then check at page render if the content is blocked, and then not render it for the user who created the block. Am I understanding this correctly, that this system enforces individual user blocks on the entire community? Even remote communities?

[–] edie@lemmy.encryptionin.space 7 points 4 days ago* (last edited 4 days ago) (2 children)

You seem to be confused. Let's start with this "delete replies on remote instances when author has been blocked by parent content author", it was added a week ago, on the 13th of january, proactively_delete_reply was added then with it. What it does is not block, but delete, you may be familiar with a different name for it: remove.

Dealing with a new comment happens here, it starts with create_post_reply, it will for example return None if the parent comment author has blocked the replier, so the code never reaches PostReply.new(), it is inside this PostReply.new that the comment is added to the database, so the reply is never added to the database. Furthermore, since create_post_reply returns None, reply is None, and so if reply: is false, this means announce_activity_to_followers is never called, and as such other instances are never informed of the new comment (AFAIK it is the duty of the instance on which the community is on to announce to instances with subscribers to that community of new content)


This user is suspected of being a cat. Please report any suspicious behavior.

[–] RedWizard@hexbear.net 6 points 4 days ago (1 children)

Ah yeah I see where I got mixed up. Sorry! Was the end of my day and doing to many things at once.

But do I have it correct that it seems as though individual users have some amount of control over how content federates on their instance through the blocking mechanism?

It's clamped to just the user's content, their comments and posts, but it still prevents federated content from being stored on the server or content being federated to other servers.

It's not a purely cosmetic block right? Because it changes what other users see relative to my own content. Unless I'm still confused about how this works.

If I make a post and I have a large block list of users from other instances, those users could be replying to my posts on their instance. But on my home instance, it wouldn't store those in the database because I've blocked them, which would result in users from my home instance never seeing them either, right?

[–] edie@lemmy.encryptionin.space 6 points 4 days ago* (last edited 4 days ago)

But do I have it correct that it seems as though individual users have some amount of control over how content federates on their instance through the blocking mechanism?

It’s clamped to just the user’s content, their comments and posts, but it still prevents federated content from being stored on the server or content being federated to other servers.

AFAIK, Correct.

It’s not a purely cosmetic block right?

It's not. See the two examples in your original comment (Cowbee, and me replying to my test accounts)

Because it changes what other users see relative to my own content.

Yes.

If I make a post and I have a large block list of users from other instances, those users could be replying to my posts on their instance. But on my home instance, it wouldn’t store those in the database because I’ve blocked them, which would result in users from my home instance never seeing them either, right?

Exactly.


This user is suspected of being a cat. Please report any suspicious behavior.

[–] RedWizard@hexbear.net 5 points 4 days ago* (last edited 4 days ago) (1 children)

Wait. The logic flow makes sense though. I've been double checking this. The proactively_delete_reply only proactively deleted if the parent user has the replying user blocked.

What this means, is that this function is attempting to mirror the host instance even closer. LocalUser (LU) blocks RemoteUser(RU). LU makes a comment that federates to RU's instance. RU replies and their comment is sent back to LU instance.

LUs community where the comment is received checks its inbox. It then validates the comment. It then checks to see if the comment is from a site banned user, it passes. It then checks if the RU is blocked by the parent comment user (LU), it fails.

In 1.5.X currently this returns None thus never storing the comment.

In the main branch however, a secondary task is fired off, calling proactively_delete_reply only if the community is local. proactively_delete_reply searches for a mod or admin account and sends a moderator action back to the remote server with the note "Automatic delete do to block".

This is because of a few reasons:

  1. They prevent local users from leaving comments on posts and comments from users who block them using the UI.
  2. They CANNOT do this for remote piefed instances (I think). They obviously can't do it for Lemmy instance. Thus the Return None.
  3. Now this new code enforces the removal of the comment on the remote server because it is already stored in the DB.

They are effectively enforcing blocks at the DB level instead of the API level. Lemmy to my understanding will simply flag the user as blocked and it is on developers to prevent the content from being displayed to the user.

The implications seem to be that in the future if a Lemmy user replies to a post or comment from a piefed local community, and the author blocks them, a federated mod action will be sent to the Lemmy server to remove the comment.

[–] I_Hate_AmeriKKKa@hexbear.net 2 points 4 days ago (1 children)

The implications seem to be that in the future if a Lemmy user replies to a post or comment from a piefed local community, and the author blocks them, a federated mod action will be sent to the Lemmy server to remove the comment.

i must be reading this wrong, but are you saying that it will do this retroactively if you block someone???

[–] edie@lemmy.encryptionin.space 1 points 4 days ago

I think its meant as passive, I.e. already blocks them. So not retroactively.


This user is suspected of being a cat. Please report any suspicious behavior.