allows stuff like ^!die$ -> !quit no recursion (yet? or maybe i'll never bother), but this should allow the basic aliases
71 lines
1.6 KiB
Python
71 lines
1.6 KiB
Python
"""Track basic IRC settings and similar."""
|
|
|
|
import logging
|
|
import re
|
|
|
|
from django.db import models
|
|
|
|
|
|
log = logging.getLogger('ircbot.models')
|
|
|
|
|
|
class Alias(models.Model):
|
|
|
|
"""Allow for aliasing of arbitrary regexes to normal supported commands."""
|
|
|
|
pattern = models.CharField(max_length=200, unique=True)
|
|
replacement = models.CharField(max_length=200)
|
|
|
|
class Meta:
|
|
verbose_name_plural = "aliases"
|
|
|
|
def __unicode__(self):
|
|
"""String representation."""
|
|
|
|
return u"{0:s} -> {1:s}".format(self.pattern, self.replacement)
|
|
|
|
def replace(self, what):
|
|
command = None
|
|
if re.search(self.pattern, what, flags=re.IGNORECASE):
|
|
command = re.sub(self.pattern, self.replacement, what, flags=re.IGNORECASE)
|
|
|
|
return command
|
|
|
|
|
|
class BotAdmin(models.Model):
|
|
|
|
"""Configure admins, which can do things through the bot that others can't."""
|
|
|
|
nickmask = models.CharField(max_length=200, unique=True)
|
|
|
|
def __unicode__(self):
|
|
"""String representation."""
|
|
|
|
return u"{0:s}".format(self.nickmask)
|
|
|
|
|
|
class IrcChannel(models.Model):
|
|
|
|
"""Track channel settings."""
|
|
|
|
name = models.CharField(max_length=200, unique=True)
|
|
autojoin = models.BooleanField(default=False)
|
|
|
|
def __unicode__(self):
|
|
"""String representation."""
|
|
|
|
return u"{0:s}".format(self.name)
|
|
|
|
|
|
class IrcPlugin(models.Model):
|
|
|
|
"""Represent an IRC plugin and its loading settings."""
|
|
|
|
path = models.CharField(max_length=200, unique=True)
|
|
autoload = models.BooleanField(default=False)
|
|
|
|
def __unicode__(self):
|
|
"""String representation."""
|
|
|
|
return u"{0:s}".format(self.path)
|