aka freamon

Codeberg: https://codeberg.org/freamon?tab=activity

Anything from https://lemmon.website/ is me too.

  • 19 Posts
  • 624 Comments
Joined 1 year ago
cake
Cake day: March 27th, 2024

help-circle
  • Andrew@piefed.socialtoPieFed help@piefed.socialAttitude?
    link
    fedilink
    English
    arrow-up
    2
    ·
    19 days ago

    Yeah, I think it’s something only admins can see on their users’ profile, not something people can see on their own profile.

    You’ll know if it’s low though, 'cos red triangles will appear by your username in comments (I made an unpopular comment recently, and - for some instances - that’s the only comment they’ve got by me, so I’ve got the triangles there).




  • I asked in that issue whether Lemmy finds community via to/cc (it does). Does PieFed do the same?

    Yes - PieFed does the same. It looks in ‘audience’, then ‘cc’, then ‘to’. It has to, to support all the platforms that haven’t adopted 'audience. It’s a convenient field, but PieFed won’t be affected if Lemmy goes through with removing it.

    Would this also open up the possibility of a topic/context being part of multiple audiences/communities?

    Not at present. If you do something like cc: [community1, community2] it will only go to community1 (on both Lemmy and PieFed). There’s so many activities that are effectively duplicates, both in normal operation and when platforms are bugged (both Lemmy and Mastodon have gone through phases of sending the same activity multiple times), that you need a way to make sure you’re only processing one. On PieFed, this is done by having a UNIQUE constraint of the ‘ap_id’ column of the Post table (the ap_id of your post is https://community.nodebb.org/post/103806), so it means you can’t have the same post in more than one community.




  • For inbound federation, you will be missing a lot of objects. You probably joined !fediverse@lemmy.world and got the recent posts, but the posts don’t come with comments. So you might have got a ‘Like’ for https://lemmings.world/comment/13734343 or https://lemmy.nz/comment/13745305 but they’ll be nothing in your DB for them.
    By default, PieFed doesn’t fetch objects that it’s missing, like Lemmy does. It’s an Issue that’s come up, but Rimu was a bit dismissive, because for something like piefed.social, the main reason why something would be missing is because the author was banned, or it was in reply to an author that was banned, so it would be a lot of wasted effort. There’s an arguably a conflict that will often occur when the sole person in charge of the software is also the admin of an already-established instance.
    I started my server a day or so before you, and added functions to recursively fetch missing objects, and the relevant post has both of your missing objects. I can share those functions with you if you like, although you’re very likely to be able to code something better yourself.

    For outbound federation, PieFed to PieFed is instant, but for PieFed-to-Lemmy, you have to get into a queue.



  • Neat. I saw your name in the ‘Users’ list (Search -> Explore Instance -> Users).

    The API needs a DB upgrade, and so right now I’m in a queue behind ‘Feeds’, which is a feature that will add some new tables. I don’t yet know what kind of upgrade it needs to be, i.e. how much things can be fudged vs. implemented properly.




  • Yeah, the API is very similar in lots of ways. Some fields have different names (e.g. post.title instead of post.name), the ‘site’ response is a lot smaller, and there’s things like ‘activity_alert’ for subscribing to other people’s posts/comments and unsubscribing to your own (aka turning off inbox replies). Some routes aren’t covered, either because the app didn’t call them, or because there’s no back-end support (e.g. viewing Modlogs), or because I de-prioritized them for now (e.g. viewing Reports).

    I’ve started doing an OpenAPI spec thing, which I’m finding tedious to create, but it should make everything clearer when it’s published.






  • The only way I can think of is to use the API to get all communities, and then filter out the ones without local subs. So a basic BASH script would be:

    #!/bin/bash  
    
    echo -n '' > /tmp/allcomms.txt  
    
    page=1  
    while true  
    do  
      communities=$(curl --request GET --url "https://walledgarden.xyz/api/v3/community/list?type_=All&page=%24%7Bpage%7D&limit=50" --header 'accept: application/json' | jq .communities[])  
      if [ "${communities}" == "" ]  
      then  
        break  
      fi  
      jq -r '[.community.id, .counts.subscribers_local] | @sh' <<<$communities >> /tmp/allcomms.txt  
      page=$(( page + 1 ))  
      sleep .5  
    done  
    
    while read id count  
    do  
      if [ $count -eq 0 ]  
      then  
        echo "$id has no local subs"  
      fi  
    done < /tmp/allcomms.txt  
    

    (It’ll take a few minutes to run)

    After that, how you purge the communities with those IDs I’m less sure of. My guess would be:

    Get a login tokin:
    JWT=$(curl --request POST --url https://walledgarden.xyz/api/v3/user/login --header 'accept: application/json' --header 'content-type: application/json' --data '{"username_or_email": "YOUR_USERNAME","password": "YOUR_PASSWORD"}' | jq -r .jwt)

    Use Admin/Purge from the API:

    curl --request POST --url https://walledgarden.xyz/api/v3/admin/purge/community --header "authorization: Bearer $JWT" --header 'content-type: application/json' --data "{"community_id": ${id}, "reason": "no local subs"}"  
    

    As long as purge lets the community be recreated again (which it should do), then that should be okay.

    Don’t take my word for any of this for an in-production Lemmy server, though. Test first!



  • Whatever the views are about MBFC, Tesseract integrated it better than LW’s bot. If you don’t like MBFC, it’s just an option in your user settings to turn it off for Tesseract, whereas the bot caused a bunch of problems that weren’t even related to concerns about accuracy and bias. Drive-by bots can be annoying, because it leads people to believe there’s legit content where there isn’t, and not every client respected LW’s bot use of spoiler Markdown, so they ended up with a massive comment from it that dominated the screen.