Code for people interested app/admin/routes.py#L373 (removed since posting), app/cli.py#L1026

I commented it out, rebuild the Docker containers and it works now 👍

EDIT: People seem to misunderstand what it does. It prevents it from federating automatically when populating the community search, importing from another instance or from Lemmyverse. It’s not a full block, and you can still add it manually. Not only that, but it’s also already partially removed since I posted this.

  • degenerate_neutron_matter@fedia.io
    link
    fedilink
    arrow-up
    210
    ·
    20 hours ago

    List of blocked words in community names:

    shit
    piss
    fuck
    cunt
    cocksucker
    motherfucker
    tits
    memes
    piracy
    196
    greentext
    usauthoritarianism
    enoughmuskspam
    political_weirdos
    4chan
    

    Seems like one of the PieFed devs has some opinions about the kind of content they dislike, and are unilaterally forcing that on every PieFed instance. I can somewhat understand filtering out curse words, but specific communities should not blocked by default, and definitely not hidden in a hardcoded list in the source code.

    Edit: Important context here: https://lemmy.world/comment/21323475 Seems this blocklist is more limited in scope; it’s not blocking federation entirely, just blocking (from what I can tell) their appearance in search and automatically federating with them when adding an instance. Still problematic to exclude specific communities in a non-configurable way with little justification IMO.

    • 0_o7@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      7
      arrow-down
      3
      ·
      6 hours ago

      usauthoritarianism

      People were rallying on piefed on resentment from tankie Lemmy devs. But this explains where the piefed devs bias is.

      Seems like the intentions are to limit the reach of content critical of a certain country. Hmm…

    • Vespair@lemmy.zip
      link
      fedilink
      English
      arrow-up
      44
      arrow-down
      1
      ·
      14 hours ago

      I’m not okay with them filtering profanity, who the fuck are they to define what is or is not acceptable?

      • bufalo1973@piefed.social
        link
        fedilink
        English
        arrow-up
        4
        arrow-down
        1
        ·
        edit-2
        8 hours ago

        The stupid thing is that all those words are only in English. No “merda”, “scheisse”, “joder”, “merde”, …

        • Skavau@piefed.social
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 hour ago

          I imagine that was true for Lemmy’s similar functions in the past (referred to in this thread)

          • ayyy@sh.itjust.works
            link
            fedilink
            arrow-up
            2
            ·
            edit-2
            39 minutes ago

            They aren’t complaining that there aren’t enough filters. They’re pointing out just how stupid and futile filtering a few words is in the first place.

            • OpenStars@piefed.social
              link
              fedilink
              English
              arrow-up
              1
              ·
              edit-2
              40 minutes ago

              There may also be a misunderstanding, or perhaps this argument is only one of those that only looks smart from far away, but either way to clarify: this list isn’t truly a filter list, it’s a listing of community NAMES that will get filtered out.

              For one thing, (sadly) there aren’t so many Latin-speaking instances in the Threadiverse?

              And I tried to search for community names for some of the others, but did not find any? e.g. https://feddit.org/search?q=scheisse&type=Communities&listingType=All, https://feddit.org/search?q=joder&type=Communities&listingType=All&page=1&sort=TopAll, etc.

              So is it really “stupid” then, to block communities that don’t even exist? ich_el would be an example of one that would actually exist, although I don’t think that one needs to be filtered out. I was saying that if there is really truly one that should be filtered, then it could be added to the list?

              If someone wanted a less ah… “argumentative” subset of the Threadiverse, then I could see how filtering out “fuck_cars” would achieve that end (not that I agree with having such a listing, or in the exact contents of this one, but I do disagree that it is “stupid” as in ineffectual to have made the list in this way - it is achieving some kind of a purpose, and with people’s help that purpose could itself be changed, or if kept intact then the list enhanced to function even better than it has been doing so far).

              • bufalo1973@piefed.social
                link
                fedilink
                English
                arrow-up
                1
                ·
                23 minutes ago

                But the “tits” filter can apply to “partits” (Catalan, means parties in English) or “partitsocialista”. And now there are no communities with those names… but what if someone in the future wants to create them?

    • Zoot@reddthat.com
      link
      fedilink
      arrow-up
      126
      ·
      19 hours ago

      Damn this should honestly be spread and talked about more. I don’t think many people know this is a thing?

      • 4am@lemmy.zip
        link
        fedilink
        arrow-up
        133
        arrow-down
        2
        ·
        17 hours ago

        Considering PieFed users won’t shut the fuck up about how much better and less politically opinionated it is, yeah we should probably shout this from the rooftops.

        Reminds me of Brave browser users a bit

        • OpenStars@piefed.social
          link
          fedilink
          English
          arrow-up
          1
          arrow-down
          1
          ·
          3 hours ago

          users won’t shut the fuck up about how much better it is

          Absolutely! Oh wait, we aren’t talking about Rust debate bros here?

          img

        • Eugene V. Debs' Ghost@lemmy.dbzer0.com
          link
          fedilink
          English
          arrow-up
          12
          arrow-down
          1
          ·
          edit-2
          4 hours ago

          “Ours is not biased and less opinionated, because it agrees with my bias and opinions.”

          This is every single Lemmy v PieFed argument. No matter what platform you host or use, its just this on the grand scale of things.

        • pivot_root@lemmy.world
          link
          fedilink
          arrow-up
          19
          arrow-down
          4
          ·
          edit-2
          15 hours ago

          One of PyFed’s selling points was that it was easier to work with than Lemmy. It’s going to be amusing when that takes a 180 turn and people start complaining.

          Python is great for prototyping and iterating on small projects or as glue for modules written in C and C++. What it isn’t great at is linearly scaling on a single node. When the day that throwing more powerful hardware at the problem stops being an option, Kubernetes is going to walk through that door and fuck any semblance of simplicity up.

          • OpenStars@piefed.social
            link
            fedilink
            English
            arrow-up
            2
            ·
            3 hours ago

            People are already complaining (see: this very thread:-), but also note that people are complaining about Lemmy too - e.g. slrpnk.net about to switch to PieFed, due to frustrations with long-standing bugs.

            People always complain, the important thing is to move forward with something that is going to work. Personally I think Lemmy will not, though I would be happy to be proven wrong, and I am pinning all hopes on PieFed - worst case there is that they both succeed, which would be fantastic 😍.

            Yes I hear what you are saying about resources and complexity (learning Rust is somewhat complicated as well though…), but right now the subscriber counts across the entire Threadiverse are dropping not rising, so that will be a wonderful problem to have to solve one day, if we ever get to that point.

          • mushroomman_toad@lemmy.dbzer0.com
            link
            fedilink
            arrow-up
            7
            arrow-down
            1
            ·
            12 hours ago

            I think Lemmy has some in-memory data structures that limit the backend to a single node, too. Also postgres is great, but Lemmy really fucked up their database performance somehow.

            But yeah large python codebases turn into spaghetti really quickly.

            • [object Object]@lemmy.world
              link
              fedilink
              arrow-up
              1
              ·
              edit-2
              18 minutes ago

              large python codebases turn into spaghetti really quickly

              I don’t think the language is the problem here. Seeing as Python isn’t somehow severely limited in its expressiveness or organization. Static typing isn’t a cure against spaghetti.

              However, code in that particular file doesn’t inspire any faith in the authors’ organizing skill.

            • orca@orcas.enjoying.yachts
              link
              fedilink
              arrow-up
              1
              ·
              23 minutes ago

              but Lemmy really fucked up their database performance somehow.

              Can confirm. I spent like 4 hours one day configuring auto vacuum and other shit on my Lemmy DB because it was bloating to hell and eating up resources. Runs much smoother now but it was a massive PITA to get there.

    • Jerkface (any/all)@lemmy.ca
      link
      fedilink
      English
      arrow-up
      55
      arrow-down
      2
      ·
      17 hours ago

      This isn’t the first time I’ve encountered an extremely pointed line of code in piefed meant to fuck over one person specifically. It’s very concerning now that it’s a pattern.

      • qaz@lemmy.worldOP
        link
        fedilink
        English
        arrow-up
        3
        ·
        6 hours ago

        I think a regex to filter out common slurs isn’t really the same

        The regex:

        (fag(g|got|tard)?\b|cock\s?sucker(s|ing)?|ni((g{2,}|q)+|[gq]{2,})[e3r]+(s|z)?|mudslime?s?|kikes?|\bspi(c|k)s?\b|\bchinks?|gooks?|bitch(es|ing|y)?|whor(es?|ing)|\btr(a|@)nn?(y|ies?)|\b(b|re|r)tard(ed)?s?)
        

        Link to code

        • RaivoKulli@sopuli.xyz
          link
          fedilink
          arrow-up
          4
          ·
          2 hours ago

          fagtard

          That can’t be common enough to be included lmao. Also censoring “bitching” is kind hard, now I can’t tell everyone about my bitching ride

      • leMe@lemmy.dbzer0.com
        link
        fedilink
        arrow-up
        4
        ·
        9 hours ago

        thanks for pointing to that issue. i dont know how piefed devs reacted to this. so i will give them the benefit of the doubt: it could very well be a quick and dirty solution, never meant to last long.

        as the lemmy devs showed, it does not have to be like this at all. but i haven’t seen that much oppinionsted and defensive actions from the piefed devs.

    • 🇰 🌀 🇱 🇦 🇳 🇦 🇰 🇮 @pawb.social
      link
      fedilink
      English
      arrow-up
      57
      arrow-down
      1
      ·
      edit-2
      19 hours ago

      They also put “memes” and “enoughmuskspam.”

      The latter I guess could be used to stop Musk spam (since the community is literally nothing but Elon Musk news) but not allowing the word “memes” in a community name?

      Utterly stupid.

      But they do appear to be fans of Carlin based on the first 7 banned words.

      There’s no racial slurs in there either. I might have assumed this was merely an example an operator is meant to edit themselves, but these are some weird ass choices for even that.

    • plyth@feddit.org
      link
      fedilink
      English
      arrow-up
      4
      arrow-down
      1
      ·
      11 hours ago

      kind of content they dislike

      Or they like it and e.g. want just one strong 196 community.

        • plyth@feddit.org
          link
          fedilink
          English
          arrow-up
          1
          ·
          10 hours ago

          That could be the point. No such community on a new instance can be found by others so the original community receives all the attention.

          • qaz@lemmy.worldOP
            link
            fedilink
            English
            arrow-up
            3
            ·
            6 hours ago

            That doesn’t make any sense because it doesn’t block the new 196 community because it uses letters

            • plyth@feddit.org
              link
              fedilink
              English
              arrow-up
              1
              ·
              edit-2
              3 hours ago

              What do you mean? 196 is part of the list in degenerate_neutron_matter’s comment so a new 196 channel would be blocked.

              Do you mean that the official 196 channel uses words and if somebody copies that it is not blocked? True but who would do that?

              • Skavau@piefed.social
                link
                fedilink
                English
                arrow-up
                2
                ·
                2 hours ago

                This isn’t a “block” as such. You can still view meme and 196 content and 196 from piefed.social. As another user said:

                "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."

    • JackbyDev@programming.dev
      link
      fedilink
      English
      arrow-up
      4
      ·
      12 hours ago

      Isn’t there a Java based Lemmy compatible thing too? I forgot what it was called but I think there is one.

    • FiniteBanjo@feddit.online
      link
      fedilink
      English
      arrow-up
      14
      arrow-down
      1
      ·
      18 hours ago

      So if I started a piefed instance and wanted to host a 196 community I’d have to edit the list, but would every single other instance also have to or no?

      • OpenStars@piefed.social
        link
        fedilink
        English
        arrow-up
        1
        ·
        4 hours ago

        Or you could pull it in manually. It’s just that the automated startup would not do it for you, for communities with these keywords. Nothing prevents anyone from pulling in the communities manually though.

      • mic_check_one_two@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        19
        ·
        16 hours ago

        Yes, every other instance would also refuse to federate unless they also changed their code. Because the blocklist is baked right into the code, so anyone just pulling and running it as-is will fail to federate.

        • FiniteBanjo@feddit.online
          link
          fedilink
          English
          arrow-up
          7
          arrow-down
          1
          ·
          edit-2
          14 hours ago

          It’s odd that communities with those names load if they’re hosted on Lemmy, tho. Or maybe I’ve just only been on Piefed Instances that undid the list.

    • DreamButt@lemmy.world
      link
      fedilink
      English
      arrow-up
      6
      arrow-down
      9
      ·
      18 hours ago

      They’re pretty explicit about what they don’t like when you sign up. That’s why I joined it

      • degenerate_neutron_matter@fedia.io
        link
        fedilink
        arrow-up
        51
        ·
        18 hours ago

        Each instance should be free to set their own rules. Individual instances blocking those communities is fine, but the PieFed devs hardcoding a blocklist that applies to all instances (especially one as opinionated and arbitrary as this) is absolutely not.

        • OpenStars@piefed.social
          link
          fedilink
          English
          arrow-up
          3
          arrow-down
          8
          ·
          15 hours ago

          Each instance should be free to set their own rules.

          They… are though? Maybe I am dumb, but I do not understand why each instance setting its own rules would apply to all other instances? Say if you made your own instance, you would set your own rules, but the other instances are free to set theirs as well? Like if you want to allow communities such as “4chan”, then go ahead, but if others want to block that, then why shouldn’t they be allowed to?

          Definitely agree that this issue should be made much more transparent and easier to change, like not hard-coding it.

          • degenerate_neutron_matter@fedia.io
            link
            fedilink
            arrow-up
            25
            ·
            14 hours ago

            This filter is not part of any specific instance, it’s hardcoded into PieFed’s code. That means it applies to every PieFed instance unless the instance admin explicitly patches the code to remove it.

            • OpenStars@piefed.social
              link
              fedilink
              English
              arrow-up
              2
              ·
              edit-2
              3 hours ago

              As mentioned elsewhere, it’s just a convenience function - anytime after starting up the instance, the admins can always pull in those communities manually. Or change this part of the code beforehand. So it’s not a hard-coded “block”, just slightly less convenient for it to not automatically pull in those communities during the one-time initial setup for an instance.

              But anyway you are right that this should not be a hard-coded list.

              Edit: it’s also worth mentioning that the way that Lemmy does this is via a direct pull of communities from Lemmy.ml. What I am reacting to here is not so much to say that PieFed’s method is perfect, but that both suffer from flaws, and that PieFed’s is relatively benign, at least in comparison to Lemmy’s. Lemmy uses an extremely authoritarian approach whereby Lemmy.ml is the sole and invariant arbiter of what communities are allowed vs. not during that initial one-time setup, and there is no way to change that, whereas PieFed uses a list that the instance admin is capable of changing. On the spectrum of authoritarian control, PieFed’s level here is like a 1 out of 100, whereas Lemmy’s is… well, it’s still not much in this exact situation, but it’s definitely way more. Sorry for being confusing initially in the way I worded that.

              • Ofiuco@piefed.ca
                link
                fedilink
                English
                arrow-up
                2
                ·
                2 hours ago

                I don’t host any so as I understand it:

                The problem with PieFed is the initial filter list is not opt-in, but can be modified freely.

                The problem with Lemmy is changes like those will be hardcoded.

                The thing with PieFed… I don’t know if it’s in the setup guide and OP didn’t read it or if it must be pointed out in the guide.
                Anyway, it should be opt-in, not opt-out.
                But trying to frame it as if it was as terrible as lemmy… Lemmy defenders sure love the ragebait.

                • OpenStars@piefed.social
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  1 hour ago

                  I presume that it was a simple misunderstanding, but in any case it has lead to some… interesting, and ultimately quite fruitful discussion, so there’s that to have enjoyed:-).

                  And it really shouldn’t have been hard-coded like that. A minor issue imho, and one not really a problem until now, but at least it’s already now well on its way to being resolved. In contrast, Lemmy’s own hard-coding of Lemmy.ml into the equivalent function I doubt will ever be changed, certainly not without strong reluctance (and likely along with public outcry, as before with the filter list).

                  One point: I would argue that opt-in vs. -out doesn’t fully apply here, as this automated convenience function will only ever be run once upon initial setup for an instance, after which the instance admin can add any communities they desire, manually (I’m not sure why OP phrased it then as needing to be “debugged”, that seems an odd term for such routine instance maintenance tasks that do not need any modification of any code at all, anywhere?). In short, it’s not actually a “block” at all, as the wording in the meme seems to me to strongly imply by using “federate”). The phrase “opt-out” usually referrs to something harsh but that isn’t all the way fully forced, but this issue of not pulling in (initially) of communities is so extremely gentle than on the spectrum it is adjacent to “opt-in” already? Still, ultimately you are probably correct, I am just not sure of the wording there, so wanted to help by offering those additional nuances.