Omnimaga

General Discussion => Technology and Development => Computer Projects and Ideas => Topic started by: TsukasaZX on March 18, 2011, 09:39:53 am

Title: [IRC] LMIB
Post by: TsukasaZX on March 18, 2011, 09:39:53 am
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 :P

LMIB :: the Lovely Maiden IRC (ro)Bot

LMIB 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 :P]

- 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 :P 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:

MaidenServ
Essentially, 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".
Title: Re: [IRC] LMIB
Post by: aeTIos on March 18, 2011, 09:41:47 am
Sounds nice, could maybe function as a 'police bot' or so
Title: Re: [IRC] LMIB
Post by: SirCmpwn on March 18, 2011, 09:47:51 am
She can stay in #omnimaga if she's quiet, but remember, we don't allow talking bots.
Title: Re: [IRC] LMIB
Post by: ruler501 on March 18, 2011, 09:48:22 am
This looks nice. I agree with aeTIos this would probably work quite well as a police bot.
Title: Re: [IRC] LMIB
Post by: TsukasaZX on March 18, 2011, 10:01:06 am
Sounds nice, could maybe function as a 'police bot' or so
Generally the idea. Both Mizuno and the LMIB core are based off the Maidens from Star Driver who essentially were police in spirit and seals to keep cybody robots from operating in real space and accidentally the whole thing :P

She can stay in #omnimaga if she's quiet, but remember, we don't allow talking bots.
I don't think Mizuno in particular will be a problem then, since she has no functionality that causes her to talk in channel (or talk at all, really).
Title: Re: [IRC] LMIB
Post by: SirCmpwn on March 18, 2011, 10:09:15 am
What are her current commands?
Title: Re: [IRC] LMIB
Post by: TsukasaZX on March 18, 2011, 05:26:28 pm
At the moment:

The only existing flag for ban and unban is 'h' which specifies hostmask only
e.g. for nick!user@hostmask, doing :ban nick results in mode: +b *!user@hostmask and doing :ban nick h results in mode: +b *!*@hostmask
Same thing for :unban, just mode -b instead of mode +b. Works for any nick, whether they're in the channel or not. Does nothing if the user specified doesn't exist.

Not really sure why I did that. Not really sure what other flags I'll include.
Title: Re: [IRC] LMIB
Post by: Eeems on March 18, 2011, 06:09:12 pm
Maybe a timelimit on bans?
Title: Re: [IRC] LMIB
Post by: TsukasaZX on March 18, 2011, 06:12:18 pm
I could do that.

I also need to finish the :votemute commands for the #omnimaga channel. If anybody still wants to use it :P
Title: Re: [IRC] LMIB
Post by: DJ Omnimaga on March 30, 2011, 02:20:56 am
Temp bans would be nice. Often I found myself forgetting to remove bans that were meant to be temporary, especially short bans. This is actually the reason why I decided to have short bans expire at 2 AM everytime.
Title: Re: [IRC] LMIB
Post by: Eeems on March 30, 2011, 01:47:49 pm
:votemute would be great :)