|
|
|
"""Start the IRC bot via Django management command."""
|
|
|
|
import logging
|
|
|
|
import signal
|
|
|
|
|
|
|
|
from django.core.management import BaseCommand
|
|
|
|
|
|
|
|
from ircbot.bot import IRCBot
|
|
|
|
|
|
|
|
log = logging.getLogger('ircbot')
|
|
|
|
|
|
|
|
|
|
|
|
class Command(BaseCommand):
|
|
|
|
"""Provide the command to start the IRC bot.
|
|
|
|
|
|
|
|
This will run until the bot disconnects and shuts down.
|
|
|
|
"""
|
|
|
|
|
|
|
|
help = "Start the IRC bot"
|
|
|
|
|
|
|
|
def add_arguments(self, parser):
|
|
|
|
"""Add arguments to the bot startup."""
|
|
|
|
parser.add_argument('server_name')
|
|
|
|
|
|
|
|
def handle(self, *args, **options):
|
|
|
|
"""Start the IRC bot and spin forever."""
|
|
|
|
self.stdout.write(self.style.NOTICE(f"Starting up {options['server_name']} bot"))
|
|
|
|
irc = IRCBot(options['server_name'])
|
|
|
|
signal.signal(signal.SIGINT, irc.sigint_handler)
|
|
|
|
irc.start()
|