cross-posted from: https://mander.xyz/post/46665693
PieFed blocks !enoughmuskspam@lemmy.world (and a few other communities) by default. At the time of writing this post, you can search for the comm on many PieFed instances and you will not find it.
- https://feddit.online/communities?search=enoughmuskspam
- https://piefed.ca/communities?search=enoughmuskspam
- https://piefed.europe.pub/communities?search=enoughmuskspam
The block is only by default. The admin can choose to override it. Many big instances have done so, including
- piefed.social
- piefed.world
- piefed.zip
Let people do a bad job of running their own instance. Its their instance. So long as everyone is informed on how it works, who cares?
Wow, so I thought having an explicit 4chan block was kinda silly enough, but finding out it works by running OCR on every uploaded image and looking for the words “Anonymous” and “No” is absurdly silly.
This is disturbing. I’m glad I’m on feddit.dk and I saw “my” admin (SorteKanin) in the comments of that “more information here” comment thread pointing out how that shouldn’t be hardcoded into the software.
It’s not disturbing. OP has unwittingly found a bug that they were passing off as a gotcha.
Anyone who wants the whole story, since there’s misinfo/cherry-picked info flying both ways (god I sound like a fucking centrist please believe me I hate elon musk and everything he stands for and cant wait for the collapse of the imperial powers)
The code defines a default list of “bad words” which includes the names of some communities they consider low effort
seven_things_plus = [ 'shit', 'piss', 'fuck', 'cunt', 'cocksucker', 'motherfucker', 'tits', 'memes', 'piracy', 'greentext', 'usauthoritarianism', 'enoughmuskspam', 'political_weirdos', '4chan' ]And filters these bad words/low effort communities out by default
# sort out the 'seven things you can't say on tv' names (cursewords), plus some # "low effort" communities if any(badword in community['name'].lower() for badword in seven_things_plus): bad_words_count += 1 continue else: candidate_communities.append(community)Decide for yourself if you think that community qualifies as low effort, but it isn’t a “hardcode” in the way most people think of it. Its just as much of a hardcode as setting default values for any other variable in your function definition.
+10 piefed social credit
Really got me there comrade
They coded “usauthoritarianism” into a list of no no words for delicate sensibilities.
Have to protect white liberals from calling out US Authoritarianism and bad words
“Anticommunists” aka people who dare to be critical of Russia and China
+10 piefed social credit
Communists are quite critical of China and Russia, we just base those criticisms in reality instead of wild US imperial propaganda. What you’ve said is no different from when a right winger says “I was banned for a simple difference of opinion.” What’s the opinion? What’s the “criticism”? Because if it’s something absurd and offensive with no basis in fact, of course you’re going to get pushback. People whose ideology puts a premium on factual analysis and verification tend not to appreciate it when people whose ideology depends on maintaining a false sense of superiority by creating an ambient haze of vague scandal around all alternatives show up and start slinging bullshit around.
Liberals : Russia :: Republicans : Obama
Can’t have a real critical conversation with them because they’re too caught up in the fever dreams that were pushed on them from the top down. You’re too busy defending reality, which in turn drives them into further madness as they perceive it as
a defensea conspiracy to deceive them by a paid robotic shill.There’s plenty of Russia and China criticism even on the political comms
deleted by creator
This has come up before. Hopefully you’re just not understanding the code, rather than deliberately misrepresenting it to others. Even a casual scan should clue people in to the fact that the linked function isn’t concerned with federation blocks (the same list that ‘enoughmuskspam’ is in also contains ‘memes’ and ‘piracy’, which every PieFed instance has without any overrides required).
I’ll copy-paste my comment from last time (I can’t link to it 'cos is was in reply to a deleted post). The first 2 paras are the most relevant bits:
The code that OP has linked to is part of a convenience function for admins to add content to their new instances. It can query individual remote instances (e.g. lemmy.world), or it can query lemmyverse.net, and fetch communities that look to be popular and active.
It’s completely unrelated to routine federation, and doesn’t prevent anyone subscribing to communities that may have those words in their names.
The admin function could potentially be used to fetch hundreds of communities. It runs as a background process, so you don’t know what they were until after they’d been followed. The “bad words” list acts as a safeguard against bringing in things you might not want or expect. One reason is that you may want to curate the first impression you give new visitors, as there as some that will be put off by the “fuck this” and “shitpost that” reddit-isms. Another is that you don’t typically want communities that are disproportionately popular than others (e.g. if you bring in the default 25 communities, and one of is 196, then it completely dominate your front page).
If there’s a particular community that you are interested in (e.g. because you moderate it), using this function isn’t an efficient way to add it. In addition to the “bad words” filters, it will also exclude communities that are NSFW, or below thresholds for popularity and activity. Rather than fetching a bunch of communities at the same time, and hoping that the one you want is included, it’s better to just add it manually (via a ! link or by using the “Add remote community” link) in much the same way as you would on any other platform.
I was curious so had a look around.
I assume it’s this https://codeberg.org/rimu/pyfedi/src/commit/cfc35b0e1b812d929d62aea87f47014f8ce845b4/app/main/routes.py#L131
if current_user.is_anonymous: flash(_('Create an account to tailor this feed to your interests.')) content_filters = {'-1': {'trump', 'elon', 'musk'}}Some of the complaints about hardcoded values were fixed in the last commits, but the code is a spaghetti mess littered with ad-hoc hacks for random whims of the developers. This is bad software design and disrespectful to users imo, but to each their own.
The OP linked to the function with the ‘enoughmuskspam’ filter in it: it’s here (line 352 if it doesn’t auto-scroll down).
As mentioned, it’s a bulk-community import function, that new admins can optionally use to kick-start a new instance.
The code you’ve linked to is another convenience function, for users this time, that will optionally add the relevant values to their content filters for the ‘All’ feed. It’s also not a federation block, and it’s common enough for fediverse users to want to hide posts about those people that it’s value arguably overrides any perceived messiness about ‘hard-coding’ their names.
Anyone who takes the time to understand PieFed’s codebase could find plenty of things to legitimately criticise. To my mind, though, it seems against the social contract around open-sourcing one’s hobbyist project, only for people to then be snarky about it online. If there’s bits of code that look like they were written on someone’s lunch break, that’s because they were.
The frustrating thing about this post, and the (now deleted) post before it, is that someone has taken more time to create some shit meme than they have reading the code they’re haphazardly attacking. I’ve no idea why PieFed has suddenly come under some Lemmy users sights, especially since the whole point of federated social media is that it shouldn’t matter what client someone uses, and how much it reeks of “People Front of Judea” bullshit.
It was not meant to be as harsh as it came across. And yes, this function is for logged out users, was just trying to show that it ends up messy.
I assume you’re one of the devs? I can delete the comment if you want, but I think it would be worth fixing sooner than later instead of just adding features. A lot of the mechanisms are a bad idea even if it wasn’t a mess but you do you.
that it shouldn’t matter what client someone uses
There are a few implementation issues and incompatibilities I saw but not too confident in my knowledge of the protocols to say good fixes. Not sure what the Judas comment means.
I’ve contributed code to PieFed in the past, but nothing recently. If someone comes across something I’ve written and finds it amateurish, then that’s a reasonable assessment. There’s no need for you to delete your comment, as I’m not a fan of features over fixes approach either.
The “People’s Front of Judea” remark relates to a Monty Python sketch from the The Life Of Brian (youtube link) - it’s a swipe at leftist infighting (swap out “The only people we hate more than the Romans is the Judean’s People’s Front” with “The only site we hate more than Reddit is PieFed” I suppose).
The OP linked to the function with the ‘enoughmuskspam’ filter in it: it’s here (line 352 if it doesn’t auto-scroll down).
It’s a bug with the latest update that has already been patched. Not sure if piefed.ca has updated their instance in response to it, but this isn’t even completely right as lemmy.ca was still returning results for “piracy” in the search.
“So since a few hours ago, when I deployed v1.6, many communities no longer show up in the search. the private value should be true or false but really old communities have it as null”
“Yes, null should be fixed to true or false. I originally added the private column many months ago, with no default value. So now the data is all over the place.”
(excerpts from the matrix chat)
OP made some assumptions, got excited and just found a bug.
Not the first time that bug’s reared its head either.
Example from here:
'nsfw': post.nsfw if post.nsfw is not None else FalseA meme about PieFed half-arsing database migrations might not be funny, but would at least be valid, and less wearisome than OP’s post.
bruh, no way
No way is right, it’s not hardcoded (there’s just a filter on the word ‘musk’ as a sane default that admins can choose to remove).
It is hardcoded. The string ‘enoughmuskspam’ is right here https://codeberg.org/rimu/pyfedi/src/commit/b7a9ea0eea3a80f710e0b5b63cf0bbecde60f8bf/app/admin/routes.py#L373
I have noted in other threads and will note again here because people keep attacking me about this: hardcoding does not mean the behavior is not circumventable. It just means the string is in the source file (rather than a config file or database).
This particular post has identified a bug specifically. Nothing in the code you keep references the community search tools to begin with.
So it is hard coded
Wait so its not against specifically anti musk its on musk in general.
It is specifically the string ‘enoughmuskspam’ in the code https://mander.xyz/post/46665744/24986265
Yeah the title of this post is confusing.
It reads as if piefed blocks anti-Musk content, not blocks Musk content.
The string ‘enoughmuskspam’ is in the code https://mander.xyz/post/46665744/24986265
Thanks for the context!
deleted by creator
deleted by creator
I don’t think you know what “hardcoded” means.
Edit: https://anarchist.nexus/modlog?suspect_user_name=bb84%40mander.xyz
Everyone is wrong but you about the definition of words, got it.
You are right but piefed is hardcoded to violate basic compatibility in fediverse: https://communick.news/comment/8015757
For some items, yes.
For OP’s nonsensical claim, no.
That is not what hardcoded means.
The “hard” part of “hardcoded” means you have to edit the source directly to make changes (or at runtime via memory editing).
It does not mean “written as part of the source but editable via gui”.
Unless there is some other item I’m missing here from a casual glance at common filters included as an example, then yes, you are misunderstanding the term “hardcoded”.











