diff --git a/plugins/Filter/plugin.py b/plugins/Filter/plugin.py index fcc247116..e995aa125 100644 --- a/plugins/Filter/plugin.py +++ b/plugins/Filter/plugin.py @@ -158,12 +158,15 @@ class Filter(callbacks.Plugin): def unbinary(self, irc, msg, args, text): """ - + Returns the character representation of binary . Assumes ASCII, 8 digits per character. """ - L = [chr(int(text[i:(i+8)], 2)) for i in xrange(0, len(text), 8)] - irc.reply(''.join(L)) + try: + L = [chr(int(text[i:(i+8)], 2)) for i in xrange(0, len(text), 8)] + irc.reply(''.join(L)) + except ValueError: + irc.errorInvalid('binary string', text) unbinary = wrap(unbinary, ['text']) def hexlify(self, irc, msg, args, text): diff --git a/plugins/Filter/test.py b/plugins/Filter/test.py index 2a73e5f9f..0a66da62b 100644 --- a/plugins/Filter/test.py +++ b/plugins/Filter/test.py @@ -89,6 +89,7 @@ class FilterTest(ChannelPluginTestCase): def testUnbinary(self): self.assertResponse('unbinary 011011010110111101101111', 'moo') + self.assertError('unbinary moo') def testRot13(self): for s in map(str, range(1000, 1010)):