I'm happy to announce that my barebones ActivityPub server, implemented in Node.js/Express, is now open source! I intend for it to be a reference implementation for developers who are adding ActivityPub to their own services, but also it is an application server that you can build on if you want.
In other words, t's a few hundred lines of code that lets you create Mastodon-compatible accounts that can accept follow requests and post stuff to their followers.
I actually built a little toy service (that I will also eventually open source) which converts any RSS feed to an ActivityPub actor that you can subscribe to in Mastodon (or any other AP-compatible client).
Play with it if you like! It is SUPER rough and most feeds end up horribly rendered in Mastodon but it's still kinda cool to see it work: https://bots.tinysubversions.com/convert/
@darius this is exactly the service I intended to start building in a few weeks. Please alert me when you share the source! I have a project in mind that this would be a huge leg up for.
@darius I just tested this on my local machine and it works great. I still need to understand the basics of ActivityPub and what I could do with this. But what sprung to mind: If it is that easy to create accounts and automate stuff with it, isn't this just another spam-flood waiting to happen?
@frank Yup. I think that's inevitable in any decentralized open system like email. I imagine what's going to have to happen is some kind of group anti spam solution (formal shared server blocks specifically for spam behavior that admins can subscribe to).
@Algot Did you follow the account? Its updates will only appear in your notifications feed because there is no persistence for a "profile" page with a list of posts (yet)
@Algot No, it shouldn't. It just does a diff every time it polls the feed and then posts any new items.
@Algot when you follow an account you send it a "Follow" message, and then that account adds your account to a local database. Then when it makes a post you're in the list of accounts to notify.
Just did a site update to the RSS file with a timestamp of
Sat Sep 15 2018 16:20:00 GMT
now I wait.
Nothing has shown up here yet.
Should I see a notification with a message including my .art account name?
Or will the bot's toot only appear in my home timeline...where it might go by sometimes without being seen.
As I sit thinking about it, I'll probably not use this tool as-is (or ask others to follow the account) if the bot doesn't send a notification.
That's not actually a complaint. I understand the idea it is just doing a standard toot and that that is what most bots should do.
But as a way to be sure I know about updates to a very intermittent RSS feed like mine, someone would too often miss that a new post had occurred.
@Algot It only appears in your timeline, not as a notification. If you want to prioritize it you could always make a list for RSS feeds. But it's essentially like following the feed for any website or company or person -- most updates do not get addressed directly to you.
I remain very impressed with the concept of making RSS accessible using ActivityPub.
I am a fan of the RSS feed concept, and your work clearly shows that it can have legs in the fediverse, too.
@Algot Thanks! What I actually hope happens is that clients begin to support things like "notify me in my notifications column every time this account posts even if it's not directed at me". My hope is that by providing these kinds of tools, client implementors will be incentivized to support them.
Have you reached out to the main Mastodon/Pleroma/PixelFed/etc.
I would expect that they would be interested in your ideas.
I'll be interested to see how this whole federation thing continues to develop.
Accessory projects like your bot have real potential to enrich the system.
I do follow a lot of people, probably more than I should, but I like to be able to catch onto new ideas like yours as random people I follow boost posts like yours.
I see the profile page but have had no notifications.
I did follow the account and can see the account (with a nice avatar image built from my RSS header graphic - COOL!)
@darius nice, that’s exactly the use case I want this for. I’m also tempted to port this to Python/Flask for better integration into Publ.
@fluffy I haven't tested it but it seems like it works! I am relying on a very very small subset of RSS that is probably in every atom feed
@darius the Atom DTD is completely different than the RSS DTD though. Atom is a strict functionality superset at least. Are you using an existing feed parsing library? Most of those do a good job of working with both.
@darius I need to finish my Bridgy Fed set up but I was able to turn my blog into a Fediverse instance at firstname.lastname@example.org
@darius it didn't work. :( It only took me to /u/test instead of the user page for the bot I tried making, and when I manually changed the URL, it said no bot was found.
@darius also it appears to have changed the test profile to the RSS feed I chose, or we both had the same weird idea for what feed to try... (your Mastodon profile's own RSS feed...)
@darius Question about licensing: the readme says MIT at the end, but there's no normal slightly tweaked MIT LICENSE file, and the package.json says ISC. What's it under?
@darius Nice! This is absolutely the sort of thing I was talking about that post from a couple of nights ago, this rules because I stop working on mine and just use this
@darius I thank you
I am going to make use of this
Or maybe not, the project back burner is rather large
Thanks for this! This will help me get started with my JVM implementation. So far I've just been going off of the spec and the tutorial post by @Gargron
Hometown is adapted from Mastodon, a decentralized social network with no ads, no corporate surveillance, and ethical design.