karma stat command
added ability to get stats on a particular users karma
This commit is contained in:
parent
a434c3738f
commit
30d49bcd5d
|
@ -36,7 +36,7 @@ class Karma(Module):
|
|||
pattern = "(?:(\S+)|\((.+)\))"
|
||||
karmapattern = pattern + '(\+\+|--|\+-|-\+)' + '(\s+|$)'
|
||||
querypattern = '^rank\s+(.*)'
|
||||
reportpattern = '^karma\s+report\s+(highest|lowest)'
|
||||
reportpattern = '^karma\s+report\s+(highest|lowest|positive|negative)'
|
||||
statpattern = '^karma\s+stat\s+(.*)'
|
||||
|
||||
self.karmare = re.compile(karmapattern)
|
||||
|
@ -100,6 +100,8 @@ class Karma(Module):
|
|||
return self.handle_karma_change(connection, nick, userhost, replypath, what)
|
||||
elif (self.queryre.search(what)):
|
||||
return self.handle_karma_query(connection, nick, userhost, replypath, what)
|
||||
elif (self.statre.search(what)):
|
||||
return self.handle_stat_query(connection, nick, userhost, replypath, what)
|
||||
|
||||
def handle_karma_change(self, connection, nick, userhost, replypath, what):
|
||||
"""
|
||||
|
@ -135,6 +137,30 @@ class Karma(Module):
|
|||
except sqlite3.Error as e:
|
||||
conn.rollback()
|
||||
return self.reply(connection, replypath, "sqlite error: " + str(e))
|
||||
|
||||
def handle_stat_query(self, connection, nick, userhost, replypath, what):
|
||||
match = self.statre.search(what)
|
||||
statnick = match.group(1)
|
||||
|
||||
conn = self.get_db()
|
||||
reply = '{nick}: {statnick} has never given karma'.format(nick=nick, statnick=statnick)
|
||||
try:
|
||||
query = '''
|
||||
SELECT pos, neg
|
||||
FROM karma_users
|
||||
WHERE who = :who
|
||||
'''
|
||||
value = conn.execute(query, {'who': statnick}).fetchone()
|
||||
if (value != None):
|
||||
pos = value[0]
|
||||
neg = value[1]
|
||||
total = pos+neg;
|
||||
reply = '{nick}: {statnick} has given {pos} postive karma and {neg} negative karma, for a total of {total} karma'.format(nick=nick, statnick=statnick, pos=pos, neg=neg, total=total)
|
||||
|
||||
except sqlite3.Error as e:
|
||||
return self.reply(connection, replypath, "sqlite error: " + str(e))
|
||||
|
||||
return self.reply(connection, replypath, reply)
|
||||
|
||||
def handle_karma_query(self, connection, nick, userhost, replypath, what):
|
||||
match = self.queryre.search(what)
|
||||
|
|
Loading…
Reference in New Issue