nanos / FediFetcher

FediFetcher is a tool for Mastodon that automatically fetches missing replies and posts from other fediverse instances, and adds them to your own Mastodon instance.
https://blog.thms.uk/fedifetcher?utm_source=github
MIT License
296 stars 215 forks source link

Check out any other software that might be worth supporting #143

Open nanos opened 6 days ago

nanos commented 6 days ago

See here for list of software: https://fedidb.org/software

nanos commented 5 days ago

The following are the ones that I encounter the most frequently on my own instance's home timeline:

GoToSocial:

Friendica

WordPress

colinstu12 commented 5 days ago

I found a friendica post that seems to properly fetch when I search for it in masto web (doesn't work in Ivory however): https://friendica.myportal.social/display/e65e1095-2066-778e-a9b1-719897452963 Not sure why friendica is so hard to explore / seems so locked down, not sure if that's just an instance configuration thing or what.

nanos commented 5 days ago

Thanks @colinstu12

I did try this. According to the docs, the API to get context should be the same as Mastodon: GET /api/v1/statuses/:id/context. However, when I try to get https://friendica.myportal.social/api/v1/statuses/e65e1095-2066-778e-a9b1-719897452963/context I only get back a 404. So I'm not sure if I need to convert that UUID into a different ID, or if the docs are wring, or if the endpoint requires auth, and the 404 is just a masked 403.

All very confusing 🤔

nanos commented 5 days ago

OK, so I'm a little bit closer here: Looking at the source code I find a reference to a numeric ID for this post, and if I use that it works:

https://friendica.myportal.social/api/v1/statuses/45055616/context

But how can I convert the GUID to a numeric ID?

edent commented 5 days ago

For WordPress, are you looking at ActivityPub powered ones, or just regular blogs?

nanos commented 5 days ago

@edent Yes, ActivityPub ones. Here is a node info example response:

{
  "version": "2.0",
  "software": {
    "name": "wordpress",
    "version": "6.5"
  },
  "usage": {
    "users": {
      "total": 1,
      "activeMonth": 1,
      "activeHalfyear": 1
    },
    "localPosts": 340,
    "localComments": 11
  },
  "openRegistrations": true,
  "services": {
    "inbound": [
      "atom1.0",
      "rss2.0",
      "pop3"
    ],
    "outbound": [
      "atom1.0",
      "rss2.0",
      "wordpress",
      "smtp"
    ]
  },
  "protocols": [
    "activitypub"
  ],
  "metadata": {
    "generator": {
      "name": "NodeInfo WordPress-Plugin",
      "version": "2.3.1",
      "repository": "https://github.com/pfefferle/wordpress-nodeinfo/"
    },
    "nodeName": "Symfony Station / The Payload Newsletter",
    "nodeDescription": "The Symfony Station Fediverse Account and Newsletter",
    "nodeIcon": "https://newsletter.mobileatom.net/wp-content/uploads/2023/12/cropped-Symfony-Station-No-Text-Astronaught-2C.png"
  }
}
edent commented 4 days ago

Sorry if I've misunderstood this, but I think this is the way to do it.

If you look at my blog's WebFinger - https://shkspr.mobi/blog/.well-known/webfinger?resource=acct:blog@shkspr.mobi - that points to https://shkspr.mobi/blog/@blog

If you request that with Accept: application/activity+json, you'll get back a standard AP document which says the outbox is https://shkspr.mobi/blog/wp-json/activitypub/1.0/actors/0/outbox

That's paginated, so should let you backfill all the contents.

nanos commented 4 days ago

Thanks @edent very helpful.

And would you know how I can fetch replies/context using ActivityPub? I think I looked into that a while ago, but didn’t get very far as it seemed extremely complicated (and iirc mastodon doesn’t even implement it, or something like that, which is why we now got the mess of implementing various APIs, rather than ‘just’ ActivityPub)