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

    D This user is from outside of this forum
    D This user is from outside of this forum
    doopen@lemmy.world
    wrote last edited by
    #69

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

    samus12345@sh.itjust.worksS 1 Reply Last reply
    19
    • Z zombifrancis@sh.itjust.works

      current_user.reputation -= 1

      So what exactly is going on there?

      G This user is from outside of this forum
      G This user is from outside of this forum
      goferking (he/him)
      wrote last edited by
      #70

      Piefed punishes users for wrong think/not acting like the creator wants

      1 Reply Last reply
      18
      • 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.

        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
        #71

        Looks like Piefed really is Lemmy with SpezTools.

        Eugene V. Debs' GhostE 1 Reply Last reply
        28
        • EldritchE Eldritch

          Aaaah cool. So plain speak wise, perception often becomes a persons reality. Even if not permanently. And the wealthiest use manipulation through propaganda to control perception and what individuals perceive as reality. Pitting them against eachother. I don't see anything too controversial about that. But I can see why ML would. They're very dependent on said propaganda and manipulation.

          Cowbee [he/they]C This user is from outside of this forum
          Cowbee [he/they]C This user is from outside of this forum
          Cowbee [he/they]
          wrote last edited by cowbee@lemmy.ml
          #72

          Marxists disagree with "anarcho-antirealists" because Marxists are materialists, not idealists. Grail is stating that reality itself is a reflection of ideas, and that, therefore, escapism is praxis. Marxists take the opposite approach, and seek real liberation by real means, as dialectical materialists. Propaganda and cultural hegemony have little to do with why Marxists oppose idealists, it's because idealism itself is bourgeois and prevents effective praxis (see escapism as being seen as praxis by idealists, rather than organizing and struggle).

          Also not sure what you mean by Marxist-Leninists depending on "propaganda and manipulation," we certainly believe in dispelling bourgeois mythos and in espousing correct, scientific lines on revolutionary struggle. However, the idea that this is in service of some nefarious, manipulative ends is ill-founded. Communists have always fought for the working classes, and against bourgeois cultural hegemony in favor of proletarian culture and science.

          It seems more like you're letting your distaste for Marxism cloud your interpretation of Their comment, when They are quite literally telling you They are rejecting material reality in favor of fantasies. You're interpeting the message as getting in control of perceptions to dispel propaganda's effect when the reason the concept is controversial is because it's a fundamentally solipsist ideology.

          1 Reply Last reply
          6
          • hitagiH hitagi

            For those hosting their own PieFed instances, this is very easy to disable (I think it was ALLOW_4CHAN=True in the env). I turned it off because I didn't like the OCR scanning every upload and locking up my tiny 2 core server for a few seconds.

            wjs018W This user is from outside of this forum
            wjs018W This user is from outside of this forum
            wjs018
            wrote last edited by
            #73

            It's also a checkbox on the admin/misc settings to make it easier to disable.

            1 Reply Last reply
            8
            • 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.

              W This user is from outside of this forum
              W This user is from outside of this forum
              whimsy@lemmy.zip
              wrote last edited by
              #74

              Wow, great post. I was mildly annoyed by all the piefed shenanigans from non compliance with activitypub but this really is quite eye opening

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

                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?

                huntresshimbo@lemmy.zipH This user is from outside of this forum
                huntresshimbo@lemmy.zipH This user is from outside of this forum
                huntresshimbo@lemmy.zip
                wrote last edited by
                #75

                Yeah, as a developer if you ever catch yourself thinking "my software should lie to the user", probably take a step back and reconsider.

                1 Reply Last reply
                16
                • 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.

                  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
                  #76

                  Stupid isn't ableist you 2014 tumblrina.

                  Diva (she/her)D F tetragrade@leminal.spaceT RedWizard [he/him]A 4 Replies Last reply
                  19
                  • A altphoto@lemmy.today

                    I cannot post pictures anymore. Is that a thing now? They just ban you from posting images without telling you why or what you did wrong? I assume I did something wrong. Only recently I found the mod log and dude, nobody told me that existed.

                    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
                    #77

                    I think that's unrelated.

                    A 2 Replies Last reply
                    1
                    • B blockityblock

                      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?

                      nullN This user is from outside of this forum
                      nullN This user is from outside of this forum
                      null
                      wrote last edited by
                      #78

                      It's "deliberate"?

                      1 Reply Last reply
                      0
                      • S Skavau

                        This is a really dramatic observation. The user did it specifically, if I recall, to try and evade AI detection or something.

                        It's also amusing because said user itself is literally on a piefed instance.

                        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
                        #79

                        They thought it poisoned llms (it didn't, and they ignored people who mentioned it). Not to evade any ai thing.

                        1 Reply Last reply
                        9
                        • 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.

                          Q This user is from outside of this forum
                          Q This user is from outside of this forum
                          QuizzaciousOtter
                          wrote last edited by
                          #80

                          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.

                          irelephant [he/him]I samus12345@sh.itjust.worksS R 3 Replies Last reply
                          42
                          • Ricky RigatoniR Ricky Rigatoni

                            Stupid isn't ableist you 2014 tumblrina.

                            Diva (she/her)D This user is from outside of this forum
                            Diva (she/her)D This user is from outside of this forum
                            Diva (she/her)
                            wrote last edited by
                            #81

                            Calling people or ideas 'stupid' is ableist because it treats cognitive disability as an insult

                            T 1 Reply Last reply
                            13
                            • irelephant [he/him]I irelephant [he/him]

                              I think that's unrelated.

                              A This user is from outside of this forum
                              A This user is from outside of this forum
                              altphoto@lemmy.today
                              wrote last edited by
                              #82

                              OK I'll keep trying to figure this out.

                              irelephant [he/him]I 1 Reply Last reply
                              1
                              • irelephant [he/him]I irelephant [he/him]

                                I think that's unrelated.

                                A This user is from outside of this forum
                                A This user is from outside of this forum
                                altphoto@lemmy.today
                                wrote last edited by
                                #83

                                Looks like someone opened an issue a few years ago for the same problem:

                                https://github.com/LemmyNet/lemmy-docs/issues/214

                                1 Reply Last reply
                                0
                                • A altphoto@lemmy.today

                                  OK I'll keep trying to figure this out.

                                  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
                                  #84

                                  You could mention this at https://lemmy.today/c/lemmytoday

                                  Also, you could upload the images to https://postimages.org/ and use the direct link

                                  1 Reply Last reply
                                  1
                                  • 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.

                                    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
                                    #85

                                    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.

                                    L 1 Reply Last reply
                                    18
                                    • Ricky RigatoniR Ricky Rigatoni

                                      Stupid isn't ableist you 2014 tumblrina.

                                      F This user is from outside of this forum
                                      F This user is from outside of this forum
                                      fleetwoodlinux@lemmy.zip
                                      wrote last edited by
                                      #86

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

                                      Ricky RigatoniR 1 Reply Last reply
                                      14
                                      • S [object Object]

                                        Piefed has code to explicitly fuck over Sxan or what's their name, by replacing the thorn character with ‘th’. Meaning you can't properly cite Old English, Old Norse, or modern Icelandic on Piefed. But of course, “Lemmy is the authoritarian communist platform”.

                                        Piefed's code also reeks of a recent college graduate, being a stream of consciousness with almost no comments. Meanwhile the most known, and seemingly most active dev claims twenty-five years of experience, making one wonder if they learned anything in that time (or if they count from when they've typed up some Logo at three years old).

                                        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
                                        #87

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

                                        samus12345@sh.itjust.worksS SendPicsofSandwichesS 2 Replies Last reply
                                        6
                                        • B bb84@mander.xyz

                                          lol hardcoded shit everywhere. that codebase is so bad it's entertaining. you should make a standalone post about this here and crosspost to !programming_horror@programming.dev

                                          P This user is from outside of this forum
                                          P This user is from outside of this forum
                                          plyth@feddit.org
                                          wrote last edited by plyth@feddit.org
                                          #88

                                          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 irelephant [he/him]I E 3 Replies Last reply
                                          4
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • 1
                                          • 2
                                          • 5
                                          • 6
                                          • 7
                                          • 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