From 1e8dddaa6a1725ef05c84d6860b21028fd996690 Mon Sep 17 00:00:00 2001 From: Valentin Lorentz Date: Sun, 4 Aug 2013 08:35:15 +0200 Subject: [PATCH] Conditional: Add --case-insensitive switch to @match. --- plugins/Conditional/plugin.py | 13 ++++++++++--- plugins/Conditional/test.py | 2 ++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/plugins/Conditional/plugin.py b/plugins/Conditional/plugin.py index 74421eab7..6df36b505 100644 --- a/plugins/Conditional/plugin.py +++ b/plugins/Conditional/plugin.py @@ -200,17 +200,24 @@ class Conditional(callbacks.Plugin): le = wrap(le, ['anything', 'anything']) @internationalizeDocstring - def match(self, irc, msg, args, item1, item2): - """ + def match(self, irc, msg, args, optlist, item1, item2): + """[--case-insensitive] Determines if is a substring of . Returns true if is contained in . + + Will only match case if --case-insensitive is not given. """ + optlist = dict(optlist) + if 'case-insensitive' in optlist: + item1 = item1.lower() + item2 = item2.lower() if item2.find(item1) != -1: irc.reply('true') else: irc.reply('false') - match = wrap(match, ['something', 'something']) + match = wrap(match, [getopts({'case-insensitive': ''}), + 'something', 'something']) @internationalizeDocstring def nceq(self, irc, msg, args, item1, item2): diff --git a/plugins/Conditional/test.py b/plugins/Conditional/test.py index 9dc856b94..0c9a0f971 100644 --- a/plugins/Conditional/test.py +++ b/plugins/Conditional/test.py @@ -98,6 +98,8 @@ class ConditionalTestCase(PluginTestCase): def testMatch(self): self.assertRegexp('match bla mooblafoo', 'true') self.assertRegexp('match bla mooblfoo', 'false') + self.assertRegexp('match Bla moobLafoo', 'false') + self.assertRegexp('match --case-insensitive Bla moobLafoo', 'true') self.assertError('match bla bla stuff') def testNceq(self):