"""Manage ircbot models and admin actions in the admin interface.""" from __future__ import unicode_literals import logging import xmlrpclib from django.conf import settings from django.contrib import admin from django.shortcuts import render from ircbot.forms import PrivmsgForm from ircbot.models import Alias, BotUser, IrcChannel, IrcPlugin log = logging.getLogger('ircbot.admin') admin.site.register(Alias) admin.site.register(BotUser) admin.site.register(IrcChannel) admin.site.register(IrcPlugin) def send_privmsg(request): """Send a privmsg over XML-RPC to the IRC bot.""" if request.method == 'POST': form = PrivmsgForm(request.POST) if form.is_valid(): target = form.cleaned_data['target'] message = form.cleaned_data['message'] bot_url = 'http://{0:s}:{1:d}/'.format(settings.IRCBOT_XMLRPC_HOST, settings.IRCBOT_XMLRPC_PORT) bot = xmlrpclib.ServerProxy(bot_url) bot.privmsg(target, message) form = PrivmsgForm() else: form = PrivmsgForm() return render(request, 'privmsg.html', {'form': form}) admin.site.register_view('ircbot/privmsg/', "Ircbot - privmsg", view=send_privmsg, urlname='ircbot_privmsg')