Last night even though I was probably too tired, I embarked on an effort to refactor the code for this thing so that I have a clean ActivityPub class. I got about 80% of the way there, and deleted a few hundred lines of code.
The best changes remove code.
@bageler@sfba.social this looks remarkably similar to my code
OK I think I have mostly cracked DMs. Partially due to the fact that I can write a chat room interface in my sleep.
OK I'm about 1/4 of the way through building DM support now. Incoming DMs are captured and written to a separate inbox rather than the main stream. I am also indexing the status of each inbox, so that I can easily tell when there are unread messages.
Still have to build the actual inbox interface and handle outgoing DMs. Doable.
@darius@friend.camp I was just investigating that. Yes, I haven't tackled DMs yet or mentions yet, but it is on my short list.
Currently it always sets the TO field to the public stream. That will need to change.
@darius@friend.camp thanks! yes, i am grinding my way through all the various features. let me know if you want to kick the tires. i am reaching a point where i really want to refactor the code structure into a cleaner activitypub library.
Noticed some weird failures when trying to load boosted posts. Turns out this was because I was not properly signing the requests. Mastodon does not seem to care, but GoToSocial does.
Lots of work to do to make this app a responsible ActivityPub consumer.
Still great.
Now, time to watch Bill and Ted's Excellent Adventure.
And the default icon is now a goat!