highest and lowest karma report
This commit is contained in:
parent
699500707d
commit
acee8752a5
|
@ -102,6 +102,8 @@ class Karma(Module):
|
||||||
return self.handle_karma_query(connection, nick, userhost, replypath, what)
|
return self.handle_karma_query(connection, nick, userhost, replypath, what)
|
||||||
elif (self.statre.search(what)):
|
elif (self.statre.search(what)):
|
||||||
return self.handle_stat_query(connection, nick, userhost, replypath, what)
|
return self.handle_stat_query(connection, nick, userhost, replypath, what)
|
||||||
|
elif (self.reportre.search(what)):
|
||||||
|
return self.handle_report_query(connection, nick, userhost, replypath, what)
|
||||||
|
|
||||||
def handle_karma_change(self, connection, nick, userhost, replypath, what):
|
def handle_karma_change(self, connection, nick, userhost, replypath, what):
|
||||||
"""
|
"""
|
||||||
|
@ -137,7 +139,41 @@ class Karma(Module):
|
||||||
except sqlite3.Error as e:
|
except sqlite3.Error as e:
|
||||||
conn.rollback()
|
conn.rollback()
|
||||||
return self.reply(connection, replypath, "sqlite error: " + str(e))
|
return self.reply(connection, replypath, "sqlite error: " + str(e))
|
||||||
|
|
||||||
|
def handle_report_query(self, connection, nick, userhost, replypath, what):
|
||||||
|
match = self.reportre.search(what)
|
||||||
|
report = match.group(1)
|
||||||
|
|
||||||
|
message = '{nick}: the desired report is not yet implemented'.format(nick=nick)
|
||||||
|
query = None
|
||||||
|
header = None
|
||||||
|
if (report == 'highest'):
|
||||||
|
query = 'SELECT key, value FROM karma_values ORDER BY value DESC LIMIT 5'
|
||||||
|
header = 'Top 5 karma recipients:'
|
||||||
|
elif (report == 'lowest'):
|
||||||
|
query = 'SELECT key, value FROM karma_values ORDER BY value ASC LIMIT 5'
|
||||||
|
header = 'Bottom 5 karma recipients:'
|
||||||
|
elif (report == 'positive'):
|
||||||
|
pass
|
||||||
|
elif (report == 'negative'):
|
||||||
|
pass
|
||||||
|
|
||||||
|
if (query != None):
|
||||||
|
conn = self.get_db()
|
||||||
|
list = []
|
||||||
|
try:
|
||||||
|
cursor = conn.execute(query)
|
||||||
|
result = cursor.fetchone()
|
||||||
|
while (result != None):
|
||||||
|
list.append("{key} ({value})".format(key=result[0], value=result[1]))
|
||||||
|
result = cursor.fetchone()
|
||||||
|
list = ', '.join(list)
|
||||||
|
message = '{header} {list}'.format(header=header, list=list)
|
||||||
|
except sqlite3.Error as e:
|
||||||
|
conn.rollback()
|
||||||
|
return self.reply(connection, replypath, "sqlite error: " + str(e))
|
||||||
|
return self.reply(connection, replypath, message);
|
||||||
|
|
||||||
def handle_stat_query(self, connection, nick, userhost, replypath, what):
|
def handle_stat_query(self, connection, nick, userhost, replypath, what):
|
||||||
match = self.statre.search(what)
|
match = self.statre.search(what)
|
||||||
statnick = match.group(1)
|
statnick = match.group(1)
|
||||||
|
|
Loading…
Reference in New Issue