Fun fact: you can't upload this image on piefed.social
-
Off the top of my head,
Since votes on Lemmy aren't private, anyone can view them. Piefed added anonymized votes (iirc, by sending them from a shadow user with a username that was a hash of the actual voters username), this raised concerns, as vote spam could be harder to spot/stop, so it was removed.
That got built and implemented before that problem was realized and removed? Damn.
Even so, if the system is tracking votes as reputation, how were the anonymous votes actually tracked? That hash either hid the user or it didn't.
-
Its not vote manipulation as such here. Its much simpler than that. Lemmy has a spam problem. People coming in to just make shill communities selling a service or product or spamming advert posts across communities.
They usually get downvoted, but I can use Piefeds admin tools to filter for downvoted posts by new accounts. This usually catches most spammers like that. I can then ban them from piefed.social and pass that on to Lemmy admins.
A lot of Day 1 trolls are caught like this too.
Sounds like a flood control for community creation would be appropriate.
It used to be in the early days instances would vet users at signup. Is there no mechanism for an instance admin to do the same for the creation of a community? They just can't be vetted before creation?
-
Sounds like a flood control for community creation would be appropriate.
It used to be in the early days instances would vet users at signup. Is there no mechanism for an instance admin to do the same for the creation of a community? They just can't be vetted before creation?
Piefed already disables community creation for out of the box accounts for a few days at least. Lemmy doesn't. That's the problem.
Also many of these spammers just spam on other communities rather than doing it on their own.
-
There are all kinds of fun stuff in the Piefed code. Allow me to dredge up a comment I made recently:
@edie@lemmy.encryptionin.space was looking at PieFed code the other week, and I ended up taking a look at it too. Its great fun to sneak a peak at.
For example, you cannot cast a vote on PieFed if you've made 0 replies, 0 posts, AND your username is 8 characters long:
def cannot_vote(self): if self.is_local(): return False return self.post_count == 0 and self.post_reply_count == 0 and len( self.user_name) == 8 # most vote manipulation bots have 8 character user names and never post any contentIf a reply is created, from anywhere, that only contains the word "this", the comment is dropped (CW: ableism in the function name):
def reply_is_stupid(body) -> bool: lower_body = body.lower().strip() if lower_body == 'this' or lower_body == 'this.' or lower_body == 'this!': return True return FalseEvery user (remote or local) has an "attitude" which is calculated as follows:
(upvotes cast - downvotes cast) / (upvotes + downvotes). If your "attitude" is < 0.0 you can't downvote.Every account has a Social Credit Score, aka your Reputation. If your account has less than 100 reputation and is newly created, you are not considered "trustworthy" and there are limitations placed on what your account can do. Your reputation is calculated as
upvotes earned - downvotes earnedaka Reddit Karma. If your reputation is at -10 you also cannot downvote, and you can't create new DMs. It also flags your account automatically if your reputation is to low:
PieFed boasts that it has "4chan image detection". Let's see how that works in practice:
if site.enable_chan_image_filter: # Do not allow fascist meme content try: if '.avif' in uploaded_file.filename: import pillow_avif # NOQA image_text = pytesseract.image_to_string(Image.open(BytesIO(uploaded_file.read())).convert('L')) except FileNotFoundError: image_text = '' except UnidentifiedImageError: image_text = '' if 'Anonymous' in image_text and ( 'No.' in image_text or ' N0' in image_text): # chan posts usually contain the text 'Anonymous' and ' No.12345' self.image_file.errors.append( "This image is an invalid file type.") # deliberately misleading error message current_user.reputation -= 1 db.session.commit() return FalseYup. If your image contains the word
Anonymous, and contains the textNo.orN0it will reject the image with a fake error message. Not only does it give you a fake error, but it also will dock your Social Credit Score. Take note of thecurrent_user.reputation -= 1PieFed also boasts that it has AI generated text detection. Let's see how that also works in practice:
# LLM Detection if reply.body and '—' in reply.body and user.created_very_recently(): # usage of em-dash is highly suspect. from app.utils import notify_admin # notify adminThis is the default detection, apparently you can use an API endpoint for that detection as well apparently, but it's not documented anywhere but within the code.
Do you want to leave a comment that is just a funny gif? No you don't. Not on PieFed, that will get your comment dropped and lower your Social Credit Score!
if reply_is_just_link_to_gif_reaction(reply.body) and site.enable_gif_reply_rep_decrease: user.reputation -= 1 raise PostReplyValidationError(_('Gif comment ignored'))How does it know its just a gif though?
def reply_is_just_link_to_gif_reaction(body) -> bool: tmp_body = body.strip() if tmp_body.startswith('https://media.tenor.com/') or \ tmp_body.startswith('https://media1.tenor.com/') or \ tmp_body.startswith('https://media2.tenor.com/') or \ tmp_body.startswith('https://media3.tenor.com/') or \ tmp_body.startswith('https://i.giphy.com/') or \ tmp_body.startswith('https://i.imgflip.com/') or \ tmp_body.startswith('https://media1.giphy.com/') or \ tmp_body.startswith('https://media2.giphy.com/') or \ tmp_body.startswith('https://media3.giphy.com/') or \ tmp_body.startswith('https://media4.giphy.com/'): return True else: return FalseI'm not even sure someone would actually drop a link like this directly into a comment. It's not even taking into consideration whether those URLs are part of a markdown image tag.
As Edie mentioned, if someone has a user blocked, and that user replies to someone, their comment is dropped:
if parent_comment.author.has_blocked_user(user.id) or parent_comment.author.has_blocked_instance(user.instance_id): log_incoming_ap(id, APLOG_CREATE, APLOG_FAILURE, saved_json, 'Parent comment author blocked replier') return NoneFor Example:
- Cowbees comment on lemmy.ml: https://lemmy.ml/post/41587312/23288779
- Non-existent on piefed.social: https://piefed.social/comment/9647830
(see Edies original comment here)
More from Edie:
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 my .zip reply, but can see my lemmy.ml comment!
[ Let me add more clarity here: what this feature does is two things. On a local instance, if you block someone who is on your instance, they cannot reply to you. However, this condition is not federated (yet, it would seem), and so, to get around this "issue", the system will drop comments from being stored in the PieFed database IF the blocked user is remote. This means you end up with "ghost comment chains" on remote instances. There is NEW code as of a few weeks ago, that will send an AUTOMATED mod action against blocked remote users to remove the comment. So long as the community is a local PieFed community, it will federate that mod action to the remote server, removing the comment automatically. For PieFed servers, eventually, they would rather federate the users block list (that's fair), but it would seem this code to send automated mod actions to remove comments due to user blocks is going to stay just for the Lemmy Piefed interaction. I don't really understand why the system simply doesn't prevent the rendering of the comment, instead of stopping it from being stored. It knows the user is blocked, it already checks it, it should then just stop rendering the chain of comments for the given user, prevent notifications from those users, etc. ]
But wait! There's More!
- PieFed defederates from Hexbear.net, Lemmygrad.ml, and Lemmy.ml out of the box.
- The "rational discourse" sidebar that you see on the main instance is hard coded into the system.
Moderators of a community can kick you from a community, which unsubscribes you from it, and does not notify you.This has been removed actually, the API endpoint is still there.- I was going to say that Admins had the ability to add a weight to votes coming from other instances, but the videos that showed this are now gone, and as of v1.5.0 they have removed the instance vote weight feature, claiming it was "unused".
All this to say. Piefed is a silly place, and no one should bother using its software.
"How do you refer to an instance member in Java?"
"Sorry can't comment that."
-
Why? Much of it is orientated around giving admins tools to deal with trolls/spammers/AI posters. An alert system.
Lol y'all complain about Lemmy being authoritarian but think this is fine?
-
Lol y'all complain about Lemmy being authoritarian but think this is fine?
This is just something piefed.social has, not all. Rimu dislikes 4chan culture heavily.
-
Oh please if Lemmy had that hard coded you would absolutely not be defending it. Even if it was just .ml you'd still use it to smear all of Lemmy. I hate 4chan too and would prefer not to see it, but this is still by definition a very heavy handed imposing of one's personal opinion on others and limiting expression but somehow it doesn't get the authoritarian label. Wonder why.
-
Oh please if Lemmy had that hard coded you would absolutely not be defending it. Even if it was just .ml you'd still use it to smear all of Lemmy. I hate 4chan too and would prefer not to see it, but this is still by definition a very heavy handed imposing of one's personal opinion on others and limiting expression but somehow it doesn't get the authoritarian label. Wonder why.
It can be taken out is what I mean. You are talking as if it can't.
-
Is it the case for https://anarchist.nexus/ as well ?
Nah, mainly being funny while observing. But the admins have to do more work removing the things from PieFed to make it tolerable.
-
I don't get this logic. What in the tools reference here are 'reddit' specifically? I assume you just mean the reputation function?
The censorship from the creator for things they don't like and the really bad backend.
-
The censorship from the creator for things they don't like and the really bad backend.
You can turn off the 4chan censor.
I can't comment about the quality of the code, that doesn't seem like a relevant comment to make regarding any comparisons to Reddit.
-
It can be taken out if, 1, you know it exists (is it documented?), 2, you know how to program (is it configurable through the normal instance setup or do you have to sift through the code and then maintain your own fork with it removed?). Sure seems like being able to take it out is a side effect of it being open source and was not intended to be configurable. If that's your bar then any feature you don't like in any fediverse platform "can be taken out." You're talking as if it was explicitly made to be taken out.
Also, it doesn't just detect 4chan pictures. It MASSIVELY overblocks. This is Lemmy's slur filter blocking "fire removedant" but on steroids. Tell me again how Pifed is the "anti authoritarian" Lemmy.
-
It can be taken out if, 1, you know it exists (is it documented?), 2, you know how to program (is it configurable through the normal instance setup or do you have to sift through the code and then maintain your own fork with it removed?). Sure seems like being able to take it out is a side effect of it being open source and was not intended to be configurable. If that's your bar then any feature you don't like in any fediverse platform "can be taken out." You're talking as if it was explicitly made to be taken out.
Also, it doesn't just detect 4chan pictures. It MASSIVELY overblocks. This is Lemmy's slur filter blocking "fire removedant" but on steroids. Tell me again how Pifed is the "anti authoritarian" Lemmy.
It is public knowledge. Not sure about the documentation level.
No, I think it can removed in the administration settings of an instance.
-
Nah, mainly being funny while observing. But the admins have to do more work removing the things from PieFed to make it tolerable.
the filter this post is about and most of the others mentioned in this thread are off by default.
-
How do I know whether my instance has these filters applied or not? And if rimu is putting "deliberately misleading error messages", how can I be sure of anything?
I'm on your instance. I never encountered any of the filters mentioned in this thread.
You can always the details on !home@piefed.zip to be sure, the admins are quite reactive.
-
It can be taken out if, 1, you know it exists (is it documented?), 2, you know how to program (is it configurable through the normal instance setup or do you have to sift through the code and then maintain your own fork with it removed?). Sure seems like being able to take it out is a side effect of it being open source and was not intended to be configurable. If that's your bar then any feature you don't like in any fediverse platform "can be taken out." You're talking as if it was explicitly made to be taken out.
Also, it doesn't just detect 4chan pictures. It MASSIVELY overblocks. This is Lemmy's slur filter blocking "fire removedant" but on steroids. Tell me again how Pifed is the "anti authoritarian" Lemmy.
2, you know how to program (is it configurable through the normal instance setup or do you have to sift through the code and then maintain your own fork with it removed?)
You don't need your own fork, all of those filters are editable in the admin settings.
I'm on piefed.zip, I can comment "This" just fine:
-
There are all kinds of fun stuff in the Piefed code. Allow me to dredge up a comment I made recently:
@edie@lemmy.encryptionin.space was looking at PieFed code the other week, and I ended up taking a look at it too. Its great fun to sneak a peak at.
For example, you cannot cast a vote on PieFed if you've made 0 replies, 0 posts, AND your username is 8 characters long:
def cannot_vote(self): if self.is_local(): return False return self.post_count == 0 and self.post_reply_count == 0 and len( self.user_name) == 8 # most vote manipulation bots have 8 character user names and never post any contentIf a reply is created, from anywhere, that only contains the word "this", the comment is dropped (CW: ableism in the function name):
def reply_is_stupid(body) -> bool: lower_body = body.lower().strip() if lower_body == 'this' or lower_body == 'this.' or lower_body == 'this!': return True return FalseEvery user (remote or local) has an "attitude" which is calculated as follows:
(upvotes cast - downvotes cast) / (upvotes + downvotes). If your "attitude" is < 0.0 you can't downvote.Every account has a Social Credit Score, aka your Reputation. If your account has less than 100 reputation and is newly created, you are not considered "trustworthy" and there are limitations placed on what your account can do. Your reputation is calculated as
upvotes earned - downvotes earnedaka Reddit Karma. If your reputation is at -10 you also cannot downvote, and you can't create new DMs. It also flags your account automatically if your reputation is to low:
PieFed boasts that it has "4chan image detection". Let's see how that works in practice:
if site.enable_chan_image_filter: # Do not allow fascist meme content try: if '.avif' in uploaded_file.filename: import pillow_avif # NOQA image_text = pytesseract.image_to_string(Image.open(BytesIO(uploaded_file.read())).convert('L')) except FileNotFoundError: image_text = '' except UnidentifiedImageError: image_text = '' if 'Anonymous' in image_text and ( 'No.' in image_text or ' N0' in image_text): # chan posts usually contain the text 'Anonymous' and ' No.12345' self.image_file.errors.append( "This image is an invalid file type.") # deliberately misleading error message current_user.reputation -= 1 db.session.commit() return FalseYup. If your image contains the word
Anonymous, and contains the textNo.orN0it will reject the image with a fake error message. Not only does it give you a fake error, but it also will dock your Social Credit Score. Take note of thecurrent_user.reputation -= 1PieFed also boasts that it has AI generated text detection. Let's see how that also works in practice:
# LLM Detection if reply.body and '—' in reply.body and user.created_very_recently(): # usage of em-dash is highly suspect. from app.utils import notify_admin # notify adminThis is the default detection, apparently you can use an API endpoint for that detection as well apparently, but it's not documented anywhere but within the code.
Do you want to leave a comment that is just a funny gif? No you don't. Not on PieFed, that will get your comment dropped and lower your Social Credit Score!
if reply_is_just_link_to_gif_reaction(reply.body) and site.enable_gif_reply_rep_decrease: user.reputation -= 1 raise PostReplyValidationError(_('Gif comment ignored'))How does it know its just a gif though?
def reply_is_just_link_to_gif_reaction(body) -> bool: tmp_body = body.strip() if tmp_body.startswith('https://media.tenor.com/') or \ tmp_body.startswith('https://media1.tenor.com/') or \ tmp_body.startswith('https://media2.tenor.com/') or \ tmp_body.startswith('https://media3.tenor.com/') or \ tmp_body.startswith('https://i.giphy.com/') or \ tmp_body.startswith('https://i.imgflip.com/') or \ tmp_body.startswith('https://media1.giphy.com/') or \ tmp_body.startswith('https://media2.giphy.com/') or \ tmp_body.startswith('https://media3.giphy.com/') or \ tmp_body.startswith('https://media4.giphy.com/'): return True else: return FalseI'm not even sure someone would actually drop a link like this directly into a comment. It's not even taking into consideration whether those URLs are part of a markdown image tag.
As Edie mentioned, if someone has a user blocked, and that user replies to someone, their comment is dropped:
if parent_comment.author.has_blocked_user(user.id) or parent_comment.author.has_blocked_instance(user.instance_id): log_incoming_ap(id, APLOG_CREATE, APLOG_FAILURE, saved_json, 'Parent comment author blocked replier') return NoneFor Example:
- Cowbees comment on lemmy.ml: https://lemmy.ml/post/41587312/23288779
- Non-existent on piefed.social: https://piefed.social/comment/9647830
(see Edies original comment here)
More from Edie:
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 my .zip reply, but can see my lemmy.ml comment!
[ Let me add more clarity here: what this feature does is two things. On a local instance, if you block someone who is on your instance, they cannot reply to you. However, this condition is not federated (yet, it would seem), and so, to get around this "issue", the system will drop comments from being stored in the PieFed database IF the blocked user is remote. This means you end up with "ghost comment chains" on remote instances. There is NEW code as of a few weeks ago, that will send an AUTOMATED mod action against blocked remote users to remove the comment. So long as the community is a local PieFed community, it will federate that mod action to the remote server, removing the comment automatically. For PieFed servers, eventually, they would rather federate the users block list (that's fair), but it would seem this code to send automated mod actions to remove comments due to user blocks is going to stay just for the Lemmy Piefed interaction. I don't really understand why the system simply doesn't prevent the rendering of the comment, instead of stopping it from being stored. It knows the user is blocked, it already checks it, it should then just stop rendering the chain of comments for the given user, prevent notifications from those users, etc. ]
But wait! There's More!
- PieFed defederates from Hexbear.net, Lemmygrad.ml, and Lemmy.ml out of the box.
- The "rational discourse" sidebar that you see on the main instance is hard coded into the system.
Moderators of a community can kick you from a community, which unsubscribes you from it, and does not notify you.This has been removed actually, the API endpoint is still there.- I was going to say that Admins had the ability to add a weight to votes coming from other instances, but the videos that showed this are now gone, and as of v1.5.0 they have removed the instance vote weight feature, claiming it was "unused".
All this to say. Piefed is a silly place, and no one should bother using its software.
"Social Credit" eh? Well I guess I did not expect anything more.
-
I feel like you're moving from moderation to sort of oppressive or authoritarian territory once you're literally building a social credit system into your software. If you want that, sure use PieFed. I don't want that, so I won't.
Ironic how piefed defederates from lgml and lml by default, yet implements CCP-style and CCP-vibe content and behaviour moderation.
-
It is worth noting that almost all of these can be disabled by admins (https://anarchist.nexus/ has them disabled mostly iirc). Piefed has a lot of good features still.
How do you find out what instances have it enabled or disabled tho? And is there a published code of conduct / long-term committments on whether instances will change their minds about that at some point?
-
They say that it's a bid to contaminate AI data collection, but it really just reads like more of a cry for attention
I mean, yeah, they call out for attention towards a problem.