Over the last month or so, I've been working on two projects related to insobot, though the bot itself has not seen any significant changes.
It's no secret that the Handmade Network team is planning a chat system reunification after the great IRC/Discord split, and this comes in the form of a third system, Matrix, that can hopefully accommodate everyone. Instead of quoting xkcd 927, I took the opportunity to start the first of the two projects, Morpheus.
Morpheus was designed initially as a way for insobot to continue operations if/when the Matrix switch-over happens. It works as a kind of bridge, translating between the two protocols, allowing clients or bots that only speak IRC to connect, send and receive messages to/from Matrix servers.
It is still in the early stages, and has some known bugs and limitations that need addressing, but I think it has a pretty good foundation designed with expansion in mind. In particular it accepts multiple client connections, so in the future could maybe be used as a proper bridge for IRC loving HMN users.
The second project is related to quotes, like this blog's title, and specifically improving the mod_quotes experience of insobot.
Up until now, the quotes added to insobot via !q+ were stored solely in a gist, and viewing the list in this format wasn't great. The original hmh_bot had a nice website for displaying the handmade hero quotes, which was sadly obsoleted when hmd_bot took over quote duty.
Now, though, insobot has taken the reins from hmd_bot for Handmade Hero quotes as well as the other channels it was previously responsible for. With all quotes centralized, I felt it would be nice to resurrect a nice website for them, and so I've set up just that over at https://dev.abaines.me.uk/quotes
It can show each channel's list, as well as individual pages to link specific quotes. As well as in HTML, they're available as .json, .csv, or a simplified .csv ".raw" via the top-right links.
The website is written in C as a CGI program running on a VPS. Some people might call that old-school or unwise, but I think it fits the spirit of Handmade more than if I had just written it in node.js or ruby or something... I'm reasonably confident I didn't made any egregious security mistakes, but if you spot something let me know before you pwn my VPS :P
Eventually, I plan on adding PUT/PATCH/DELETE etc. support so that insobot doesn't have to work with gist at all any more. This will be a blessing, since gist's API sends way more data than necessary, is getting slower, and I'm pretty sure GitHub want to kill off the programmatic gist creation/editing altogether since it's not present in their v4 GraphQL API.
Finally, I will end by saying that you can now donate to support or show appreciation for insobot with this link. Funds will go towards keeping the new VPS running, and maybe expanding the bot's functionality.
Thanks for reading.
-- Alex