Skip to content
Snippets Groups Projects
Commit e9805644 authored by Bruce Cowan's avatar Bruce Cowan :airplane:
Browse files

Now able to set the number of top/bottom items to get

parent b2d9301c
No related branches found
No related tags found
No related merge requests found
Pipeline #
......@@ -60,14 +60,27 @@ class Karma(BotPlugin):
return "Karma for '{}' is {}".format(args, self.karma[args])
def _get_num_from_args(self, args):
try:
num = int(args[0])
return num
except ValueError:
return None
except IndexError:
return 5
@botcmd
def karma_top(self, message, args):
"""Gets the top 5 karmaed items"""
if not self.karma:
return "There are no karmaed items"
keys = sorted(self.karma, key=self.karma.get, reverse=True)[:5]
values = sorted(self.karma.values(), reverse=True)[:5]
num = self._get_num_from_args(args)
if not num:
return "**Error**: Couldn't convert to an integer"
keys = sorted(self.karma, key=self.karma.get, reverse=True)[:num]
values = sorted(self.karma.values(), reverse=True)[:num]
return ", ".join(["{}: {}".format(k, v) for k, v in zip(keys, values)])
......@@ -77,7 +90,11 @@ class Karma(BotPlugin):
if not self.karma:
return "There are no karmaed items"
keys = sorted(self.karma, key=self.karma.get)[:5]
values = sorted(self.karma.values())[:5]
num = self._get_num_from_args(args)
if not num:
return "**Error**: Couldn't convert to an integer"
keys = sorted(self.karma, key=self.karma.get)[:num]
values = sorted(self.karma.values())[:num]
return ", ".join(["{}: {}".format(k, v) for k, v in zip(keys, values)])
......@@ -32,3 +32,6 @@ def test_top_bottom(testbot):
testbot.assertCommand("!karma top", "high: 2, medium: 1, low: -1")
testbot.assertCommand("!karma bottom", "low: -1, medium: 1, high: 2")
testbot.assertCommand("!karma top 1", "high: 2")
testbot.assertCommand("!karma top 2", "high: 2, medium: 1")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment