Projects Jams Discord News
Resources
Unwind Fishbowls Forums
About
Manifesto Our values About
Log In

insobot internals: Anatomy of a Module

Alex Baines September 23, 2017

With the introduction of project lifecycles here on Handmade Network, I've set insobot to "complete", since I believe it has reached quite a stable state. Although "complete" implies an end, I definitely don't want to abandon insobot or this project page; I'll keep posting updates here if any new significant developments happen.

I also thought it could be nice to start a new series of blog posts talking about the technical details of the project, for when I'm in the mood to write but haven't made any changes. Maybe they could even prove useful to the handmade community, no promises...

So, without further ado, here is the first of those blogs detailing the

Anatomy of an insobot module

I've mentioned in various places that insobot is "modular". To demystify what I mean by this buzzword I'll explain how insobot is structured, what constitutes a module, and even how you can make your own modules for insobot to run.

Read more

insobot update #4 — Hello, insobot. Do you know who this is?

Alex Baines August 5, 2017

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

Read more

insobot update #3 — Tying things together

Alex Baines July 4, 2017

Last update I left off mentioning my intentions for improving the help system, and early last month that was implemented in the form of every command gaining a usage / description accessible via \help.

I also wrote a few user guides, the first of which explains the basics necessary for using the bot in your own channel as well as the help system. The second explains the alias and PSA systems that are probably two of the more useful features available. At some point I'll probably write a few more guides for some of the remaining modules, I'm thinking the twitch stuff at least.

I haven't come up with many new ideas for modules that are desperately needed, so nothing particularly exciting has been added since last time, but I did add a few convenience modules in the form of mod_units and mod_calc.

[ur

Read more

insobot update #2 — A brave new protocol

Alex Baines May 3, 2017

Not a huge amount has changed since the last update, the main thing is probably that insobot now has a twitter account.

As I mentioned back then, I wanted to add some more parsing logic to the schedule-website-updating-via-twitter thing. While doing that I thought it would be nice if the bot acknowledged when it had found a schedule with a reply tweet, so that's now what it does. I'm using @ChronalDragon's ~twc for this, which made things a lot easier than if I were handling twitter's Oauth signature nightmare myself.

The parsing improvements mean it can now pick up cancellations and reschedules, although it still relies on the bulk hmh style format for adding th

Read more

insobot update #1 — The Owl and the Polls went to IRC

Alex Baines April 3, 2017

This is a quick-ish blog with a rundown of recent changes, and upcoming plans.

Last month, shortly after insobot joined HMN, Miblo made a request for poll functionality and mod_poll was created. It was quite rote, and so did not take long to get an initial version up and running.

The current version is mostly the same, but now saves polls locally across module reloads and has a private message confirmation for !vote. Hopefully it's useful; I was considering a web interface to it, but I think Strawpoll already handles that better than I could. They do have an API that I could use, but syncing up votes via them with votes via IRC wouldn't be possible — I'll probably just keep mod_poll as-is unless someone thinks of a cool idea for it.

The next addition wasn't to insobot itself, but to the handmade hero chat — that is the addition of quartertron's Owlbot. It lights up w

Read more

insobot: it's official

Alex Baines March 2, 2017

If you've been in the handmade network IRC, or a Twitch channel of someone related to the network, then you may have had the pleasure (or indeed, misfortune) of coming into contact with an IRC bot known as insobot.

I started this project in October of 2015 after having watched Handmade Hero and interacting with the community surrounding that series. Initially, it was just a simple markov chain bot and nothing else - inspired totally by ChronalDragon's chronal_robot that was once present in his own Twitch channel.

Since then, insobot has been rewritten in C99 and rearchitected around shared library 'modules', that all adhere to a common API and can be reloaded without the bot needing to be restarted.

I've added several modules to do things like URL unfurling, storing quotes for twitch channels, and , in memory

Read more