diff --git a/config.py b/config.py index 5a9ebbd..a585def 100644 --- a/config.py +++ b/config.py @@ -28,7 +28,7 @@ ### -from supybot import conf, registry +from supybot import conf, registry, ircutils try: from supybot.i18n import PluginInternationalization _ = PluginInternationalization('SnoParser') @@ -37,6 +37,12 @@ except: # without the i18n module _ = lambda x: x +class ValidChannel(registry.string): + """Value must be a valid channel""" + def setValue(self, v): + if not (ircutils.isChannel(v)): + self.error() + registry.String.setValue(self, v) def configure(advanced): # This will be called by supybot to configure this module. advanced is @@ -52,8 +58,8 @@ SnoParser = conf.registerPlugin('SnoParser') # conf.registerGlobalValue(SnoParser, 'someConfigVariableName', # registry.Boolean(False, _("""Help for someConfigVariableName."""))) -conf.registerGlobalValue(SnoParser, 'targetChannel', - registry.String(None, ("""Sends reformatted snolines to the """))) +conf.registerNetworkValue(SnoParser, 'targetChannel', ValidChannel, + ("", ("""Determines which channel the bot should send snolines"""))) conf.registerGlobalValue(SnoParser, 'AutoVhost', registry.String('libcasa/user/', ("""Configure the vhost eg. libcasa/user/$account"""))) diff --git a/plugin.py b/plugin.py index d10c8e0..c06a6e4 100644 --- a/plugin.py +++ b/plugin.py @@ -397,7 +397,7 @@ class SnoParser(callbacks.Plugin): def _sendSnotice(self, irc, msg, repl): try: channel = self.registryValue('targetChannel') - if channel[0] == '#': + if irc.isChannel(channel): irc.queueMsg(msg=ircmsgs.IrcMsg(command='NOTICE', args=(channel, repl))) # what sort of exception does one raise diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..82d9a1a --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +dnspython==2.0.0 +ipwhois==1.2.0 +redis==3.5.3