From 9a7c64a3590a6c738ea232f2ed9f26d6d4a92368 Mon Sep 17 00:00:00 2001 From: Jeremy Fincher Date: Fri, 27 Aug 2004 15:26:52 +0000 Subject: [PATCH] Added clear command. --- plugins/Karma.py | 17 +++++++++++++++++ test/test_Karma.py | 8 ++++++++ 2 files changed, 25 insertions(+) diff --git a/plugins/Karma.py b/plugins/Karma.py index a04dfa44b..4a26c825c 100644 --- a/plugins/Karma.py +++ b/plugins/Karma.py @@ -186,6 +186,14 @@ class SqliteKarmaDB(object): cursor = db.cursor() cursor.execute(sql) return [(name, int(i)) for (name, i) in cursor.fetchall()] + + def clear(self, channel, name): + db = self._getDb(channel) + cursor = db.cursor() + normalized = name.lower() + cursor.execute("""UPDATE karma SET subtracted=0, added=0 + WHERE normalized=%s""", normalized) + db.commit() def KarmaDB(): @@ -276,6 +284,15 @@ class Karma(callbacks.PrivmsgCommandAndRegexp): except (KeyError, ValueError): raise callbacks.ArgumentError + def clear(self, irc, msg, args, channel): + """[] + + Resets the karma of to 0. + """ + name = privmsgs.getArgs(args) + self.db.clear(channel, name) + clear = privmsgs.checkChannelCapability(clear, 'op') + def increaseKarma(self, irc, msg, match): r"^(\S+)\+\+(|\s+)$" channel = msg.args[0] diff --git a/test/test_Karma.py b/test/test_Karma.py index 19791f2ec..a40adb266 100644 --- a/test/test_Karma.py +++ b/test/test_Karma.py @@ -179,6 +179,14 @@ if sqlite is not None: def testIncreaseKarmaWithNickNotCallingInvalidCommand(self): self.assertSnarfNoResponse('%s: foo++' % self.irc.nick, 3) + def testClear(self): + self.assertNoResponse('foo++', 1) + self.assertRegexp('karma foo', '1') + self.assertNotError('karma clear foo') + self.assertRegexp('karma foo', '0') + self.assertNotRegexp('karma foo', '1') + + # vim:set shiftwidth=4 tabstop=8 expandtab textwidth=78: