Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

The Fedi Forum

  1. Home
  2. Fediverse
  3. Fun fact: you can't upload this image on piefed.social

Fun fact: you can't upload this image on piefed.social

Scheduled Pinned Locked Moved Fediverse
fediverse
178 Posts 57 Posters 8 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Q QuizzaciousOtter

    Wow, thanks for posting this. I actually considered switching to PieFed because people say a lot of good things about it but now I know I won't. I can't treat codebase like this seriously.

    samus12345@sh.itjust.worksS This user is from outside of this forum
    samus12345@sh.itjust.worksS This user is from outside of this forum
    samus12345@sh.itjust.works
    wrote last edited by
    #89

    Same, this is good to know. This level of auto-policing comments is excessive.

    1 Reply Last reply
    14
    • Ricky RigatoniR Ricky Rigatoni

      Stupid isn't ableist you 2014 tumblrina.

      tetragrade@leminal.spaceT This user is from outside of this forum
      tetragrade@leminal.spaceT This user is from outside of this forum
      tetragrade@leminal.space
      wrote last edited by
      #90

      le librul destroyed epic style

      1 Reply Last reply
      7
      • D doopen@lemmy.world

        I appreciate only the thought behind blocking "this" as a response

        samus12345@sh.itjust.worksS This user is from outside of this forum
        samus12345@sh.itjust.worksS This user is from outside of this forum
        samus12345@sh.itjust.works
        wrote last edited by
        #91

        How much would Piefed hate this image?

        R 1 Reply Last reply
        25
        • Q quandaledingle@lemmy.world

          I've been wondering, what's the deal with that Sxan guy's spelling?

          samus12345@sh.itjust.worksS This user is from outside of this forum
          samus12345@sh.itjust.worksS This user is from outside of this forum
          samus12345@sh.itjust.works
          wrote last edited by
          #92

          Ostensibly they do it to interfere with AI scraping social media comments, but of course it does nothing but make their comments more difficult to read.

          S L 2 Replies Last reply
          13
          • F fleetwoodlinux@lemmy.zip

            Very epic insult! Next you'll tell me gamergate is actually about ethics in journalism

            Ricky RigatoniR This user is from outside of this forum
            Ricky RigatoniR This user is from outside of this forum
            Ricky Rigatoni
            wrote last edited by
            #93

            Ganergate is actually about the gamer gator Vector.

            1 Reply Last reply
            1
            • Q quandaledingle@lemmy.world

              I've been wondering, what's the deal with that Sxan guy's spelling?

              SendPicsofSandwichesS This user is from outside of this forum
              SendPicsofSandwichesS This user is from outside of this forum
              SendPicsofSandwiches
              wrote last edited by
              #94

              They say that it's a bid to contaminate AI data collection, but it really just reads like more of a cry for attention

              Q L 2 Replies Last reply
              26
              • Blaze (he/him)B Blaze (he/him)

                Lemmy recently removed a feature using lemmy.ml as a source of truth for federated communities: https://lemmy.ml/comment/23400094

                All Fediverse developers make mistakes.

                P This user is from outside of this forum
                P This user is from outside of this forum
                postimo@lemmy.zip
                wrote last edited by
                #95

                Sure, but there is a difference between a hacked together solution being removed as the community expanded, and coding in a petty gripe with a particular user.

                1 Reply Last reply
                21
                • G Grail

                  I only support the inclusion of the feature if there's also an option to convert all ths into thorns. Fair is fair.

                  Z This user is from outside of this forum
                  Z This user is from outside of this forum
                  zombifrancis@sh.itjust.works
                  wrote last edited by
                  #96

                  Which would appropriate for a client-side user-level filter instead of a server-side instance-admin hard-coded setting.

                  1 Reply Last reply
                  5
                  • RedWizard [he/him]A RedWizard [he/him]

                    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 content
                    

                    If 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 False
                    

                    Every 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 earned aka 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 False
                    

                    Yup. If your image contains the word Anonymous, and contains the text No. or N0 it 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 the current_user.reputation -= 1

                    PieFed 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 admin
                    

                    This 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 False
                    

                    I'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 None
                    

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

                    flango@lemmy.eco.brF This user is from outside of this forum
                    flango@lemmy.eco.brF This user is from outside of this forum
                    flango@lemmy.eco.br
                    wrote last edited by
                    #97

                    Wooow, I didn't know any of this. Thanks for the detailed explanation

                    RedWizard [he/him]A 1 Reply Last reply
                    12
                    • P plyth@feddit.org

                      lol hardcoded shit everywhere

                      It's open source. Why not? People who want a configuration menu can create a patch.

                      Downvoters, do you have an argument? What is it but entitlement to demand that free open source software should be written differently from what the programmer wants?

                      B This user is from outside of this forum
                      B This user is from outside of this forum
                      bb84@mander.xyz
                      wrote last edited by
                      #98

                      I didn't downvote your comment. But let me argue anyway.

                      Lots of people flock to PieFed because it is not made by the Lenmy devs who are unpalatably heavy handed in their "moderation" on the ml instance. One would hope this means PieFed offers more freedom to use the software how you like. So it's funny that it's even stricter "moderation" AND NOW ITS HARDCODED so it affects every instance.

                      P L 2 Replies Last reply
                      22
                      • wjs018W wjs018

                        the whole รพ fiasco

                        That has since been removed. Yeah, rimu is certainly opinionated and passionate about what he believes in, but has also been pretty receptive to feedback, both from users and from admins (like in the private voting case). Fortunately, there are alternative threadiverse platforms out there for people that want them. Both lemmy and mbin do some stuff better than PieFed, and that's ok. The different projects have maintained working relationships at the dev level to try to make sure interoperability outside the base activitypub spec doesn't completely break (the post-moving feature/FEP was a collaboration between PieFed, lemmy, and NodeBB for example).

                        R This user is from outside of this forum
                        R This user is from outside of this forum
                        rothaine@lemmy.zip
                        wrote last edited by
                        #99

                        the private voting case

                        What's this?

                        irelephant [he/him]I 1 Reply Last reply
                        4
                        • M magiccupcake@lemmy.world

                          If 0/0 < 0 would error?

                          If 0 < 0 evaluates false

                          That makes it even worse???

                          B This user is from outside of this forum
                          B This user is from outside of this forum
                          bb84@mander.xyz
                          wrote last edited by
                          #100

                          Usually 0/0=NaN and NaN compared with a number would be false.

                          Maybe the (up-down)/(up+down) is just what AmazingWizard summarized from the code. But from what we have seen of the quality of that codebase I won't be surprised if it's literally this expression, division by zero and all. Lol

                          โˆž๐Ÿณ๏ธโ€โšง๏ธEdie [it/it/its/its/itself, she/her/her/hers/herself, fae/faer/faer/faers/faerself, love/love/loves/loves/loveself, des/pair, null/void, none/use name]E 1 Reply Last reply
                          3
                          • SendPicsofSandwichesS SendPicsofSandwiches

                            They say that it's a bid to contaminate AI data collection, but it really just reads like more of a cry for attention

                            Q This user is from outside of this forum
                            Q This user is from outside of this forum
                            quandaledingle@lemmy.world
                            wrote last edited by quandaledingle@lemmy.world
                            #101

                            Yeah, I've seen him around and that's the conclusion I kinda came to. "You do you", though.

                            1 Reply Last reply
                            8
                            • P plyth@feddit.org

                              lol hardcoded shit everywhere

                              It's open source. Why not? People who want a configuration menu can create a patch.

                              Downvoters, do you have an argument? What is it but entitlement to demand that free open source software should be written differently from what the programmer wants?

                              irelephant [he/him]I This user is from outside of this forum
                              irelephant [he/him]I This user is from outside of this forum
                              irelephant [he/him]
                              wrote last edited by
                              #102

                              Its already configurableโ€”some people sent patches for those things already.

                              1 Reply Last reply
                              5
                              • ๐Ÿ‡ฐ ๐ŸŒ€ ๐Ÿ‡ฑ ๐Ÿ‡ฆ ๐Ÿ‡ณ ๐Ÿ‡ฆ ๐Ÿ‡ฐ ๐Ÿ‡ฎ K ๐Ÿ‡ฐ ๐ŸŒ€ ๐Ÿ‡ฑ ๐Ÿ‡ฆ ๐Ÿ‡ณ ๐Ÿ‡ฆ ๐Ÿ‡ฐ ๐Ÿ‡ฎ

                                Was wondering what those red exclamations were on some piefed users. Also surprising that I see them using a Lemmy client on a Lemmy instance, but can't click on them to see what they mean, as highlighted here.

                                irelephant [he/him]I This user is from outside of this forum
                                irelephant [he/him]I This user is from outside of this forum
                                irelephant [he/him]
                                wrote last edited by
                                #103

                                I am very interested in what client you are using. Do you have a screenshot of this?

                                ๐Ÿ‡ฐ ๐ŸŒ€ ๐Ÿ‡ฑ ๐Ÿ‡ฆ ๐Ÿ‡ณ ๐Ÿ‡ฆ ๐Ÿ‡ฐ ๐Ÿ‡ฎ K 1 Reply Last reply
                                3
                                • irelephant [he/him]I irelephant [he/him]

                                  I am very interested in what client you are using. Do you have a screenshot of this?

                                  ๐Ÿ‡ฐ ๐ŸŒ€ ๐Ÿ‡ฑ ๐Ÿ‡ฆ ๐Ÿ‡ณ ๐Ÿ‡ฆ ๐Ÿ‡ฐ ๐Ÿ‡ฎ K This user is from outside of this forum
                                  ๐Ÿ‡ฐ ๐ŸŒ€ ๐Ÿ‡ฑ ๐Ÿ‡ฆ ๐Ÿ‡ณ ๐Ÿ‡ฆ ๐Ÿ‡ฐ ๐Ÿ‡ฎ K This user is from outside of this forum
                                  ๐Ÿ‡ฐ ๐ŸŒ€ ๐Ÿ‡ฑ ๐Ÿ‡ฆ ๐Ÿ‡ณ ๐Ÿ‡ฆ ๐Ÿ‡ฐ ๐Ÿ‡ฎ
                                  wrote last edited by kolanaki@pawb.social
                                  #104

                                  Considering what wjs018 said, I now suspect the users I've seen it on just added the symbol in their display name like a badge of honor, like how mine is all emojis. Which is what I thought before seeing this thread initially.

                                  And I use Connect.

                                  1 Reply Last reply
                                  1
                                  • R rothaine@lemmy.zip

                                    the private voting case

                                    What's this?

                                    irelephant [he/him]I This user is from outside of this forum
                                    irelephant [he/him]I This user is from outside of this forum
                                    irelephant [he/him]
                                    wrote last edited by
                                    #105

                                    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.

                                    R Z 2 Replies Last reply
                                    5
                                    • irelephant [he/him]I irelephant [he/him]

                                      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.

                                      R This user is from outside of this forum
                                      R This user is from outside of this forum
                                      rothaine@lemmy.zip
                                      wrote last edited by
                                      #106

                                      Oh interesting. Anonymous votes does sound cool.

                                      1 Reply Last reply
                                      1
                                      • RedWizard [he/him]A RedWizard [he/him]

                                        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 content
                                        

                                        If 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 False
                                        

                                        Every 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 earned aka 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 False
                                        

                                        Yup. If your image contains the word Anonymous, and contains the text No. or N0 it 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 the current_user.reputation -= 1

                                        PieFed 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 admin
                                        

                                        This 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 False
                                        

                                        I'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 None
                                        

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

                                        R This user is from outside of this forum
                                        R This user is from outside of this forum
                                        raspberriesareyummy@lemmy.world
                                        wrote last edited by
                                        #107

                                        if anything, the code examples confirmed my belief that most python coders are fucking morons.

                                        T 1 Reply Last reply
                                        7
                                        • RedWizard [he/him]A RedWizard [he/him]

                                          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 content
                                          

                                          If 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 False
                                          

                                          Every 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 earned aka 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 False
                                          

                                          Yup. If your image contains the word Anonymous, and contains the text No. or N0 it 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 the current_user.reputation -= 1

                                          PieFed 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 admin
                                          

                                          This 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 False
                                          

                                          I'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 None
                                          

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

                                          sortekanin@feddit.dkS This user is from outside of this forum
                                          sortekanin@feddit.dkS This user is from outside of this forum
                                          sortekanin@feddit.dk
                                          wrote last edited by
                                          #108

                                          ... Wow. I mean I already knew there was some questionable stuff with PieFed but this is honestly next level.

                                          S 1 Reply Last reply
                                          22
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • 1
                                          • 2
                                          • 3
                                          • 4
                                          • 5
                                          • 8
                                          • 9
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          Powered by NodeBB Contributors
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World