Can PieFed user-block comments from a particular instance?
submitted OpenStars
byPieFed looks so amazing! And it is fantastic how it continues to be developed more all the time.
Though it still lacks numerous features found on Lemmy - e.g. being able to search for users (I tried searching for one of my favorite people to talk to, lvxferre, and many variations such as @lvxferre@mander.xyz, but piefed.social came up with nothing - it seems to search only within the text fields, and I saw nothing in any of the dropdowns to look for a "user", or a "community", etc.). Likewise I tried to find existing posts in that search bar - e.g. https://lemmy.world/post/21055894 "Lemmy's gaining popularity, so I thought new people should see this." but again could not. Another one is that the frontend UI needs some polish, e.g. on this post I literally cannot see the name of the community (no matter how far I zoom out), only that it begins with "[META] Piefe…" (oh wait no, now I see, at https://ponder.cat/post/326806 - that's the name of the post? but then why is it repeated like that, in tiny font, right next to / above the huge font, and also cut off - wouldn't it make more sense to just stop the list at "Communities@ponder.cat"? or if it is important enough to add, then not to cut it off?)
Minor issues of polish aside, the USA election season is coming up so... this makes me wonder: can you block users from a given list of instances using PieFed? e.g. if I wanted to block users, and I mean all of communities, posts, comments, even voting if possible - basically I want a defederation action, but will take a user-level block if that is all I can get. People *might* be able to engender this behavior with keywords, but the key would be to allow things like a discussion of the firefox@lemmy.ml community name, while blocking the users from that instance name - and yet given the above issue of not being able to search for users at all, my guess is that keyword-based blocking would do the exact opposite of that? (cutting out posts that just happen to contain the instance name, while allowing the users free reign so long as their posts do not contain the instance name)
Either way, I do so look forward to the development of this fantastic Lemmy alternative, which nonetheless federates with it plus so much else besides!:-)
Hmm yeah it IS a bit weird to have the post title in the breadcrumb, huh.
There are personal instance blocks - when viewing a post by someone from that instance, click/tap the 3 dots which gives you additional things you can do with the post. One of those is "hide every post from author's instance".
Arguably there should be a button on user profiles that lets you do that too, it'll probably easier to find there. Also another button on instance profiles... I'll add that soon.
Thank you so much for this excellent answer!:-)
Only admins can do this.
This would be nice. I recall that kbin had this ability (and thus mbin probably still does).
I haven't tested this, but I think /community/[HTML_REMOVED]/block_instance would be the way to block the instance, where community_id is the id of the community.
So for example, https://piefed.social/c/196@lemmy.blahaj.zone
If you look for the "Retrieve a post from the original server" link on the community page, that link will have the community id in it. So piefed.social has the community id for the above as 709 (since the link points to https://piefed.social/community/retrieve_remote_post/709 )
So if you were on piefed.social and wanted to block all of lemmy.blahaj.zone then you could call https://piefed.social/community/709/block_instance to block it.
Or for lemmy.ml specifically, you could look at https://piefed.social/c/firefox@lemmy.ml and find https://piefed.social/community/retrieve_remote_post/295
And then use https://piefed.social/community/295/block_instance to block all of lemmy.ml for your piefed.social user.
FYI the code for this is defined in https://codeberg.org/rimu/pyfedi/src/branch/main/app/community/routes.py#L1255 if I'm understanding this correctly.
Edit: There might be an easier, more user friendly way of reaching that final link that I don't know about. Hopefully Rimu or another pyfedi dev will point us in the right direction if exists.
Thank you so much for this detailed and highly informative answer. Yes it should be made easier to be found, but honestly just knowing that it's possible is the main thing - e.g. to help convince users to try out PieFed as opposed to e.g. Tesseract or Sublinks or Mbin.
I can't go any further without an account myself, so can I ask: do you know if this only blocks all the communities from that instance - in an analogous manner as Lemmy's user-blocking of communities works (e.g. I cannot even type out firefox@lemmy.ml and have that expand to a link anymore, after user-blocking lemmy.ml) - or if it also blocks especially the comments from those users in other posts?
The latter is the key part of all of this, especially on PieFed where community discovery is already so much easier that people don't really need to browse All (or whatever equivalent) anymore. Nothing will ever be perfect ofc, but if such comments could be blocked then it would help act as a toxicity blocker to reduce someone's friction on the Fediverse.
It does block those comments, the code that filters out the comments by blocked instance is located at
https://codeberg.org/rimu/pyfedi/src/branch/main/app/post/util.py#L18
Heh, turns out it didn't, until less than an hour ago. Rimu practically just committed the fix for this.
https://codeberg.org/rimu/pyfedi/commit/04a68a4298e04e99e0081865a130cf6b4dcc33b0
Hehe, PieFed is reaching greater levels of functionality by the hour:-)
I am not so sure that Mbin does allow that - e.g. https://sopuli.xyz/post/13676782 and https://lemmy.cafe/comment/6178568.
Which brings up an interesting additional issue: both Mbin and PieFed do not make it easy to see which instance someone is from. This seems predicated on the notion that all users that someone is interacting with are engaging in good faith. To the extent that this is true, this is a wonderful approach, HOWEVER... trolls do (occasionally!) exist on the internet, and often they get incubated from the same echo chamber, thus it helps to know where people are coming from in order to block them. e.g. Truth Social, Fox News, Infowars, The Joe Rogan Experience, and many others. Evaluating the quality of a source saves an *enormous* amount of time as compared to having to evaluate the quality of the information itself - e.g. Google's AI that appears in search results spouts bullshit, hence I tend to distrust everything that it says, rather than have to do my own research every single time. <End rant>:-).
So I hope that this is something that will be added eventually.
Yeah I've been wanting to add the instance name for a while now. Knowing that someone else wants it too increases it's priority, thanks :)
Oh that's fantastic! PieFed is looking better by the minute for some reason... :-P
Oh yes this annoyed the heck out of me too. Finally I customized my pyfedi instance by going to this line in the code,
https://codeberg.org/rimu/pyfedi/src/branch/main/app/templates/base.html#L10
And inserting this above,
{{ user.ap_id }}
The end effect is arguably a bit ugly, as the headline now show up like,
openstars@discuss.online OpenStars [OP] 32 minutes ago
but I can live with that. (The default pyfedi includes a tooltip so if hover over the name long enough, it will show the instance-including ap_id as well, but I'm too impatient to wait for that ;)
I'm surprised by this. Is my memory of kbin.social just really faulty? I could have sworn that for non-local users, kbin.social would show the @ instance.tld part after the username.
See the message from Rimu@piefed.social in this same thread block - it looks like that feature will be officially added "soon"(TM) :-)
I halfway recall something like that myself, but I wonder if it was primarily in the Favorites or Reduces menu, except how could it be bc weren't those aspects restricted to only be for other servers running Kbin (and then later also Mbin), but not Lemmy?
So maybe it was the community names but not user ones?
Or perhaps it was decided for whatever reason to remove those. Certainly if I go to e.g. https://fedia.io/, I do not see them prominently.
There does seem to be a hover or something that brings up a pop-up box with a single user's account info, and then if you click their username then their location instance appears up at the top, if you want to look at them one by one. So perhaps that is what the commenter meant - not that it is entirely lacking but that they wanted to see it more prominently, for all comments in a post at once, like the Lemmy web UI does (and many apps too such as Voyager).
That is probably it.
Ah yes, I keep crossing post replies with him. Very cool though.
Probably.
A major reason I went with hosting my own single user instance is that, for things like this, I can modify the code myself to do what I want. That is, I have the ability to develop whatever missing feature I want.
Here's another example - kbin.social would show you who was upvoting or downvoting your posts and comments, but mbin removed the ability to see that. pyfedi doesn't have it either, but I can easily add something quick & dirty to show that myself. Although that's less useful now than it was in the past, because of another pyfedi innovation - private voting, https://piefed.social/post/205362
Oh ahem [HTML_REMOVED] I mean uh... "yes":-).
Plus it gives you room to "play", which could feed back onto the codebase too if you wanted. Either way, definitely a plus to have the ability to make use of the software, not only as a service, you will get no argument from me to the contrary:-).
Really!? MBin removed that!?!?!? Oh wow, yes I see that - here is a political post (https://fedia.io/m/news@lemmy.world/t/1342007/Harris-says-of-course-her-team-is-prepared-if-Trump) showing 58 "favorites" (names and everything) and 7 "reduces", but you can no longer see the names of the latter.
I saw that post but honestly I am not sure that I agree that private voting is good, and in fact my naive first thoughts are that it could well be the opposite. Mind you, private *polling* is good, but for simple up and down voting of a post, I think the anonymity will lead to abuse. Much as people may behave as an asshole when they get behind the wheel of a car, or we see numerous places online such as YouTube that when anonymous comments are allowed they tend to bring out the most vile and spiteful words from people.:-( Studies even of Chimpanzees show that they are perfectly happy to play by the rules... but only when they believe that they are being observed and possibly rewarded for such. Humans *hopefully* can do better (morally) than chimps... though ofc we do not always choose to be thus:-P.
So I preemptively concede that there are times and places where fully anonymous voting is a good thing - and perhaps among people that are all engaging in good faith behavior that may always be the case? But in that scenario then... why even would there be a *need* for the anonymity in the first place? I so rarely downvote people to begin with, and more often I do not and rather offer a message explaining whatever particular problem I may have with what they said (unless they seem beyond any hope of reproach and then I'll simply move on) - unless such already exists and then I'll add my downvote to the existing pile, for the additional weight. I fully would hope for such in return, in which case the anonymity seems superfluous?
But also, voting is inherently an unequal activity. Someone who goes to great time and expense of effort to write out a post has to "expose" themselves to do so - their username is there for all to see. Similarly for a comment / reply. However, voting can happen in a second, even possibly by accident. Issues of "manipulation" aside, consider this hypothetical: I make a post of my favorite rock music, to a community for rock music. Someone downvoting bc they dislike my particular music post is one thing, but someone downvoting bc they don't like "rock music" is quite another - in that case they should have blocked the community in the first place. Or maybe I said something in another community, and they take it upon themselves to downvote everything I said recently, at least until they get tired of the exercise. Actually, I expected much more of this on Lemmy but have rarely seen it, and never directed at myself, despite how extremely common it was on Reddit - probably retaliation for someone who got banned and they made an alt, a bot, and decided to go on a power trip (but not to help anyone, and instead to inflate their own ego by trampling that of everyone in whole entire communities of hundreds of thousands of people, even gaming ones where many are literally children, and even those who hadn't joined the community before all the banned person's drama - mind you, this is all a hypothetical illustration / guess, not from deep research or studied confirming it or anything:-).
So bc voting is an inherently inequitable activity, I am not a fan of hiding the votes that would at least have done something to balance it out more. Then again, I am only today learning more details about how the "reputation" scores work, so perhaps so long as it is PieFed doing the privateering of the votes, and yet if someone's downvoting still has a karmic feedback to their own account, then perhaps in that scenario... it makes more sense? Ultimately I guess I am saying that in case these thoughts were of interest then I wanted to offer them, but I could be very wrong there... or not, who knows - only time and practical experience with the experiment will tell.:-)
Instead of putting it before you could just put it in as a title="{{ user.app_id}}" in the previous [HTML_REMOVED] tag and then when you hover over it you can see it.
I think you can block a instance here:
It's the other comment's "Options", their instance URL is a bit weird but it seems to stop everything from the instance. But I never used it myself.
Oh my that seems... too easy to hit by mistake, but definitely a promising avenue for functionality at least. Do you know if it is just "posts" from the instance, or do those include comments as well?
It includes comments as well :)
...and just now I made it hide communities at https://piefed.social/communities too.
👏 Okay, thats it - now I need to make an account to test out all this fantastic goodness first-hand. 🎉
Welcome aboard! As well has https://piefed.social there is also https://feddit.online. All other instances I know of are single-user ones.
I'm pretty keen on blocking, in general, so if you have more ideas along these lines they'll get heard.
As another blocking example, if I post something then not only do I not see replies from people on instances I've blocked, but also my post will not be federated to blocked instances in the first place. So they won't be able to reply to the copy of the post on their instance as it won't exist.
This only works for local communities - ones hosted on the same instance as the one you're using as that's the only time we get to decide where to send posts to. Currently PieFed.social has almost no local communities.
So is PieFed.social open for signups? https://fediverse.observer/search?query=PieFed.social says it is not - if you are wanting more people to join then you may investigate how to get that changed.
I guess I should measure ping for PieFed.social vs. feddit.online, which I note is geographically close to me, but then again it probably has a longer delay for software updates that PieFed.social would not - except it lists you as an admin there too, do you deploy updates to both frequently?
I used to be proud of how I could talk with anyone on Reddit. Now... I know better, that some people are simply *trying* to waste your time (like sea lioning), whether they even are aware of that themselves or not. So now I'm switching to the good fences make good neighbors approach:-).
Even Dessalines is doing some great work that is highly useful to the worldwide community, to help break people's dependency upon corporate Reddit - so in that sense, an ally in that fight against misinformation. Although... there are downsides to those efforts as well, both in the Lemmy.ml instance itself and the codebase pushed out, which makes it hard to avoid the nonsense spouted by its users across the Fediverse, among other things. Almost nothing is fully good or fully bad, afaict, though bad-faith trolling seems the closest to the latter.
I *love* (from https://join.piefed.social/2024/06/22/piefed-features-for-growing-healthy-communities/) PieFed's focus on not simply banning an instance or two or three (they'll simply spread as a result of that anyway), but on using algorithmic approaches to identify the patterns that bad actors tend to take, and then provide labels based on that. Which preserves freedom of choices while also allowing maximum guidance that anticipates what someone would eventually choose, if only they had the time to research each individual item in as great a depth as would be needed to accurately judge.
That is a good question, I don't know would need to look into the code for that.
Ah, can't believe I missed that one. Thanks for the tip!
Yeah the search is not very intuitive, I agree with that. Not sure how to search for users, but to get the specific post you go to Search and then all the way down is a button called "Retrieve remote post" which will lead you to a new form where you can put in the full URL and get it.
Oh my gosh that's... WAAAY down there isn't it? (and requires a login for some reason? - why, just to see the post, couldn't an anonymous user do this action? unless "retrieve" means more than simply view?) But thank you, I am glad to know that!
The polish will come in time I am sure - with feedback and tweaks and much effort, but already it looks so wonderful, it's a great start! :-)
It does. It actually tries to backfill that one post into the instance - sort of a poor man's federation, if you win.
Since we're talking about an operation that modifies the database of the instance, rather than just a mere view-only sort of deal, I think it's not reasonable to require a logged in user here as a way to track and prevent abuse.
Oh yes absolutely. But what if the post is already federated, and you just wanted to find it? Like being able to search for a user account, this too would be a great function to add.
I found out today that Tesseract will do this on-the-fly now, for cross-postings https://dubvee.org/post/2083858.
Thank you for the answer:-).
Oh yeah, so in that case it would just take you to the already federated local copy of that post. (Every post has a unique activity pub id so that's how it realizes that it already has a copy.)
Oh yeah, agreed. So the retrieve remote post is definitely not a search thing. To use it you have to pass in the original instance's url and only that. Which looks something like https://lemmy.world/post/576735 - so not very searchable.
Tbf the fact that it doesn't look very searchable is shared in common with Lemmy, but at least it works in the latter, and it sounds like it works in PieFed as well, though only for people who have accounts. The ideal ofc being to have clickable links that take federation into account, just as with user accounts and communities, but even Lemmy does not have that yet so it is understandable that PieFed does not yet.