2017-05-15 22:26:10 +00:00
|
|
|
# -*- coding: utf-8 -*-
|
2017-07-04 13:22:20 +00:00
|
|
|
import logging
|
|
|
|
|
2017-05-16 10:06:29 +00:00
|
|
|
import irc3
|
2017-07-31 14:10:24 +00:00
|
|
|
# noinspection PyPackageRequirements
|
2017-07-04 13:22:20 +00:00
|
|
|
from docopt import Dict as DocOptDict
|
2017-05-15 22:26:10 +00:00
|
|
|
from irc3.plugins.command import command
|
2017-05-16 10:06:29 +00:00
|
|
|
from irc3.utils import IrcString
|
2017-05-15 22:26:10 +00:00
|
|
|
|
2017-07-04 13:22:20 +00:00
|
|
|
from . import MODULE, Plugin
|
|
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
2017-05-15 22:26:10 +00:00
|
|
|
|
|
|
|
|
|
|
|
@command(permission='admin', show_in_help_list=False)
|
2017-06-29 20:56:32 +00:00
|
|
|
def reload(bot: irc3.IrcBot, mask: IrcString, target: IrcString,
|
2017-07-04 13:22:20 +00:00
|
|
|
args: DocOptDict):
|
2017-06-30 11:16:39 +00:00
|
|
|
"""Reloads a plugin or the whole bot.
|
2017-05-16 12:42:21 +00:00
|
|
|
|
|
|
|
%%reload [<plugin>]
|
2017-05-15 22:26:10 +00:00
|
|
|
"""
|
2017-05-16 12:42:21 +00:00
|
|
|
plugin = args.get('<plugin>')
|
|
|
|
if plugin:
|
2017-08-21 16:27:33 +00:00
|
|
|
bot.reload('{}.{}'.format(MODULE, plugin))
|
2017-07-31 14:10:24 +00:00
|
|
|
bot.privmsg(target, 'Reloaded plugin "{}"'.format(plugin))
|
2017-05-16 12:42:21 +00:00
|
|
|
else:
|
|
|
|
bot.reload()
|
2017-06-29 20:56:32 +00:00
|
|
|
bot.privmsg(target, 'Reloaded the bot')
|
2017-07-04 13:22:20 +00:00
|
|
|
|
|
|
|
|
2017-07-31 14:10:24 +00:00
|
|
|
@irc3.event(irc3.rfc.CONNECTED)
|
|
|
|
def connected(bot, srv, me, data):
|
|
|
|
bot.mode(me, '+R')
|
|
|
|
|
|
|
|
|
2017-07-04 13:22:20 +00:00
|
|
|
@irc3.plugin
|
|
|
|
class Admin(Plugin):
|
2017-07-31 14:10:24 +00:00
|
|
|
# TODO: add admin functions (join, part, etc)
|
2017-07-04 13:22:20 +00:00
|
|
|
pass
|