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
182 Posts 59 Posters 26 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.
  • wjs018W wjs018

    Also fun fact, you can probably upload it to most other piefed instances just fine.

    rimu has pretty strong opinions on social media. This filter is optional and can be turned on/off by an admin. Some of my contributions to piefed have been to make filters or features that are strongly opinionated like this optional. For piefed.social specifically though, rimu has all of them on because that is his instance and he runs it the way he wants.

    B This user is from outside of this forum
    B This user is from outside of this forum
    blockityblock
    wrote last edited by
    #17

    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 nullN Blaze (he/him)B 3 Replies Last reply
    23
    • irelephant [he/him]I irelephant [he/him]

      https://codeberg.org/rimu/pyfedi/src/commit/6405e51dab23f43eaea18d0ee4d9e7a773a3fd31/app/community/forms.py#L335

      deliberately misleading error message.

      RedWizard [he/him]A This user is from outside of this forum
      RedWizard [he/him]A This user is from outside of this forum
      RedWizard [he/him]
      wrote last edited by amazingwizard@lemmy.ml
      #18

      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.

      M B ๐Ÿ‡ฐ ๐ŸŒ€ ๐Ÿ‡ฑ ๐Ÿ‡ฆ ๐Ÿ‡ณ ๐Ÿ‡ฆ ๐Ÿ‡ฐ ๐Ÿ‡ฎ K wjs018W P 19 Replies Last reply
      202
      • EldritchE Eldritch

        So, communist as in the more socially liberal anarco type of communism? Less vanguard, more community building, consent and mutual aid?

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

        Grail is referring to the solipsist idea of "anarcho-antirealism." Grail moderates it. Less vanguard, less community building, less consent, less mutual aid, more escapism and rejection of reality.

        About Us

        Destroy Reality. Create a Multiverse.

        MULTIVERSE is a threaded, federated forum for anarcho-antirealists. The UI might remind you of Reddit, and weโ€™re connected to dozens of other sites run by different people with different values. But if you came here, youโ€™re probably an anarchist with a distaste for โ€œobjectiveโ€ reality, and I promise that this site is a safe space for you.

        From the "about" page.

        EldritchE 1 Reply Last reply
        14
        • Cowbee [he/they]C Cowbee [he/they]

          Grail is referring to the solipsist idea of "anarcho-antirealism." Grail moderates it. Less vanguard, less community building, less consent, less mutual aid, more escapism and rejection of reality.

          About Us

          Destroy Reality. Create a Multiverse.

          MULTIVERSE is a threaded, federated forum for anarcho-antirealists. The UI might remind you of Reddit, and weโ€™re connected to dozens of other sites run by different people with different values. But if you came here, youโ€™re probably an anarchist with a distaste for โ€œobjectiveโ€ reality, and I promise that this site is a safe space for you.

          From the "about" page.

          EldritchE This user is from outside of this forum
          EldritchE This user is from outside of this forum
          Eldritch
          wrote last edited by
          #20

          I see the cineplex is projecting again.

          Cowbee [he/they]C machenni@procial.tchncs.deM 2 Replies Last reply
          0
          • EldritchE Eldritch

            I see the cineplex is projecting again.

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

            I'm a dialectical materialist, not a solipsist. This is taken from the MULTIVERSE piefed about page:

            About Us

            Destroy Reality. Create a Multiverse.

            MULTIVERSE is a threaded, federated forum for anarcho-antirealists. The UI might remind you of Reddit, and weโ€™re connected to dozens of other sites run by different people with different values. But if you came here, youโ€™re probably an anarchist with a distaste for โ€œobjectiveโ€ reality, and I promise that this site is a safe space for you.

            From the "about" page.

            Escapism is literally praxis for this group, that's what rejecting reality is about. Trying to achieve better happiness for everyone by strengthening escapism.

            1 Reply Last reply
            13
            • EldritchE Eldritch

              I see the cineplex is projecting again.

              machenni@procial.tchncs.deM This user is from outside of this forum
              machenni@procial.tchncs.deM This user is from outside of this forum
              machenni@procial.tchncs.de
              wrote last edited by
              #22

              @Eldritch@piefed.world @Cowbee@lemmy.ml this sounds like a defedration waiting to happening, if I'm intereprting their mission right.

              Cowbee [he/they]C 1 Reply Last reply
              1
              • machenni@procial.tchncs.deM machenni@procial.tchncs.de

                @Eldritch@piefed.world @Cowbee@lemmy.ml this sounds like a defedration waiting to happening, if I'm intereprting their mission right.

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

                I dunno if they'll be defederated, they're small enough that they only have a few active users.

                machenni@procial.tchncs.deM 1 Reply Last reply
                7
                • Cowbee [he/they]C Cowbee [he/they]

                  I dunno if they'll be defederated, they're small enough that they only have a few active users.

                  machenni@procial.tchncs.deM This user is from outside of this forum
                  machenni@procial.tchncs.deM This user is from outside of this forum
                  machenni@procial.tchncs.de
                  wrote last edited by
                  #24

                  @Cowbee@lemmy.ml well, that may be the case, butโ€ฆ

                  Cowbee [he/they]C 1 Reply Last reply
                  0
                  • machenni@procial.tchncs.deM machenni@procial.tchncs.de

                    @Cowbee@lemmy.ml well, that may be the case, butโ€ฆ

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

                    I don't think solipsism is grounds for defederation from most places. I disagree with it heavily, but it isn't CSAM or fascist.

                    machenni@procial.tchncs.deM 1 Reply Last reply
                    8
                    • Cowbee [he/they]C Cowbee [he/they]

                      I don't think solipsism is grounds for defederation from most places. I disagree with it heavily, but it isn't CSAM or fascist.

                      machenni@procial.tchncs.deM This user is from outside of this forum
                      machenni@procial.tchncs.deM This user is from outside of this forum
                      machenni@procial.tchncs.de
                      wrote last edited by
                      #26

                      @Cowbee@lemmy.ml Fair enough. As I mentioned in my original reply (I think), I am not familiar with the idea.

                      Cowbee [he/they]C machenni@procial.tchncs.deM 2 Replies Last reply
                      0
                      • machenni@procial.tchncs.deM machenni@procial.tchncs.de

                        @Cowbee@lemmy.ml Fair enough. As I mentioned in my original reply (I think), I am not familiar with the idea.

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

                        Solipsism pretty much died out a long time ago as an extreme form of idealism. It exists as a philosophical framework but that's about it.

                        1 Reply Last reply
                        7
                        • machenni@procial.tchncs.deM machenni@procial.tchncs.de

                          @Cowbee@lemmy.ml Fair enough. As I mentioned in my original reply (I think), I am not familiar with the idea.

                          machenni@procial.tchncs.deM This user is from outside of this forum
                          machenni@procial.tchncs.deM This user is from outside of this forum
                          machenni@procial.tchncs.de
                          wrote last edited by
                          #28

                          @Cowbee@lemmy.ml I can see, though, that it's ego-fueled after looking up your word. I dunno. As you said, it really

                          Cowbee [he/they]C 1 Reply Last reply
                          3
                          • machenni@procial.tchncs.deM machenni@procial.tchncs.de

                            @Cowbee@lemmy.ml I can see, though, that it's ego-fueled after looking up your word. I dunno. As you said, it really

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

                            Yea, I can't agree with it at all.

                            machenni@procial.tchncs.deM 1 Reply Last reply
                            4
                            • Cowbee [he/they]C Cowbee [he/they]

                              Yea, I can't agree with it at all.

                              machenni@procial.tchncs.deM This user is from outside of this forum
                              machenni@procial.tchncs.deM This user is from outside of this forum
                              machenni@procial.tchncs.de
                              wrote last edited by
                              #30

                              @Cowbee@lemmy.ml My server (if I had one /sigh/) would defedrate it.

                              Cowbee [he/they]C 1 Reply Last reply
                              2
                              • machenni@procial.tchncs.deM machenni@procial.tchncs.de

                                @Cowbee@lemmy.ml My server (if I had one /sigh/) would defedrate it.

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

                                I wouldn't blame you.

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

                                  M This user is from outside of this forum
                                  M This user is from outside of this forum
                                  magiccupcake@lemmy.world
                                  wrote last edited by magiccupcake@lemmy.world
                                  #32

                                  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.

                                  This pains me because it is functionally equivalent to

                                  If downvotes cast < upvotes cast
                                  
                                  B S 2 Replies Last reply
                                  44
                                  • irelephant [he/him]I irelephant [he/him]

                                    https://codeberg.org/rimu/pyfedi/src/commit/6405e51dab23f43eaea18d0ee4d9e7a773a3fd31/app/community/forms.py#L335

                                    deliberately misleading error message.

                                    RimuR This user is from outside of this forum
                                    RimuR This user is from outside of this forum
                                    Rimu
                                    wrote last edited by
                                    #33

                                    If anyone has more ideas for how to frustrate and deceive fascists (and their enablers) please let me know.

                                    G SharkAttakS 2 Replies 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.

                                      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 bb84@mander.xyz
                                      #34

                                      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 1 Reply Last reply
                                      69
                                      • M magiccupcake@lemmy.world

                                        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.

                                        This pains me because it is functionally equivalent to

                                        If downvotes cast < upvotes cast
                                        
                                        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
                                        #35

                                        not if both upvotes and downvotes are zero โ—๏ธ

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

                                          ๐Ÿ‡ฐ ๐ŸŒ€ ๐Ÿ‡ฑ ๐Ÿ‡ฆ ๐Ÿ‡ณ ๐Ÿ‡ฆ ๐Ÿ‡ฐ ๐Ÿ‡ฎ K This user is from outside of this forum
                                          ๐Ÿ‡ฐ ๐ŸŒ€ ๐Ÿ‡ฑ ๐Ÿ‡ฆ ๐Ÿ‡ณ ๐Ÿ‡ฆ ๐Ÿ‡ฐ ๐Ÿ‡ฎ K This user is from outside of this forum
                                          ๐Ÿ‡ฐ ๐ŸŒ€ ๐Ÿ‡ฑ ๐Ÿ‡ฆ ๐Ÿ‡ณ ๐Ÿ‡ฆ ๐Ÿ‡ฐ ๐Ÿ‡ฎ
                                          wrote last edited by
                                          #36

                                          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.

                                          Cowbee [he/they]C wjs018W irelephant [he/him]I 3 Replies Last reply
                                          5
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


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