I’m working on an “activitypub” implementation for my program that manages and generates threaded notes / blog posts - Valenoern/bopwiki: experimental 'microwiki implementation' / 'mini CMS' - bopwiki - Codeberg.org
(It might actually be just ActivityStreams, I’m not entirely sure?)
The thing about this program is I wanted it to be a desktop application where you edit all your blog-like data and then put that up statically instead of having any kind of server daemon that processes requests. So I started out with the plan that for activitypub it would be something of a read-only feed where you could register on a more ‘heavyweight’ fediverse platform like mastodon to boost your posts there and take any replies / adding any ‘LRT’ type stuff.
I started coding this and I managed to output static Activity files that came up as posts on mastodon.
But then I ran into a problem.
Sometimes as I’m messing with activitypub, I add or change what fields are added to my Activities, which can lead to “toots” that look entirely different. But mastodon is not very forgiving about mistakes in Activities; it seems to cache the post indefinitely even if I try to delete it by adding a Delete activity to the outbox or replacing the post’s content with a Tombstone and looking these up.
I confirmed what was going on when I pulled up the post on another instance - that instance had the new version of the post, but when I boosted it the first instance saw it as the old incorrect version.
So… I expect this is going to be a bit of a problem for the future.
mastodon and my program have a different set of core assumptions - for mastodon, each post ID always contains the same content and you make new post IDs to edit that content, while with my program the post IDs are meant to mostly stay constant while the content of the post can change. When you look up the html rendering of the page you may find it was edited a bit, more external links or media were attached, replies were moved around places, etc; as implied in its longhand name, bopwiki is meant to be vaguely like a personal mastodon thread you can edit. (and this is why allowing replies directly on it as if it were literally a mastodon thread is a conceptually bad idea even if it were possible.)
That said, the way I usually create posts I often add an excerpt - which I write once and after about maybe its first week of existence am unlikely to edit again - and if there, this becomes the body of the post Activity. So for individual isolated posts I feel like caching is not a huge problem if I could just manually nudge a cached version of a post to update somehow.
(The possible chaos from having to update which posts are connected to which might be a problem for another day.)
Is there any good way to tell a particular fediverse server (especially mastodon ones) that my server with its static-file-based account updated or deleted-and-recreated one of its posts but that the “correct” post still has the same uri? How long do I have to wait for it to update?
I’m perfectly okay with having to use some kind of simple client to send a POST request; the main thing I’m trying to avoid is programs that run all the time.
[edit: I’m not totally sure if Activity is the word I meant or just ActivityStreams Object. I just mean an activity+json object that’s an actor or post]