Due to recent situations, I was somewhat inspired to get back into working on IRC robots. Thought I'd post about my little venture for the sake of legitimately boosting my post count
LMIB :: the Lovely Maiden IRC (ro)BotLMIB is written in procedural PHP4 (will upgrade to php5 some day but I'm lazy) and will serve as my own version of Netbot in my channel(s). Whenever I finish it, the core will be available for download.
LMIB is designed to be a fully modular IRC bot capable of performing various kinds of channel administrative and entertainment-based tasks. Only a minority of its abilities will be hard-coded into its core with the majority being external module files. That way, LMIB can be easily customized for any situation, even on the fly.
Some features I'm working on or planning to work on:
- Basic administrative functionality (op/deop, voice/mute, ban/unban, channel modes) [obviously
]
- User registration
- like with netbot and any other irc bot worth its weight, users can register themselves with the bot for services like auto-op, auto-voice, greets, etc
- Channel rules
- An interesting concept wherein the bot can routinely enforce a given rule. Do your channel ops tend to all AFK at the same time for large periods of time? Do you still want the channel somewhat managed while you're all gone? LMIB can automatically enforce special rules for given periods of times. What sort of rules? All sorts
LMIB could +i the channel and auto-invite known users while you're gone, all automatically, and stop upon your return. You wouldn't even have to do anything, just set the "start" and "end" time for the rule and LMIB automatically enforces or relaxes the rules as necessary.
- Responsibility splitting and covering
- An idea I had for if you use multiple LMIBs. You can split certain management tasks among different bots and if one bot dies or goes unresponsive/AWOL, the other bots can take over that bot's responsibility until it returns.
That's about all I've thought up for now in terms of bot functionality. I also had this idea:
MaidenServEssentially, it's an external repository of modules. Whenever an LMIB starts up, it acquires all (specified) modules from the repository and updates its own modules directory with them. If you add a module to the bot manually, the LMIB will copy its module to the repository for others to use.
blargh, it's 7:38 AM, I'm hungry, and I lack sleep so if this is all weird and blughargh, I'll fix it up in a bit. Anywho, thoughts? If you want to see the barebones version in action, I have an instance running in EFNet #unss and #omnimaga under the name "Mizuno".