Web developer. Lead developer of PieFed

  • 13 posts
  • 6 comments
Joined 3 years ago
Cake day: January 4th, 2024

Based on recent feedback, PieFed v1.8 includes functionality that lets instance admins flag accounts as being a “Reposter”. Other than putting a little icon next to their name this has no effect on anyone until viewers opt in to filtering based on this flag.

It works just like how filtering for bots or NSFW content does - in your Filtering settings you can select to Show, Hide or Make Semi-Transparent posts by reposters, independently from bots or NSFW.

In your filtering settings (at https://piefed.social/user/settings/filters ), look for the field “Posts by reposters”. By default this is set to ‘Show’ so unless you opt in to this everything will be the same as it was before.

Admins: to flag an account, go to their profile and click ‘Edit in admin area’ (or find them at /admin/users), then tick the “Flag their posts as from a reposter (bot)” checkbox. PieFed v1.8 includes a raft of different tools for finding inauthentic behaviour, some of which falls under the umbrella of “reposting”, which you can employ. They are fairly complex so I will need to write more about how to use them, later.

If you are unsure, you can just ask the potential reposter. Go to their profile and click ‘Ask if reposter’ and they’ll receive a direct message from you. Bots will ignore it and PieFed will automatically apply the reposter flag after some time.

Each instance will need to define for itself what the difference between a bot and a reposter is. Some might choose to just ban all reposters rather than get into it. Many will just do nothing. For piefed.social I define a bot as automated posting of content, usually from a RSS feed or similar, always in the same community with no pretense of being human, no comments and no voting. A reposter is an account with automated posting of content, often from reddit or similar, often in a variety of communities, usually with a human operator that participates in discussions and votes.

There are a lot of different reposters. Some limit their automated posts to a single community and perhaps do some manual posts in others. Some blast out all kinds of posts and manually delete off-topic or undesirable posts later. Some reposters are part of a swarm operated by a single person. Often their content is interesting, relevant and generates a lot of discussion. I don’t know how the threadiverse is going to look with them hidden from me but I’m keen to find out.

This is a complex issue and it might take a few tries and experiments to find a good way of managing it. I hope you can bear with us as we feel our way forward through it.

  • Gallery posts, which is an image post with multiple images in it, compatible with Mastodon and Pixelfed. Check out this example from Mastodon.

  • “Reposters” as a separate thing from “Bots” with the same Show and Hide options for filtering that bots have. Reposters are more targeted, with higher quality content than true bots and often have a human operator writing comments. However many people find this inauthentic so now they can be filtered out. More details

  • /c/microblogs can show posts from people you’re following OR all posts.

  • Recent hashtags shown on the home page sidebar.

  • Support for receiving posts with jpegxl images.

  • Communities can have a default hashtag for new posts - posters can edit or remove it if they want.

For admins:

  • Option to manually approve posts by new accounts, to cut down on spam while having open registrations (no approval on the new account). This will let people dip their toes in without waiting.

  • Easily contact other instance admins, see /admin/instances

  • Vote manipulation detection tools for simple sockpuppets and complex coordinated voting networks. See /admin/voting

  • Serial downvoter report showing who made lots of downvotes against a single person in a short time.

  • Other bot detection tools - e.g. easily spot unnatural runs of very quick post creation.

  • Display list of alts on user profiles to more easily investigate activity by alts.

  • Filter emoji with keywords rather than importing absolutely everything - this will speed up the emoji reaction dialog.

  • Identify instances likely to be used by spammers in future. See /admin/instances?filter=liability

  • Microblog posts with no replies can be automatically deleted - set the MICROBLOG_CONTENT_RETENTION environment variable to how many months you want to keep them for.


To upgrade from 1.7.x

git pull  
git checkout v1.8.x  

Then,

./deploy.sh or ./deploy-docker.sh


Donations

PieFed is free and open-source software while operating without any advertising, monetization, or reliance on venture capital. Your donations are vital in supporting the PieFed development effort, allowing us to expand and enhance PieFed with new features.

Donations can be made via Patreon, Liberapay or Ko-fi.

It started out pretty chill. Initially I found a few alts of RustyShackleford that upvotes every comment he makes

image

image

image

image

But what’s this, there are other names on there which appear over and over too. Buttholespiders and oberonswanson feature often… Let’s see who upvotes their comments, in completely different communities:

Let’s do Oberon first.

Here’s a comment in an Apple community:

image

and an ADHD community

image

and in a community about Opossums

image

Bit of a pattern forming here, isn’t there.

Buttholespiders doesn’t comment, only votes. Suspicious.

We can see TheGoldenGod and WYLD_STALLIONS voting in this group at the same times, too. Let’s look at votes on their comments:

In a star trek community:

image

anarchy comm:

image

asklemmy:

image

technology:

image

ok last one, let’s do wyld_stallions

196, meme community:

image

a comment in Fuck AI:

image

ask lemmy:

image


This looks a lot like a coordinated network of accounts which systematically upvote each other’s comments, within minutes of each other, regardless of the topic or content of the comment.

EDIT: Thanks for your thoughts everyone. Lots of support for simply banning or flagging as a bot, and I’m going to add functionality for flagging as a reposter, then letting people filter on it. Instance admins can apply whatever response they prefer.


Recently there have started to be a few accounts that seem to be used by a person for writing comments while also being used by scripts to automatically repost content from Reddit and possibly elsewhere. This doesn’t cleanly fit into our existing tools for classifying accounts and posts - a conventional bot might post RSS articles or other automated content, and users can choose to filter based on that bot setting. These new types of accounts are different from that because they’re partly human and partly automated.

This causes a few problems:

  • there are cases where the reposted content is written in the first person. Like for example, a Reddit post might say here’s a photo of my cat, but when that post is automatically reposted into the Threadiverse by a reposter script, it can appear to us that the PyFed account owner is claiming the cat as their own. Yet that’s obviously not the case, which gives an inauthentic feel to the environment.

  • sometimes some of the material being reposted is content that violates the rules and norms of Threadiverse. And so we see a lot of strange culture war stuff and racist content coming through sometimes.

  • a lot of people left reddit to get away from all the astroturfing and bots and LLMs running amok so letting that happen here too will just drive those people away.

Despite this, their content is often quite popular and many people upvote it and comment on it. Many people seem totally ok with it.

Before I change anything, it’d be really good to understand what the community wants to happen in response to this. I’m considering several possible approaches, including doing nothing, or introducing a new automated / reposted indicator for accounts (with a feed filter, separate from the bot indicator and filter), or continuing to apply the existing bot label onto those accounts, or restricting those kind of accounts completely. But I’m not going to propose a particular outcome yet. I’d like to hear what, if any, problems people are experiencing from these accounts and what information or controls would be useful.

Someone runs a network of accounts, none of them flagged as bot accounts. To make them more human-like he uses them to write comments but all their posts are automated, by scraping content off reddit:

Anyone who pushes back on his campaign is accused of working for reddit or being a “reddit agent”. Like in these comments https://piefed.social/u/[email protected] or here

image

He vibe coded a browser extension - https://addons.mozilla.org/en-US/firefox/addon/lemmy-deep-lighthouse/ - but probably doesn’t use it often because his bots run 24/7, doing posts:

image

He writes long rambling LLM-written justifications for it - https://lemmy.today/post/59276278

Frequently his bots claim to have authored some OC or spread whatever culture war bullshit is going on in reddit into the threadiverse. They also repost 4chan screenshots, which is what originally drew my attention.

Knights of New was a reddit meme/movement where people would take the hit of exposing themselves to the river of trash that is /r/all, sorted by ‘New’, and upvote good stuff while reporting or downvoting bad stuff, as a public service. Now you can do that on PieFed, too.

When sorting the home page by ‘New’ or ‘Top’, the list of posts automatically displays new content once per minute. Disabled when scrolling down. This makes voting on new content much easier and makes the threadiverse feel more dynamic and alive.

It seems like a small thing but I’ve been using it for a few hours and I’m surprised and how engaging it is and how it turns the threadiverse into a river of posts flowing by, like on Mastodon. Compared to the static and slow-moving feeling that the threadiverse often has, it is quite refreshing. Give it a try by going to https://piefed.social/home/new/all and NOT scrolling down. It’s ok to scroll down to look at things but return to the top to await fresh content. The title bar of your browser will show the time of the latest automatic update.

This works in Subscribed, Popular or All feeds - it’s not just for ‘All’. You can also switch to ‘top 1 hour’ instead of ‘new’ and leave it running on a secondary monitor, etc so you can dip into whatever’s popping off at the moment without being a true Knight.


This release also includes multiple small bugfixes:

  • rss feeds import - strip tracking codes on urls so cross-post detection works properly
  • exempt Googlebot from Anoobis
  • default to dark mode on Linux
  • tweak opacity of blocked posts to be a bit more visible
  • profiles of people who have posted a lot loads much faster now and doesn’t time out

This release saw contributions from some new people, which is great to see.

In this release you can now follow other people, not just join communities. When you follow someone their posts will show up in your ‘Subscribed’ feed, regardless of whether you have joined the community it was posted in or not.

You can also follow Mastodon+ accounts. Getting Mastodon integration working really well is going to be a long journey but this release gets us headed in that direction. Eventually I hope that this integration will provide a steady source of timely content to cross-post into threadiverse communities as well as being a peer citizen in the Mastodon-flavored parts of the fediverse.

New:

  • You can follow other users and their posts will always show up in your ‘Subscribed’ feed, regardless of the community they were posted into. Following Mastodon users works also but should be considered as very experimental. This will improve soon.

vaEEQEzRySsPTnR.png

In the future you will be able to upload a list of people that you exported from your mastodon profile and follow them in one go. And add people that your instance doesn’t already know about - but not yet. These features will be rolled out in future versions once the dust settles on this version.

  • Mastodon posts have a new design that is distinct from threadiverse posts - there is no post title and larger author profile pic.

  • Communities can be marked as being a favorite, which makes them more prominent in the ‘Communities’ menu.

HHHV9TTSGgWRQbg.png

  • Clicking anywhere in a post teaser takes you to the teaser - you don’t need to aim for the title

  • Dramatically improved page load times on Chrome-based browsers (Speculation Rules API).

  • Little spinner thing while a vote is being cast

  • Updated translations

  • Preview markdown when editing a wiki page

  • RSS feeds on the home page, including a feed of posts from your subscribed communities

  • Topic selection during onboarding looks way nicer now.

  • Accessibility improvements to headers.

For Developers:

  • Massive CSS reorganisation by travis-jeans. Lots more usage of CSS variables. Improves maintenance and accessibility.

  • API: Users can now log out

  • API: Follow and unfollow users

  • API: video file upload works now

For Instance Admins:

  • Communities where every moderator is a bot or inactive are flagged as un-moderated. Reports about posts in un-moderated local communities go to admins.

  • Warnings on domains can be 3 types instead of only a warning - the other two are ‘helpful context’ and ‘recommendation’

6ms4yFRd0An2PZd.png :: align-center

  • Send a DM to a user asking them if they are a bot, with 1 click. If they do not respond their account is automatically flagged as a bot

  • Email bounce inbox can now be accessed through POP3, not just IMAP

  • Tokens used by mobile apps can be set to expire, using the JWT_EXPIRY_DAYS environment variable

  • More accurate tracking of when a user was last active. This will significantly increase your MAU stats.

  • Strict allowlist mode to reduce attack surface exposed by federation

  • /admin/federation form split up into 3 separate pages rather than one long confusing page.

  • Option to disable DM sending for individual users if they lack the self-control to use it responsibly.

  • compose.yaml has changed a bit: For most containers the build target is now "runtime’ instead of ‘builder’.

For example

  celery:  
    build:  
      context: .  
      target: runtime  
  • Topics can be associated with countries, for more targeted onboarding suggestions based on the viewer’s location.

  • To reduce server load and network traffic, a maximum number of votes that can be cast each day has been set at a level that will only affect the top 2% of voters, leaving the bottom 98% unaffected. This quota can be altered with an environment variable. View a profile to see how much of their daily quota has been used.

To upgrade from 1.6.x

git pull  
git checkout v1.7.x  

At this point you might see an error message about a merge conflict with compose.yaml. To preserve your custom compose.yaml you will need to copy it somewhere else, then git checkout compose.yaml then git pull again (or use git’s stash feature). This time the pull will succeed so after that copy your custom compose.yaml it back, overwriting the one from git.

Then,

./deploy.sh or ./deploy-docker.sh

If you had to do the compose.yaml fix up earlier then you might want to compare what you have with https://codeberg.org/rimu/pyfedi/src/branch/main/compose.yaml and manually copy and paste some improvements in particular the target: part of the db container.

Donations

PieFed is free and open-source software while operating without any advertising, monetization, or reliance on venture capital. Your donations are vital in supporting the PieFed development effort, allowing us to expand and enhance PieFed with new features.

Donations can be made via Patreon, Liberapay or Ko-fi.

Only 1% of domestic wells mapped were in areas predicted to have nitrate concentrations below 1mg/L and almost half (49%) were in areas predicted to have concentrations within a range of 3.5 to 8.5mg/L, with a further 5% predicted to exceed 8.5mg/L, with some of these above 11.3mg/L.

The maximum allowable nitrate in drinking water is 11.3mg/L, but the National College of Midwives has warned pregnant women about levels exceeding 5mg/L risking preterm birth and low birthweights and public health academics have said levels below this may be a concern, including as a cause of colorectal cancer.

Ms Prickett said any level above 3.5mg/L was indicative of “serious degradation of environmental health let alone public health”.