From 15b18edc11a13b02a646c13ba1bdf76a8c4d2955 Mon Sep 17 00:00:00 2001 From: Daniel DiPaolo Date: Fri, 31 Oct 2003 21:03:35 +0000 Subject: [PATCH] made karma case-insensitive --- plugins/ChannelDB.py | 14 ++++++++------ test/test_ChannelDB.py | 7 +++++++ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/plugins/ChannelDB.py b/plugins/ChannelDB.py index fe7f9d3e6..64e3583b0 100644 --- a/plugins/ChannelDB.py +++ b/plugins/ChannelDB.py @@ -359,26 +359,28 @@ class ChannelDB(plugins.ChannelDBHandler, callbacks.PrivmsgCommandAndRegexp): db = self.getDb(channel) cursor = db.cursor() if len(args) == 1: - name = args[0] + orig_name = args[0] + name = args[0].lower() cursor.execute("""SELECT added, subtracted FROM karma WHERE name=%s""", name) if cursor.rowcount == 0: - irc.reply(msg, '%s has no karma.' % name) + irc.reply(msg, '%s has no karma.' % orig_name) else: (added, subtracted) = map(int, cursor.fetchone()) total = added - subtracted s = 'Karma for %r has been increased %s %s ' \ 'and decreased %s %s for a total karma of %s.' % \ - (name, added, utils.pluralize(added, 'time'), + (orig_name, added, utils.pluralize(added, 'time'), subtracted, utils.pluralize(subtracted, 'time'), total) irc.reply(msg, s) elif len(args) > 1: + lowered_args = map(str.lower, args) criteria = ' OR '.join(['name=%s'] * len(args)) sql = """SELECT name, added-subtracted FROM karma WHERE %s ORDER BY added-subtracted DESC""" % criteria - cursor.execute(sql, *args) + cursor.execute(sql, *lowered_args) if cursor.rowcount > 0: s = utils.commaAndify(['%s: %s' % (n, t) for (n,t) in cursor.fetchall()]) @@ -403,7 +405,7 @@ class ChannelDB(plugins.ChannelDBHandler, callbacks.PrivmsgCommandAndRegexp): def increaseKarma(self, irc, msg, match): r"^(\S+)\+\+$" - name = match.group(1) + name = match.group(1).lower() db = self.getDb(msg.args[0]) cursor = db.cursor() cursor.execute("""INSERT INTO karma VALUES (NULL, %s, 0, 0)""", name) @@ -411,7 +413,7 @@ class ChannelDB(plugins.ChannelDBHandler, callbacks.PrivmsgCommandAndRegexp): def decreaseKarma(self, irc, msg, match): r"^(\S+)--$" - name = match.group(1) + name = match.group(1).lower() db = self.getDb(msg.args[0]) cursor = db.cursor() cursor.execute("""INSERT INTO karma VALUES (NULL, %s, 0, 0)""", name) diff --git a/test/test_ChannelDB.py b/test/test_ChannelDB.py index ccb367229..2cbfd8456 100644 --- a/test/test_ChannelDB.py +++ b/test/test_ChannelDB.py @@ -85,6 +85,13 @@ if sqlite is not None: self.assertNoResponse('foo++', 2) self.assertNoResponse('bar--', 2) self.assertRegexp('karma foo bar foobar', '.*foo.*foobar.*bar.*') + # Test case-insensitive + self.assertNoResponse('MOO++', 2) + self.assertRegexp('karma moo', 'Karma for \'moo\'.*increased 1' + '.*total.*1') + self.assertRegexp('karma MoO', 'Karma for \'MoO\'.*increased 1' + '.*total.*1') + # vim:set shiftwidth=4 tabstop=8 expandtab textwidth=78: